Press "Enter" to skip to content

GOTO 2012 • Mythbusting Remote Procedure Calls • Steve Vinoski


la chiamata a procedura remota non lo fa nessuno
sapere cos’è questa la prima domanda
nessuno non è quello che è
tutti bene nessuno ha alzato quella pistola
tutti mi ascoltano bene, quindi se tu
vai su Wikipedia ottieni questa definizione
in pratica dice che un RPC ne consente uno
computer per chiamare una subroutine e
procedura su un altro computer proprio cosa
abbiamo pensato che sarebbe stato importante
il punto è che il programmatore scrive il
stesso codice indipendentemente dal fatto che il
l’operazione è locale o remota, quindi cos’è
successo nel tempo è che il termine RPC
è diventata una menzione generica RPC I
fatto un RPC a quel sistema laggiù
e loro non lo stanno facendo davvero
veramente un RPC quindi intendo come ha detto Martin
Sono una specie di vecchia scuola quando sono
imparato RPC era davvero un telecomando
la procedura chiama niente più non lo era
semplicemente inviando un messaggio a un altro
computer e facendolo fare qualcosa
vostro nome così la definizione mi piace
utilizzare per RPC è la vera definizione che
è esattamente come mostrato qui
Pensavo che la maggior parte delle persone lo farebbe
capire cosa sia un RPC piuttosto che
tipo di belabor che indica ciò che mi piacerebbe
fare è entrare nella storia del nostro VC
perché penso ci sia molto su RPC
che probabilmente non sai quanti
erano programmatori negli anni ’70, quindi pensa
sui primi sistemi in rete il
Il predecessore di ARPANET ha iniziato Internet
nel 1969 e poi i protocolli
tra i padroni di casa erano davvero orientati
verso gli umani che interagiscono con
applicazioni in modo da avere e-mail nel 1971
e telnet FTP 1973 in modo da avere questi
protocolli che consentono l’interazione umana
ma non hanno davvero permesso l’applicazione
all’interazione dell’applicazione e c’era
interesse crescente e che così sia
se vai su RFC 707 che viene fornito
all’incirca, credo, agli inizi del 1976, alla fine del 1975
James White, che ha scritto, ha creduto in 28 RFC
in totale corda RFC 707 che era questo
framework di alto livello per reti
condivisione delle risorse ed è costruito su
partiti precedenti come 674 ma quello che io
stava cercando di fare era indirizzare quello
crescente interesse dell’applicazione a
protocolli di applicazione Quindi, se siete mai
annoiato come forse a metà di questo
parli potresti voler ritirare quella RFC
e dargli una lettura
quello era uno scherzo che noi post-pranzo amiamo qui
così una delle citazioni del RFC 707 è
che si sa che è esattamente quello che
questi protocolli ingegnerizzati umani costruiti
per consentire l’interazione umana
il sistema in realtà non va bene
risorse per attingere l’un l’altro e
c’erano alcune difficoltà che c’erano
affrontato nella RFC e c’era anche a
grande preoccupazione che gli sviluppatori del tempo
non aveva esperienza nella costruzione
applicazioni distribuite così come sarebbe
sono in grado di approfittare di qualsiasi
protocolli che erano applicazioni
applicazione quando non sapevano come
farlo così l’idea dietro RFC 707 è
qualcosa chiamato la procedura chiamata
il protocollo era che se costruisci qualcosa
che potrebbe far sembrare come qualcosa
sapevano che sarebbero stati in grado di farlo
molto meglio e questo è dove questo
la procedura chiamata modello proveniva da
sviluppatori erano già familiarità con
fare chiamate alle biblioteche quindi cominciamo
trattando queste risorse come se fossero loro
le biblioteche locali forniranno una biblioteca
che effettua una chiamata attraverso la rete hanno
può assomigliare a quelle risorse locali e
lo sviluppatore saprà cosa fare solo
chiamare una procedura quindi in altre parole
il modello di chiamata della procedura avrebbe fatto
le chiamate sembrano solo normali procedure
chiama e dà loro un’altra citazione che sono
non leggerò tutte le citazioni ma tu
so che sta fondamentalmente dicendo che possiamo costruire
protocolli usando semplicemente le chiamate di procedura
non è fantastico
dopotutto se stai chiamando una procedura
stai chiedendo qualcosa per fare qualcosa
a tuo nome e c’è qualcosa
tornando da quella richiesta di fare
qualcosa per te
hey questo è solo come un procedimento così
ci limiteremo a fare tutto allo stesso modo e
la RFC arriva al punto di dire bene
i compilatori generano il codice per eseguire la procedura
chiama così possiamo persino avere compilatori
generare codice specializzato da realizzare
chiamate remote così invece di avere il
saltare a una procedura che sarebbe
in realtà incorporano una sorta di proxy
codice che andrebbe e fa una chiamata
frequentemente e prendi i parametri portati
indietro e rimandarli indietro nel
programma non spiega come fare
questo, ma menziona solo l’idea, così là
sono alcuni avvertimenti in RFC 707 pure uno
di loro è questo in molti modi come dice
questa idea si tiene insieme
astrattamente questo tipo di ingannare anche il
programmatore perché le procedure locali sono
economico sai in genere solo una manciata
di istruzioni per saltare a una procedura
o una e le chiamate locali sono dispiaciute remote
le chiamate ovviamente non sono economiche e
i programmi convenzionali possono averlo
una fonte di controllo mentre
i programmi distribuiti hanno multipli
fonti di controllo in modo che sia un altro
avvertendo che RFC ci stava dando e
che il programmatore di applicazioni dovrebbe
essere consapevoli che non tutte le interazioni possono
essere catturato da questa procedura chiamata
modella così ti chiedi di meraviglia saprai
hai RFC 707 che sta spingendo questo
modello ma ha anche questi avvertimenti
e ti stai chiedendo perché ha
quegli avvertimenti dell’anno scorso con cui stavo parlando
un mio vecchio amico
sta facendo questo sistema tributo per
per sempre e ho detto che avevo trovato
RFC 707 un po ‘indietro e stava leggendo in
è una specie di fonte di RPC nel mio
l’opinione che ha detto segue sette su sette
sì volevi dire 684 che dovrei andare a leggere
così RFC 684 è del mio amico Greg
Shantz e fu pubblicato nel 1975
che se guardi la data è prima
707 ovviamente i numeri prima del 707 ma
come ho detto 707 è una specie di culmine
di precedenti RFC ed è quasi come un
il riassunto così 684 stava davvero commentando
674 e se vai a leggere questa cosa sei
sarà spazzato via dalla quantità di
conoscenza dei sistemi distrutti che è dentro
questo RFC questo è il 1975, lo sai
abbiamo parlato di cose oggi che sono
relativo ai sistemi distribuiti e alcuni
le persone lo curano e dicono oh, io
non lo sapevo e ancora qui in te
so 1975 penso che abbiamo avuto tutto noi
necessario per capire questi sistemi così
alcune delle citazioni da questo RFC voi
conoscere la procedura chiamata può essere appropriata
per alcune applicazioni ma non è così
davvero modellare cosa succede in distribuito
sistemi multi-computer la procedura
chiamato è adatto per inter-processo
ma è meglio prendere una specie di
quadro di comunicazione inter-processo
ed estendetelo per fare il processo intra
le chiamate che il contrario intorno a prendere
modello di procedura ed estensione
alle chiamate remote che era un’altra idea
mettere qui un’altra citazione era quella
la procedura chiamata modello non prende
in considerazione della natura di un distribuito
sistema in modo da iniziare a vedere questi
paralleli in RFC sette su sette tra
alcuni di questi commenti in 684 e quelli
quelle avvertenze in RFC 707 quindi non c’è
dubito che sette di sette lo fossero davvero
influenzato da questo particolare RFC pure
che ha incorporato alcuni di questi
commenti solo per tipo di nota del fatto
che sì, l’ho letto e hai ragione
su alcune di queste cose conosci un IPC
modello rafforza l’idea che hai
questo tipo di fonti multiple multiple di
il controllo ha due processi comunicanti
cooperando l’un l’altro piuttosto che
con un modello di procedura remota in cui tu
avere una cosa in controllo, solo una sorta di
chiamando oltre due procedure su un altro
sistema e un’altra citazione sei tu
sapere che ci sono alcuni tipi di
operazioni come operazioni ritardate o
definizione delle priorità ma non si può davvero andare bene
in un modello di chiamata di procedura così ancora se
hai mai desiderato di essere davvero stupito da
andare a RFC 684 e leggerlo sapendo
era dal 1975 che abbiamo conosciuto tutto
questa roba per tutti questi anni così io
andrebbe a leggere che RFC si ottiene il
opportunità
quindi è un po ‘quello che è successo nel
Anni 70, va bene chi stava praticando
gli anni ’80, ora stiamo ricevendo
da qualche parte
quindi mi piace pensare agli anni ’80 come al
ricerca per esercitarsi in decennio in termini di
i sistemi distribuiti erano un sacco di cose
succede alle piattaforme di calcolo
passando da mainframe a molti computer
alle workstation per pc che stanno accadendo molto
rapidamente lavoravo per Apollo
computer hanno inventato la workstation
se leggi più tardi Sun Microsystems
letteratura dicono che hanno inventato il
workstation hanno solo detto che dopo
Apollo siamo andati così solo per impostare il
registrare dritto
c’erano metodologie in corso al
era la stessa programmazione strutturata nel tempo
tipo di preferito all’inizio di
gli anni ’80 ma alla fine degli anni ottanta
tutti erano in oggetti e oggetti
lingue ci fu solo un’esplosione di
elenco delle lingue prima ancora sospeso
interesse per le macchine Lisp
in realtà macchine hardware a cui ero abituato
lavoro per Texas Instruments prima di Apollo
computer e parte del gruppo ero in
stava costruendo un chip Lisp quindi era un
chip singolo che avrebbe alimentato il
simbolici questa workstation Pascal uno di
il primo ho iniziato la vita come un
ingegnere elettrico uno dei primi
I lavori di programmazione che ho ricevuto sono stati Pascal
programmazione
ma con Emacs ho capito bene
vedere che era lì chiacchierone interessante
un chiacchierone essere onesti rotta ha colpito quello
lavoro fatto su C ++ Johanna è dal nostro
coops se non sapessi che lui aveva
fatto mi scusi non ha lavorato su ck + in
la fine degli anni settanta, ma in realtà non lo era
fino agli anni ’80 che divenne C con
le lezioni e più tardi C ++ Eiffel è venuto in giro
beta è venuto in giro Erlang si è venuto intorno
un sacco di lingue e poi distribuito
sistemi operativi sistemi anche
sistemi distribuiti linguaggi e voi
conoscere quadri e applicazioni lì
era solo una tonnellata di ricerche in corso in
quella zona quindi abbiamo cose come la
Berkeley presa API e noi ancora usiamo
è molto utile che ci fosse un sistema
chiamato Argos è stato sviluppato al MIT da
Barbara Iske e ciò che Marcus era è
focalizzata su una distribuzione affidabile
calcolando ha usato un sacco di transazioni
attraverso la rete e come ho detto il
l’obiettivo era costruire applicazioni affidabili
quello era un primo sistema di ricerca
progetto seminatrice che xerox ha prodotto a
ha scritto Pharrell e Nelson
implementare chiamate di procedura remote come
molti di voi hanno letto che dovreste andare a prendere
una maglietta reattiva per quello
lo stand della sfilata di moda se ne hai mai avuto
interesse per la procedura di rinnovo non chiama
solo dovresti leggere le RFC che ho
ho detto che dovresti leggere questo articolo
perché la prima volta che qualcuno
in realtà ha scritto come farlo e
a qualcuno è piaciuto il lavoro che ho fatto nella mia
carriera che era necessaria per leggere qualcuno
facendo quel tipo di lavoro solo davvero
iniziato con quel documento c’era a
sistema chiamato Eden che era un
sistema operativo un intero distribuito
sistema operativo era basato su oggetti
e RPC
e poi c’era un altro smeraldo
linguaggio oggetto che forniva mobilità
e mi sono concentrato molto sul mobile
lucidi a distanza potrebbe prendere un
oggetto che si trovava su un sistema e si spostava
attraverso un altro sistema e tu
potrebbe fare chiamate a questo e a te
non importava davvero dove fosse e
finalmente rispondo dove e così dov’ero
sviluppato nel Regno Unito ora questa è la metà degli anni ’80
di nuovo è un po ‘come lo sai a metà
anni settanta con RFC 684 tipo di sorprendente
che hanno scritto che a metà anni ’80
e così abbiamo sviluppato un tipo completo di
il sistema completo basato su RPC aveva tutti i tipi
di servizi distribuiti in esso se tu
mai sentito parlare di un operatore commerciale un commerciante
è qualcosa che chiedi
caratteristiche di un servizio o di un
oggetto e se il commerciante ha tutto questo
competenze sono i metadati in questo ORS su
servizi ma pensiamo a un nome
servizio sai che vai ad un servizio e
dimmi hey sto cercando questo particolare
servizio con questo nome e il nome
servizio ti dà un riferimento a questo
servire un commerciante con cui vai
caratteristiche di ciò che stai cercando
per e il commerciante ti restituisce
riferimenti che soddisfano così tali domande
che il trader è stato sviluppato come parte di
un posto
così un sacco di roba, ma coinvolti in tutte le
e tutto ciò che distribuisce i sistemi
la ricerca era il nostro PC è una specie di
spina dorsale di tutti questi sistemi
erano quello che potevi chiamare intero stack
sistemi hanno fornito tutto loro
ha avuto il compilatore di linguaggio del sistema operativo
tutto da loro fondamentalmente otterrebbe il
hardware dal fornitore tipicamente il
le università stavano lavorando con il
fornitori di hardware che avrebbero ottenuto che
hardware e lavorare con gli sviluppatori a
l’azienda in alcuni casi ma fondamentalmente
costruire direttamente sull’hardware grezzo Hardware
costruire questi sistemi da zero
e come ho detto la maggior parte di loro ha usato RPC come
un’astrazione chiave a quel tempo RPC aveva
diventa solo il modo di fare le cose
c’era anche un focus sull’uniformità
dove questa idea di telecomando locale
la trasparenza era davvero importante
ci sono molti articoli sulla mobilità
e trasparenza e capacità di utilizzo
servizi non importa dove fossero i
la rete li indirizza allo stesso modo di te
invierebbe richieste a loro allo stesso modo
l’altra parte interessante era questa
nozione di un testo tipizzato fortemente distribuito
sistema in modo che ci si dispone di un sistema tipo che
spanning il sistema e ogni componente
nel sistema farebbe uso di quello
sistema di tipo e quello era un obiettivo di molto
di questi sforzi pure e non solo
che volevano avere tempo di compilazione
scrivi il motivo per cui è stato
che in questo momento
le prestazioni dei computer non lo erano
piuttosto quello che sono oggi diciamo
erano un po ‘più lenti così compilati
il codice era il re se avevi cose come
ecco perché stavano costruendo un
elenco dei chip perché erano gli interpreti Lisp
troppo lento al momento
quindi tutto stava cercando di entrare
l’hardware entra nella compilazione e persino
attraverso il controllo del sistema distribuito
tipi al momento della compilazione alcuni dei
protocolli che erano in uso in questi
sistemi conosci i documenti di ricerca se
vai a leggerli che non hanno quasi mai
parlato del reale sul filo
protocollo non hanno definito come si inserisce
messaggi sul filo che non hanno definito
che aspetto hanno i messaggi
davvero definire come questi tipi di loro
digita il sistema tradotto e due bit in poi
il filo queste cose erano chiuse loro
non stavo cercando di interoperare, ricorda
che stanno cercando di costruire un sistema che
può quasi conquistare il mondo giusto
vogliono un unico sistema omogeneo
con lo stesso sistema di tipi ovunque
non sono interessati a questo
l’università dall’altra parte della strada sta facendo
la stessa cosa nello stesso momento e
forse sono persone parlano tra loro e
di nuovo questo RPC sai che è solo questo
scatola nera da allora tutto stava andando
per essere rimandato, vedi che non l’hai fatto
preoccuparsi per il RPC sarebbe stato
Ecco quindi cosa è successo a causa di
tutto ciò era nell’industria in cui hai iniziato
vedere la distribuzione dei sistemi appaiono come pure
e che cosa è successo mentre prendi i venditori
fornire i loro stack completi indietro
quindi ogni fornitore ha fornito l’hardware
e il software Microsoft è arrivato
e ha iniziato a fornire solo software
gli anni ’80 ma non stavano davvero facendo
sistemi distribuiti in quel momento così
nessuno faceva questi sistemi di rete
costruire le schede di rete facendo il
hardware
facendo le operazioni da soli e
ancora una volta questi erano sistemi omogenei
c’era davvero limitato
interoperabilità quindi hanno dovuto prendere il
ricerca e in qualche modo farlo entrare
pratica e i venditori avevano davvero bisogno
adottare la ricerca in corso
nelle università ma il problema era
avevano i loro stack pieni e loro
non volevo prendere il loro stack e gentilezza
di buttarlo via e fare questa ricerca
impilare e sostituirla e accaparramento che
tipo di cose nel loro sistema era difficile
perché ancora due pile incompatibili
e ovviamente hai bisogno di compilare
ottenere le prestazioni necessarie
non c’era davvero nessuno interessato in
costruire questo tipo di cose sopra
macchine virtuali o interpreti
volta l’altra cosa che i venditori volevano
o standard che gli utenti hanno iniziato ad avere
reti eterogenee per questo
abbiamo incorniciato mini a workstation su PC tutti
gli utenti improvvisi avrebbero un mainframe
loro avrebbero alcuni minis che hanno un
un mucchio di workstation confondono e loro
ne avevano bisogno per interoperare nell’unico modo
per far sì che succedesse doveva iniziare a piegarsi
verso gli standard, quindi questi utenti hanno iniziato
chiedendo un sistema operativo portatile
interfacce per le lingue che dovrebbero essere eseguite
attraverso tutti i sistemi che dovevano
lavorare con e per i protocolli di rete e
la rete attuale
standard di lavoro stesso per realizzarli
ascoltare parlare tra loro in termini
delle lingue ho già coperto che
i ricercatori stavano costruendo da soli
lingue che avevano sistemi operativi
lingue tutte distribuite tutte
omogeneo e monolitico ma industriale
a causa degli utenti che volevano usare
le lingue standard sono un’altra
problema
così i venditori hanno iniziato ad adottare alcuni di
le idee di ricerca ma lo hanno fatto
mantenendo i propri stack e usando
lingue standard e alcuni esempi di
che ancora Apollo era un posto fantastico
in termini di tecnologia che hanno prodotto
una delle cose che hanno costruito è chiamata
il sistema di elaborazione di rete aveva un
linguaggio di definizione dell’interfaccia prima volta
Ho mai visto una definizione di interfaccia
lingua in cui è stato effettivamente utilizzato
produzione
Credo che l’idea potrei sbagliarmi
di questo, ma credo che l’IDL iniziato
come supporto per Apollo
più linguaggi di programmazione ma hanno
un insieme comune di intestazioni così avrebbero fatto
generare un’intestazione seed e un Pascal
intestazione da questa idea quindi questa squadra
tipo di adottato e ha detto bene noi
potrebbe usare questo per per la nostra rete che
fondamentalmente lo uso per costruire stub
stub lato client server per i nostri pc
poi il Sole ha aperto il suo indiano RPC
e stiamo calcolando RPC molto simile e
chiunque Digital Equipment Corporation
IBM HP tutto questo NEC e tutti
ha avuto questo tipo di progetti in corso
Naturalmente l’internet era ancora
crescendo così ARPANET convertito in tcp / ip
all’inizio del 1983 e quindi sostanzialmente una volta
è successo hai iniziato
avere questa interoperabilità che era
necessario attraverso questi sistemi perché da
il dire la metà alla fine del
l’ industria degli anni ’80 ha iniziato ad adottare
tcp / ip in realtà uno dei motivi per cui
Apollo alla fine è scomparso erano loro
aveva il proprio network proprietario
una rete di token ring è molto interessante
veloce per loro per il giorno ma gli utenti
non volevo una rete chiusa che volevano
TCP tutto bene non ho fatto domande
durante quella parte stessa
ho fatto tutte le domande che conosci tutte
giusto così ora entreremo nel
90s si spera non ci sono stati più di voi
praticando da allora bene è vero io
sempre chiesto tutto bene
entrare in uno dei miei argomenti preferiti
oggetti distribuiti spesi molto tempo
facendo questo tipo di cose così a causa di
tutto l’ interesse del venditore nel farli
sistemi distribuiti disponibili per loro
utenti tutta la ricerca che è stata fatta in
gli anni ’80 e questo tipo di attenzione pesante su
programmazione orientata agli oggetti da allora
gli oggetti erano solo l’unico modo per
sviluppare software se sei qualcuno di te
stavano facendo un orientato agli oggetti
programmazione e come risultato sai
distribuire sistemi più oggetto o in
la programmazione equivale a oggetti distribuiti
e tutti i venditori avevano il loro
progetti di oggetti distribuiti in corso su I
ha lavorato allora con HP comprando Apollo I
ha lavorato sulla roba di Corvis iniziando
1991 ma c’erano un numero di
aziende che hanno alimentato la roba nel
core ma basato su questi progetti
loro avevano così povero WA era questa industria
standard prendendo contributi da a
numero di aziende che penso al
altezza del gruppo di gestione degli oggetti
quale ha creato la korba militare
gruppo di gestione è stato fondato nel 1989
Horvath fu pubblicato per la prima volta nel 1991 ma
all’altezza della gestione degli oggetti
gruppo negli ultimi anni ’90, ci credo
erano oltre 700 aziende associate
contribuire alla korva e ai servizi
attorno ad esso ma Corbett era davvero basato
su questa ricerca che ho descritto
le lingue erano molto importanti quindi loro
volevo che il primo rispetto principale specificasse
mappatura per il linguaggio C e poi
più tardi arrivò il C ++. Ho lavorato diversi anni
un C ++ che esegue il mapping della trasparenza remota locale
è stato molto importante per i motivi I
menzionato
prima e come ho detto era tutto
oggetti distribuiti ora ecco a
domanda quanti di voi hanno acquistato questo
prenotare alcune cose enormi che ero un
co-autore qui con Vichy Henning 1999 I
appena ricevuto il mio assegno Royalty il Venerdì esso
guadagna ancora i soldi che ha 14 anni dopo
mi sorprende davvero che ho avuto un tweet è stato
l’anno scorso un po ‘di tempo perché una regalità
il check-in arriva ed è stato per $ 24 e 30
centesimi o qualcosa del genere e ho detto bene
deve significare che la corte è finalmente morta perché
non più royalties ma il prossimo era
diverse centinaia di dollari quindi è ancora
sta andando ancora ma mentre tu …
so che ha passato molto tempo in korva I
anche avere questo hobby di guardare un po ‘
vecchie serie TV degli anni ’60 è quando io
era un bambino e ho adorato alcuni dei nostri spettacoli
allora e tutti hanno sentito parlare di Mission
Impossibile come la missione originale
impossibile, ho qualcosa da mostrarti
erano molto più avanti del loro tempo noi
dovrebbe avere un avvocato in piedi dietro di me
ottenere il miglior uomo in città sono preoccupato
di andare in quel modo non funzionerà
Ho sentito che il quartiere ha un modo speciale di
liberarsi dei suoi prigionieri
molto goffa
Spero che si sbarazzi delle sue vittime
Suppongo che sia tutto ciò che rimane di
Le vittime di Corvus che parlano fuori dal tribunale sono state
modo non vedi quello che sta cercando di fare
lontano da clobber non farai alcun bene
ti userà solo questo è tutto Orbis
suona come un psicotico borderline
questo è reale e allora
quindi CORBA mi ha scusato
un gentiluomo con il nome di Maggie
well-core era un capo della polizia corrotto in
qualche paese centroamericano ma
mi ha appena colpito in un episodio del sud
ingrandisce questa porta per ingrandirla
porta che dice Manuel CORBA ed io
ho pensato bene che è solo una traduzione
nella loro lingua a corba Manuel
ma ho pensato che fosse divertente in anticipo
incluso nessun mistero nel calcolo di come
molte persone hanno letto che incoraggio
le persone vanno a vederlo nella loro
motore di ricerca e leggere quello pure
in pratica, Jim Waldo è stato il mio primo
ha iniziato a lavorare su core ma Jim è stato il
leader tecnico del gruppo ero in
in HP, in seguito, è andato ad alcuni che ha sviluppato
cose come Ginny e aiutano a sviluppare il nostro
line così Jim e Anne Wallrath Jeff Wyatt
Abitava per la strada da me e
Ero solito fare da babysitter ai suoi figli ma lui
è stato purtroppo ucciso in un aereo
crash e poi Sam Kendal ha scritto questo
documento importante nel 1994 e spiegato
perché oggetti distribuiti e locali
gli oggetti possono essere trattati allo stesso modo
modo e questo è stato un po ‘di reazione
perché Jim era stato coinvolto a Corbin
e non gli piaceva il modo in cui stavano le cose
salendo a quel punto o così è iniziato
in voi conoscete intorno al 1990 hanno pubblicato
prima specifica 91 questo è il 1990 per Jim
tipo di spingere per alcuni cambiamenti
a Corvo ma non riesco davvero ad arrivare da nessuna parte
quindi questo articolo è stato una specie di reazione a
che hanno parlato di queste differenze
tra te sai la latenza in termini di
locale contro stanza sopra i modelli di accesso
se stai accedendo a un oggetto locale
è molto diverso dall’accesso
e errore parziale dell’oggetto distribuito
che è dove si ottiene una divisione netta
la sala server parte del tuo cluster fallisce
e come si fa a gestire bene quello
non succede realmente nel caso locale
è tutto o niente ma dentro
gusto distribuito è sicuramente un po ‘
orribile
e quindi finalmente la concorrenza va
torna a quello che è stato detto nella RFC in
degli anni settanta di cui stai parlando
questi singoli punti di controllo in
caso locale contro più punti di
controllo nel caso distribuito e
perché hai più punti di
controllo
hai concomitanza e ottieni
citazioni come questa da una nota in poi
calcolo distribuito ce ne sono due due
le cose vengono enfatizzate nel lavoro
ciò veniva fatto alla volta
integrazione con le lingue e il
problemi inerenti l’industria al computing
e il documento dice che entrambi sono necessari
e penso se quello che guardi se guardi
ad alcune delle cose che ho parlato
alcuni di questi si sono concentrati molto
lingue e tipo di dimenticato il
c’è anche una parte di calcolo distribuito
una cosa chiamata fallacie distribuite
calcolo realizzato da Peter Deutsch
questi sono gli errori in cui credo il
l’ultimo è stato aggiunto da James Gosling
dopo, ma è tutto ciò che noi
tipo di sapere che la rete è affidabile no
ovviamente è latenza latente proprio tu
devono affrontare tutti questi problemi in
un ambiente distribuito che tu semplicemente
non avere a che fare con noi
Potremmo parlare di Java negli anni ’90
ovviamente questo è davvero arrivato al
all’avanguardia e c’è un sacco di cose
andando sul calcolo distribuito Java
non potrei davvero coprire tutto qui ma
quando ci pensi una grande parte di
tipo di potremmo chiamare il mainstream
Courbet adotta il trimestre adottato da java che
aveva senso perché tutti quelli ragazzi
cantato che era coinvolto nella stanza del tribunale
sono anche coinvolti in java che vogliono
riutilizzare questi servizi in modo da guardare il
il servizio di denominazione java è davvero solo un
strato sul core con il servizio di denominazione
per esempio
le nostre menti interoperabili con IOT fatto
uso dell’inter o protocollo a Portland
ora quello che mi ha veramente preso sono stati questi
sforzi successivi per prendere Java e basta
come un sistema omogeneo su che così
che Java potesse parlare con Java, ma poi
anche tipo di modo di filtrare
Korma e hanno iniziato ad aggiungere cose
dal linguaggio consiste fondamentalmente
da Java aggiungendo in corpora che è
dovrebbe essere indipendente dalla lingua
gli oggetti in base al valore erano fondamentalmente quello che era
solo un modo di prendere una lezione di Java
passandolo sopra il filo ma in qualche modo
trattare un modo astratto come se fosse un
oggetto korba ma non in realtà una forma di
jekt che è rimasto messo era un korban
oggetto per valore è in realtà un valore
oggetto che è stato inviato sul filo e
queste cose erano solo a
incubo di se hai mai fatto come fare
hai fatto funzionare gli standard, sì, è divertente
a qualcuno piace, ce ne sono alcuni
là fuori ci sono degli ammalati che si divertono
e sono sempre lì che puoi vedere
li conosci su questi standard Bobby
e poi te ne vado, sono stanco di questo, ma io
penso che andrò a lavorare su questo muro è
come aprire la porta vedi tutti
chiudi la porta vai e questa porta e
tutti la stessa stanza esatta e tutto il
le stesse persone sono lì invertire me Java
Napping IDL così invece di scrivere IDL a
descrivi i tuoi oggetti in modo astratto e
quindi essenzialmente i protocolli che usi
per parlare con quegli oggetti che avresti scritto
cose in Java e poi mapparlo
indietro a IDL e ottieni questo tipo
di orribili IDL fuori ma poi tutti
non usare il lavoro che dovevo andare a provare
implementarlo ha senso sopra nel caso in cui
Non ero sicuro che non mi piacesse tutto bene
anche negli anni Novanta ancora l’aumento del
web e ovviamente conosci korva e
Java è davvero concentrato sull’azienda
e poi così è venuto dopo non l’ho fatto
menzionato Microsoft ed è gentile
di come sai che hai distribuito
comm che era un po ‘come il nucleo di noi
non poteva chiudere insieme nel senso
entrambi stanno cercando di fare lo stesso
cose c’è questo focus aziendale
per questa roba ma nel frattempo il web
che sta conquistando il mondo e quando
pensi a oggetti misteriosi e
il web è distribuito il web stesso
oggetti e ci pensi
ogni risorsa sul web ha un valore fisso
insieme di metodi così invece di avere un
raccolta variabile di metodi da richiamare
sull’oggetto hai appena ricevuto posta
eliminare i metodi HTTP che l’accoppiamento è
fatto attraverso l’ ipermedia piuttosto che
attraverso metodi specializzati e
tipi di dati specializzati di
in altri sistemi di oggetti disturbati e
è anche indipendente dalla lingua che era
l’obiettivo di cose come Corvo ma è così
è stato anche progettato specificamente per
reti su larga scala parlerò un po ‘
un po ‘più tardi
lasciamo indietro gli anni ’90 e lo faremo
parlare di quello che è successo da allora
quindi i servizi Web sono arrivati ​​all’inizio
2000 e W3C stavano lavorando su questi
standard per i servizi Web che utilizzano così
utilizzando la lingua di descrizione dei servizi Web
Sono stato coinvolto in alcuni di quello che penso
Ormai mi sono pentito per i miei peccati
questo è stato un altro standard incubo
è stato solo bisogno di credere a due mesi
venire con una definizione che le persone
potrebbe essere d’ accordo – di quello che non era il web
servizio solo due mesi direttamente no
altri argomenti nell’organismo di norme a
tutto solo a due mesi probabilmente un altro
mese per scriverlo in un modo che
la gente d’accordo quindi non abbiamo avuto molto lontano
che probabilmente è fondamentalmente ciò che sta succedendo
su era noi la nozione che prende l’impresa
vedere che Corvette e Java erano stati
spingendo e cercando davvero di applicarlo
sul web ed era quasi comico
senno di poi perché alcune delle persone no
tutti tranne alcune persone lì
sentivo che la gente del web non aveva
l’idea di ciò che stavano facendo l’avevano
sbagliato non avevano tutti questi
proprietà di questi oggetti distribuiti
sistemi su cui è stato lavorato
lungo
non potrebbero farlo funzionare
i protocolli sono universi troppo sciatti no
tipo controllando tutti questi tipi di cose
nel frattempo, ovviamente, il cuneo sta crescendo
e crescendo e crescendo, ma lo erano
molto irremovibile che doveva essere fatto in un
in ultima analisi, ciò che hai ottenuto
era solo aziendale con parentesi angolari
è quello che ci piace chiamarlo perché tutto
le descrizioni sono scritte in X quantità
certo e in pratica stai facendo
esattamente la stessa cosa che ha fatto Corbin
con una sintassi diversa quindi i servizi web
per fortuna non sono usati sul web
in realtà non avrebbe funzionato la ragione per
questo è il problema della scalabilità
hai ma devi specializzarti
ogni singola interfaccia di ogni singolo
servizio che avete là fuori c’è
nessun modo per te per quel team web
gestire quell’esplosione di chiamate di metodo
e capire cosa chiama il metodo
significa e come li usi uno dopo
un altro flusso di lavoro è tutto questo
roba proprio non può farlo costringere il web
i servizi sono ancora utilizzati nel
impresa ottengo occasionalmente la posta di odio
oppure qualcuno che scrive qualcosa di brutto
cosa su di me su internet
a volte ancora arrabbiato per il
pressione faccio discorsi come questo dicono
Ho provato a implementare un servizio ea riposare
e mi ci sono volute due settimane e l’ho fatto io
andato al mio IDE e ho premuto un pulsante I
è stato Delon in cinque secondi come me
appena scritto una lezione di java non c’è niente
puoi dire a queste persone perché loro
non non capiscono la sua
differenza tra focus sulla lingua
e l’attenzione sul sistema distribuito
concentrati sulla costruzione sai qualcosa
che è solo andare a essere utilizzato a livello locale o
pseudo localmente
caso di questo tipo di piccolo distribuito
sistemi contro qualcosa che deve
scala in base alle dimensioni del web, quindi riposare
venne coniato coniato nel 2000
dal vero ragazzo in campo e dalla sua pagina questi
pezzi quanti hanno letto la tesi
buone o più mani se guardi il
tesi una delle parti migliori su di esso è
la sua analisi dei trade-off coinvolti
nel sistema distribuito , se tu lo fossi
torna a molte delle cose che ho
parlato di questi sistemi RPC loro
non parlare mai di quel genere di cose
di solito non parlano di
i trade-off coinvolti potrebbero menzionarli
il fatto che la distribuzione può avere
fallimento parziale e le cose che sappiamo
ma non diranno bene questi sono i
proprietà di cercare di raggiungere e così via
Ho intenzione di fare quanto segue
compromessi per ottenere quelle proprietà che
è esattamente ciò che il riposo è riposo come un
esempio di farlo e devo dire
per me personalmente quando leggo il resto
la carta mi ha appena aperto gli occhi è come
bene questo è quello che mi è mancato e
Ho iniziato a percorrere questa strada
quando ero alle tecnologie di Iona in
intorno a questo tempo nel 2000 è il capo
architetto ma ho anche lavorato internamente
servizi di costruzione interni che lo erano
usato da sviluppatori come me e ho iniziato
trovando che non stavo usando il core bene per
costruire quei servizi che stavo usando riposante
principi da costruire con quale invece
è il motivo per cui alla fine sono andato lì
non ha fatto fuori RPC oggi, ok ecco
una domanda non usiamo ancora il nostro PC venire
in avanti
probabilmente sta per perdere la mano
e la risposta è sì, ma siamo noi
più intelligente su di esso e penso che la risposta
c’è qualcuno, c’è questa consapevolezza
è arrivato che è migliorato il modo in cui lo facciamo
RPC e come vediamo i sistemi distribuiti
la gente capisce che c’è un
differenza tra la modalità memoria locale
quello che prima sapevi che apriva gli occhi
per molte persone devi iniziare
spiegando ciò che può andare dalla parte del torto
le differenze in Layton vedono tutti quelli
tipi di cose e questo McDonald oggi io
penso che molte persone lo capiscano
lo stesso con parziale fallimento e ancora
Voglio dire, lavoro a Bosch um ora, così abbiamo
reagire che è distribuito
banca dati e abbiamo ancora imbattiamo nel
le persone che dicono bene è ciò che è fatto
accadere che tanto il motivo per cui preoccuparsi
e in realtà abbiamo persone che dicono
che non è nella pazzia della mente che stai bloccando
ti chiama sai che la gente capisce che se
se tu fai la chiamata al tuo blocco
probabilmente stai facendo qualcosa di sbagliato
supporto per più comunicazioni
Penso che le persone lo capiscano
la rete è un mezzo diverso per
effettuare chiamate verso servizi oltre a a
chiamata di procedura nello spazio locale
ci sono problemi con l’accoppiamento c’è
anche un linguaggio di programmazione rinascimentale
andando oltre ho intenzione di parlare di tutto
questi più come andiamo avanti ma solo
nel complesso c’è una comprensione migliore
di scala così tanto quando ci pensi
il locale contro remoto come abbiamo detto tutto
lungo qui oggi non puoi nasconderli
differenze che puoi provare ad intonacare
prova tutti i tipi di giochi ma non puoi farlo
così quello che facciamo oggi è abbracciare il
Infatti che abbiamo più sistemi
sono indipendenti ma lavorano insieme e
ne approfittiamo così è così
ottenere la ridondanza è così che otteniamo
sistemi affidabili di resilienza e ad uno
computer si basa sul sistema in termini
di bloccare se torniamo a quell’idea
il vero RPC la vera definizione di
Wikipedia, per esempio, poi fai un
chiama e ti siedi lì e condividi quello
ha fatto la chiamata solo blocchi e aspetta
la risposta per tornare
Ho visto il termine RPC asincrono usato di recente
e ho pensato che ciò che è RPC asincrono bene
è un esempio di qualcuno che usa il
termine RPC quando significano veramente un messaggio
ma una RPC asincrona non penso che potresti
in realtà ne ha uno che cosa significa
forse se si genera un thread che si potrebbe fare
succede o una vera chiamata di procedura avviene in
lo stesso thread è lì ed è tornato
non vi era alcuna asincrono ascoltare
esso si conosce un sacco di sistemi di oggi
basta usare la messaggistica per inviare un messaggio
più tardi se hai bisogno di qualcosa che ritorni
dal servizio a cui ha inviato il
Messaggio
quando trovi la risposta, considera come
i messaggi si adattano al flusso generale di lavoro
piuttosto che concentrarsi su questi
chiamate point-to-point come oh questo
il servizio ha bisogno di questa chiamata di musica quella linea
e riprendilo penso alle persone di oggi
sono molto più focalizzati sul più grande
immagine e pensano di più al
il messaggio scorre attraverso il sistema e come
trattare con quelle cose nel senso
di cosa succede se un messaggio viene perso
cosa succede se il messaggio viene ritardato
quali sono le conseguenze per il
sistema generale e le persone hanno imparato
come affrontare questo tipo di problemi
se hai un vero RPC non lo fai
anche avere l’ opzione di un timeout a meno che
è hardcoded da qualche parte nella biblioteca
sotto quindi se guardi alcuni dei
Pacchetti RPC disponibili oggi
hanno costruito in timeout e solo da
facendo questo da solo non sono davvero RPC
più perché non si mettono timeout
sulle chiamate locali
ricorda RPC la vera definizione è
remoto locale identico quindi una volta che si avvia
fare cose per gestire il distribuito
sistema non è più un RPC che pensi
sui modelli di comunicazione che conosci
questa risposta alla richiesta point-to-point è così
vero RPC ma ignora cose come
broadcast multicast pub / sub tutti quelli
tipi di modelli di messaggistica che sono
molto utile una delle cose che mi piace
fare quando penso a distribuito
i sistemi in realtà pensano a come
gli umani comunicano tra loro
si pensa che si sa che posso fare
una telefonata e ti chiami e questo è
mi piace quasi come un RPC perché dico
qualcosa e spero che tu dica
qualcosa è molto sincrono ma
se non ci sei posso lasciarti a
messaggio tipo di fuoco dimentica se non lo fai
rispondi Potrei spegnerlo di nuovo è a
riprova e poi puoi prendere questi umani
modelli di comunicazione comunitaria e
pensa ai sistemi dritti
e così puoi dire che un RBC non poteva
possibilmente coprire la gamma di ciò che è
richiesto lì quando si tenta di costruire tutto
questa roba in un linguaggio di programmazione
diventa difficile non si può semplicemente prendere
la tua programmazione standard media
lingua e decidere di estenderlo a
gestire questo tipo di comunicazione
modella l’ equipaggiamento della lezione che penso
abbiamo imparato è che li abbracci
protocolli ci sono modi per usarli
sistemi o scusate questi protocolli a
costruire i sistemi necessari per costruirlo
senza essere così concentrato sulla programmazione
lingua e facendo un tipo RPC di a
cosa di cui stai cercando di fare
termini di problemi di accoppiamento nel nostro PC
ovviamente impone effettivamente queste app
metodi specifici che ho citato
prima così quando definisci RPC sei
davvero chiamando un metodo specializzato su
l’altro lato del filo sei anche tu
tipicamente inviando un qualche tipo di
struttura dati specializzata a questo
metodo e se lo contrapponi con
riposo dove i verbi sono applicazione
indipendenti e fissi i tipi sono giusti
provengono da una libreria simile a riutilizzabile di
tipi quelli saranno tipi di contenuto il
tipi di mime cose come l’applicazione e
Jason per esempio e poi anche tu
una negoziazione di contenuti dove puoi avere
un cliente che dice che voglio
Preferirei Jason ma se lo sai
bene allora dammi HTML e lo farò
sfruttare al meglio la maggior parte dei sistemi RPC
Che io abbia mai visto non avevi che
scegli la sintassi di trasferimento in pratica
quello che vuoi chiamarlo come le cose
sono trasferiti sul filo è fisso
in parte del framework RPC che sei
usando così stai usando questo particolare
quadro allora ottieni questo stile
dati ottieni questo tipo di sistema e tu
ottenere questo modo di metterlo sul filo
e leggendolo dal filo e con
altri sistemi come il riposo
molta flessibilità lì perché ogni
l’applicazione è diversa l’altra cosa
su RPC è che ha implicato questo
flusso di lavoro quando si dispone di un insieme di metodi
cos’è che unisce questi metodi
solo una sorta di elenco di metodi come fare
sai quale chiamare a quale
chiama dopo quello che fare con i dati
quello che torna sono i dati che arrivano
di nuovo andare in questa chiamata della porta accanto si
sai che non hai davvero un’idea di te
devono sedersi con se ha scritto il
la roba capisce come funziona o spera
che lo hanno documentato in qualche modo e
con il resto cose come il resto HTML
ipermedia ipermediale di guidare il
transizioni di stato quindi quando fai un
ti chiamo tornare a questa rappresentazione
questo sta seguendo ora le chiamate che
vieni dopo questo sono qui qui qui o
qui e praticamente ti dice cosa
fare dopo
un altro il sole prima che RPC abbia questo
sintassi di trasferimento fissa
l’altra cosa che riguarda il nostro PC
di davvero non mi ha illuminato fino a quando io
ha iniziato a lavorare di più con era il fatto
che tu avevi questa pesante infrastruttura
su entrambe le estremità del filo si deve
avere le stesse librerie che sono
decodifica alla sintassi di trasferimento o
codificandolo e mettendolo sul filo e
quindi i protocolli che sono coinvolti sono
spesso non semplice quindi devi avere il
stesse librerie su entrambe le estremità per ottenere
interoperabilità di sicuro nei giorni di
aula abbiamo avuto l’interoperabilità
tra diverse implementazioni
ci è voluto molto tempo per arrivarci e
Questo è un bel un’infrastruttura pesante che
stavamo mettendo su entrambe le estremità alla fine
del giorno e con altri si avvicina
può avere clienti davvero leggeri
server veramente leggeri non accettano un
molto sforzo o infrastruttura
questo linguaggio rinascimentale
Mi piaceva linguaggi di programmazione per un lungo
tempo a partire dal 2000 sembrava
eravamo un po ‘ bloccati, sai forse noi
erano solo tipo di bloccato con Java e
sta per diventare , sai, il
linguaggio da usare per tutto e C ++
è ancora in giro, naturalmente, ma questo è
cambiato da allora c’è tutto questo
rinnovo nell’interesse in funzionale
programmazione di quanti stanno facendo
programmazione funzionale c’è di nuovo
lingue sulla JVM Non sono mai stato un
Ragazzo Java ho fatto Java che potresti avere
non mi è mai piaciuto essere un C ++ hardcore
ragazzo ha iniziato con nel 1988 e io solo
non ha avuto i tipi di problemi che
la gente sembra avere con esso ma quando il
Java è venuto intorno era una specie di
quelle cose in cui la guardi andare
sì C ++ è ancora peggio per me, lo farò
attenerci a ciò mentre ci muoviamo lungo te
so che è migliorato e quindi ne ho fatto un po ‘
ma poi non mi sono mai scaldato
ma il jvm d’altra parte penso sia
assolutamente geniale il lavoro che è
entrato nella JVM e per cosa è stato fatto
le lingue in generale sono state eccellenti
quindi hai visto queste nuove lingue
arrivando sulla JVM
e dovrei sostenere quante persone sono
utilizzando nuove lingue su JVM Scala o
chiusura o anche JRuby sai che lo farei
ti incoraggio a farlo
quanti programmatori Java abbiamo
ognuno il programmatore Java qualcuno
chi usa Java per programmare lo farebbe
incoraggiarti a guardare gli altri
lingue e naturalmente tu hai
JavaScript ovunque ma il mio preferito è
cosa dice che non sono sicuro qui presto e io
voglio parlare un po ‘di che
quando pensi a ciò che è in quella nota
sul calcolo distribuito c’erano quelli
due percorsi che ho citato il percorso di
lingua e il percorso della distribuzione
entrambi i problemi di calcolo dovevano essere
indirizzato ed Erlang è il miglior esempio
che io conosco personalmente che in realtà
lo fa
quanti programmatori di Erlang essere
okay, ma sembra davvero questo
problema di calcolo distribuito e dare
i modi per trattare con esso e anche
ti dà un linguaggio abbastanza bello per
trattare con esso quindi è fatto bene
progressi su entrambi quelli di entrambi
percorsi purtroppo molti lo ignorano
perché non è il bambino annuo
ha anche la sintassi basata su Prolog quanti
I programmatori Prolog si, alcuni la scorsa settimana
era in un’altra conferenza e ho chiesto
quanti altri linguaggio che erano circa
5 su 80 persone hanno alzato la mano e
quanti programmatori Prolog mi aspettavo
zero o uno c’erano in realtà otto
più prolong di Erlang il venditore ma
a quella stessa conferenza si parlava
su JavaScript da Brendan mio pre a
JavaScript quindi sta mostrando tutti questi
esempi di JavaScript e sono seduto
lì tra il pubblico che guarda questo
dicendo come possono lamentarsi le persone
La sintassi di Erlang guarda quello
così ovviamente
Creston che è qui maestro di cerimonie
qui a go-to artisti si è sviluppato
sollecitando quale è un’implementazione di Erlang
che si trova sull’APM, quindi potrei volerlo
dai un’occhiata a questo se sei interessato
in termini di ridimensionamento gli sviluppatori hanno a
una migliore comprensione dei sistemi di ridimensionamento oggi
noi sappiamo anni passati e loro
davvero non cose simili come condivise
niente architettura è teorema del cappuccio SATA
fase di architetture event-driven
lavoro che Amazon e Google hanno fatto
La simpatia meccanica di Martin te
sai che non puoi avere la scala
senza la performance e Martin’s
ne parlerò più tardi e poi
solo il miglioramento del sistema operativo
e networking e supporto di questi
tipi di sistemi di strumenti di misurazione
la didascalia che pensi di memorizzare nella cache un RPC è
molto difficile da cache perché non lo fai
sapere se sta leggendo la scrittura di sola lettura
o cosa e quando stai ridimensionando un sistema
devi avere il caching
quindi in sintesi RPC secondo me è
conveniente ma imperfetto conveniente e
corretto avremmo dovuto ascoltare Ric
possibilità e RFC 680 per molto tempo fa I
non so cosa avrei fatto con
me lo ero fatto, ma credo che lo farò
mai sapere ma per fortuna la scala di
il web ci ha spinto in nuovi percorsi
anche all’interno dell’azienda cose come
il resto viene utilizzato per servizi che
potrebbe essere stato un tempo
servizi web quindi la mia lezione è amici
non lasciare che gli amici commettano arpie
qualsiasi domanda la domanda dei giudici è perché
la gente persiste se conosciamo tutte queste cose
che ho appena coperto perché le persone
persistono nel voler usare questi
quadri che cercano di nascondere la distribuzione
e penso che la risposta sia tristemente
La gente è pigra si sa che vogliono
spingere quel pulsante nel loro IDE e solo
sono saltate fuori cose e ne ho menzionate alcune
di quella mail di odio che è esattamente cosa
la gente urla prima che tu non possa farlo
in questo modo sai che posso andare con il mio IDE
e faccio questo ho tutto il mio sistema
e correndo e ne conosci alcuni
solo le persone apatiche devono ottenere il loro
lavoro fatto a loro non importa davvero
il loro lavoro non ha ticchettio di una casella di controllo
quindi dipende solo dalle persone
fare qualcosa velocemente fuori dalla porta
forse forse non assumerti la responsabilità
che dovrebbero per il sistema che è
davvero non un problema tecnico in nessun senso
è più un problema umano che è
giusto il punto di Eric è quello rigoroso
definizione del nostro PC non tutti lo sono
facendo la nostra gente di PC si sta facendo potrebbe
chiamalo come il nostro PC come cose ma come me
detto prima quando prendono in considerazione
i timeout che possono accadere e loro
prendere in considerazione il fatto che il
la rete può dividere quindi in realtà
pensando al sistema distribuito
e questo in realtà non è il nostro PC
altrimenti ho fatto a pezzi il mito
grazie per essere venuto

Please follow and like us: