Escolar Documentos
Profissional Documentos
Cultura Documentos
PrincipaisDesafiosemSD
Heterogeneidade:
Ainternetpermiteaosusuriosacessaremservioseexecutarem
aplicativospormeiodeumconjuntoheterogneodecomputadoreseredes.A
heterogeneidade(isto,variedadeediferena)seaplicaaosseguintesaspectos:
redes
hardwaredecomputador
SOs
linguagensdeprogramao
implementaesdediferentesdesenvolvedores
Abertura(openness):
Capacidadedeosistemaserextensvel,queremhardware
queremsoftware.Novoscomponentesdevempoderseradicionadossemporem
causaofuncionamentodosjexistentes,epodercomunicarcomeles.Paraisso
importantequesejamconhecidasasinterfacesdosnovoscomponentesatravsda
publicaodasuadocumentaoeutilizarprotocolos.
Segurana:
Aseguranaderecursosdeinformaotemtrscomponentes:
confidencialidade
(proteocontraexposiaparapessoasnoautorizadas),
integridade
(proteocontraalteraooudano)e
disponibilidade
(proteocontra
interfernciacomosmeiosdeacessoaosrecursos).
Ataquedenegaodeservio:
ocorrequandoumusuriointerrompeum
servioporalgummotivo.Issopodeserconseguidobombardeandooservio
comumnmerotograndedepedidossemsentido,queosusuriosnoso
capazesdeuslo.
Escalabilidade:
Umsistemadescritocomoescalvelsepermaneceeficiente
quandohumaumentosignificativononmeroderecursosenonmerodeusurios.
necessriodesenharosoftwaredeformaaqueoaumentodeutilizaes
noexijagrandesalteraes,evitaralgoritmos,servioseestruturasdedados
centralizados,controlaroaumentodecustosdevidodisponibilizaodemais
recursos,controlaraperdadeperformanceeevitarotransbordodecertos
limitesderecursos.
Tratamentodefalhas:
AsfalhasemumSDsoparciaisisto,alguns
componentesfalham,enquantooutroscontinuamfuncionando.Portanto,otratamento
defalhasparticularmentedifcil.Seguemastcnicascomuns:
Detecodefalhas:
algumasfalhaspodemserdetectadas.Porexemplo,
somasdeverificaopodemserusadasparadetectardadosdanificadosem
umamensagemouemumarquivo.
Mascaramentodefalhas:
algumasfalhasdetectadaspodemserocultasou
setornarmenossrias.Exemplodeocultaodefalhas:
mensagenspodemserretransmitidasquandonochegam
dadosdearquivospodemsergravadosemdoisdiscos,paraque,se
umestiverdanificado,ooutroaindapossaestarcorreto.
Tolernciaafalhas:
amaioriadosserviosnaInternetapresentafalhasno
seriapraticotentardetectaremascarartudoquepossaocorreremumarede
togrande,comtantoscomponentes.Seusclientespodemserprojetadosde
formaatolerarfalhas.porexemplo:
quandoumnavegadornoconseguecontatarumservidorweb,eleno
fazousurioesperarindefinidamente,enquantocontinuatentandoele
informaousuriosobreoproblema,deixandoolivreparatentar
novamente.
Recuperaodefalhas
:arecuperaoenvolveprojetarsoftwaredemodo
queoestadodosdadospermanentespossaserrecuperadoouretrocedido,
apsafalhadeumservidor.Emgeral,ascomputaesrealizadasporalguns
programasficaroincompletasquandoocorrerumafalhaeosdados
permanentesqueelesatualizampodemnoestaremumestadosconsistente.
Redundncia:
osserviospodemsetornartolerantesafalhascomousode
componentesredundantes.Considereosexemplosaseguir:
Sempredevehaverpelomenosduasrotasdiferentesentredois
roteadoresquaisquernaInternet.
NoDomainNameSystem,todatabeladecorrespondnciadenomes
replicadaempelomenosdoisservidoresdiferentes.
Umbancodedadospodeserreplicadoemvriosservidores,para
garantirqueosdadospermaneamacessveisapsafalhade
qualquerservidor.Osservidorespodemserprojetadosdeformaa
detectarfalhasemseuspares:quandoumafalhadetectadaemum
servidor,osclientessoredirecionadosparaosservidoresrestantes.
Concorrncia:
osvriosutilizadoresutilizamosistemaemsimultneo(necessrio
coordenaroacessoaosrecursospartilhados)
Transparncia:
Osistemadeveservistocomoumtodoenocomoumacoleode
componentesdistribudos.
TransparnciadeAcesso
:permitequeoacessoarecursoslocaisea
recursosremotossejafeitoatravsdasmesmasoperaes(i.,usandoa
mesmainterface).
Localizao
:permitequeosrecursospossamseracedidossemo
conhecimentodasualocalizao.(ex.Programasdecorreioelectrnico)
Concorrncia
:permitequeosvriosclientesdeumcomponenteno
necessitemdeteremcontaoacessoconcorrenteaocomponente.
Replicao
:permitequeosclientesdeumcomponentenoseapercebamse
existereplicaoeestoausarumarplicaenoooriginalautilizaode
vriasinstnciasdeumcomponentepodeocorrerporrazesdedesempenho
oudefiabilidadeosutilizadoresdocomponentenonecessitemdesaberque
ocomponentepossaserreplicado.
Falhas
:permitequeosistemafuncionenapresenadefalhasdehardwareou
softwaresemqueutilizadoreseprogramadoressaibamcomoasfalhasforam
ultrapassadas.(porex.umsistemadeemailpoderetransmitirumamensagem
atqueamesmasejaentreguecomsucesso)
Migrao
:permitequeumrecursopossamudardelocalizaosemqueisso
afecteasuautilizao.(ex.Telemveisemmovimento)
Desempenho:
permitequeosistemasejareconfiguradoparamelhoraroseu
desempenhosemqueosutilizadoresseapercebam.
Escalabilidade:
permitequeosistemasejaexpandidosemqueosutilizadores
seapercebamdecomoissofoiconseguido.
CAPITULO2
Modelos:
Descrioabastrataesimplificadadeaspectosrelevantesrelacionadosaodesignde
umsistemadistribudo
ModelosFsicos
ModelosArquiteturais:Ummodeloarquiteturaldeumsistemadistribudoa
estruturadosistemaemtermosde
localizao
dassuasdiferentespartes,do
papel
quecadapartedesempenhaecomoseinterrelacionam.
ModelosFundamentais:Ossistemasdistribudospodemaindaseranalizados
segundo3aspectostransversaisatodosossistemas:
ModelodeInterao(oudesincronismo):
ModelodeFalhas(ouAvarias)
MedolodeSegurana
Modelodeinterao:
Interaoaao(comunicaoesincronizao)entreas
partespararealizarumqualquertrabalho.
afetadapordoisaspectos:
Performancedoscanaisdecomunicao:
Acomunicaoemumaredede
computadorestemasseguintescaractersticasdedesempenorelacionadas
latncia
,
larguradebanda
e
jitter
:
Latncia:
Intervalodetempoquemedeiaentreoinciodatransmisso
deumamensagemporumprocessoeoinciodasuarecepopelooutro
processo.Alatnciainclui:
Otempoqueoprimeirobitdeumconjuntodebitstransmitidoem
umaredelevaparachegaraoseudestino.Porexemplo,alatncia
datransmissodeumamensagempormeiodeumenlacede
satliteotemponecessrioparaqueumsinalderdiovato
satliteeretorneaterraparaseudestinatrio.
Oatrasonoacessorede,queaumentasignificativamente
quandoaredeestmuitocarregada.Porexemplo,para
transmissoEthernet,aestaoremetenteesperaquearede
estejalivredetrfegoparapoderenviarsuamensagem.
Otempodeprocessamentogastopelosserviosdecomunicao
dosistemaoperacionalnosprocessosdeenvioerecepo,que
variadeacordocomacargamomentneadoscomputadores.
Larguradebanda
:ovolumetotaldeinformaesquepodeser
transmitidoemdeterminadomomento.Quandoumgrandenmerode
comunicaesusaamesmarede,elascompartilhamalarguradebanda
disponvel.
Jitter:
avariaonotempoexigidaparadistribuirumasriede
mensagens.OJittercrucialparadadosmultimdia.Porexemplo,se
amostrasconsecutivasdedadosdeudiosoreproduzidascom
diferentesintervalosdetempo,osomresultanteserbastantedistorcido.
Inexistnciadeumtempoglobal
Cadacomputadorpossuiseuprpriorelgio
interno,oqualpodeserusadopelosprocessoslocaisparaobterovaloratualda
hora.Mesmoquedoisprocessosleiamseusrelgioslocaissimultneamente
essespodemfornecervaloresdiferentes.
Taxadedesviodorelgio(Drift):
sereferequantidaderelativapela
qualumrelgiodecomputadordiferedeumrelgioderefernciaperfeito
Osdriftsdedoisrelgiosdistintossotambmdistintos,oque
significaqueentreelesotemposersempredivergente.
UmasoluopassaporobterotempofornecidoporGPSGlobal
PositioningSystem,eenviaraosparticipantesdosistemadistribudo.
Problema:Delaysnoenviodessamensagem!!!
Duasvariantesdomodelodeinterao:
Emumsistemadistribudomuito
difcilestabelecerlimitesparaotempoquelevaaexecuodosprocessos,para
atrocademensagensouparaodesviodorelgio.Doispontosdevistas
opostosfornecemmodelossimplesoprimeirofortementebaseadonaidiade
tempo,osegundono.
Sistemasdistribudossncronos:
otempoparaexecutarcadaetapadeumprocessotemlimites
inferioresuperiorconhecidos
cadamensagemtransmitidaemumcanalrecebidadentrodeum
tempolimitado,conhecido
cadaprocessotemumrelgiolocalcujataxadedesviodotempo
realtemumlimiteconhecido
Dessaforma,possvelestimarprovveislimitessuperiorparaotempo
deexecuodeumprocesso,paraoatrasodasmensagenseparaas
taxasdedesviodorelgioemumSD.
OsSDssncronospodemserconstrudos,desdequesegarantaqueos
processossejamexecutadosdeformaarespeitarasrestriestemporais
impostas.
Sistemasdistribudosassncronos:
UmSDassncronoaqueleem
quenoexistemconsideraessobre:
asvelocidadesdeexecuodeprocessosporexemplo,uma
etapadoprocessopodelevarapenasumpicossegundoeoutra,
umsculotudoquepodeserditoquecadaetapapodedemorar
umtempoarbitrariamentelongo
osatrasosnatransmissodasmsnssagensporexemplo,uma
mensagemdoprocessoAparaoprocessoBpodeserenviadaem
umtempoinsignificanteeoutrapodedemorarvriosanos.Em
outraspalavras,umamensagempodeserrecebidaapsum
tempoarbitrariamentelong
astaxasdedesviodorelgionovamente,ataxadedesviodeum
relgioarbitrria.
Omodeloassncrononofaznenhumaconsideraosobreosintervalos
detempoenvolvidosemqualquertipodeexecuo
ModelodeFalhas:
Umafalhaqualqueralteraodocomportamentodo
sistemaemrelaoaoesperado,isto,emrelaosuaespecificao.As
falhaspodematingiros
processos
ouos
canaisdecomunicao.
Tiposdefalhas
FalhasporOmisso
Falhasarbitrrias
Falhasemtemporizao
FalhaporOmisso:
Asfalhasporomissosereferemaoscasosemqueum
processooucanaldecomunicaodeixadeexecutarasaesquedeveria.
Falhasporomissodeprocesso:
aprincipalfalhaporomisso
deumprocessoquandoeleentraemcolapso,parandoeno
executandooutropassodeseuprograma.Ocolapsodeum
processochamadode
paradaporfalha
seoutrosprocessos
puderemdetectar,comcerteza,aocorrnciadessasituao.Em
umsistemasncrono,umaparadaporfalhaocorrequando
timeoutssousadosparadeterminarquecertosprocessos
deixaramderesponderamensagenssabidamenteentregues.
Falhasporomissonacomunicao:
Ocanaldecomunicao
produzumafalhaporomissoquandonoconcretizaa
transfernciadeumamensagem
m
dobufferdeenciodeum
processo
p
paraobufferderecepodeumoutroprocesso
q
.Isso
conhecidocomoperdademensagensegeralmentecausado
pelafaltadeespaonobufferderecepo,oupelamensagemser
descartadaaoserdetectadoquehouveumerrodurantesua
transmisso.
FalhasArbitrrias:
Otermofalhaarbitrria,oubizantina,usadopara
descreverapiorsemnticadefalhapossvelnaqualqualquertipodeerropode
ocorrer.
Umafalhaarbitrriadeumprocesso
aquelaemqueeleomite
arbitrariamentepassosdesejadosdoprocessamentoouefetua
processamentoindesejado.Portanto,asfalhasarbitrriasnopodemser
detectadasverificandoseseoprocessorespondesinvocaes,poisele
poderiaomitirarbitrariamentearesposta.
Oscanaisdecomunicao
podemsofrerfalhasarbitrrias:por
exemplomocontedodamensagempodesercorrompido,mensagens
inexistentespodemserenviadasoumensgensreaispodemser
entreguesmaisdeumavez.Asfalhasarbitrriasdoscanaisde
comunicaosoraras,poisosoftwaredecomunicaocapazde
reconhecelaserejeitarasmensagenscomproblemas.
Falhasdetemporizao:
AsfalhasdetemporizaosoaplcveisaosSDs
sncronosondelimitesdetemposoestabelecidosparaotempodeexecuo
doprocesso,paraotempodeentregademensagenseparaataxadedesviodo
relgio.
EmumSDassncrono,umservidorsobrecarregadopoderespondermuito
lentamente,masnopodemosdizerqueeleapresentaumafalhade
temporizao,poisnenhumagarantiafoioferecida.
Mascaramentodefalhas:
possvelconstruirserviosconfiveisapartirde
componentesqueexibemfalhas.Porexemplovriosservidoresquecontm
rplicasdosdadospodemcontinuarafornecerumservioquandoumdeles
apresentaumdefeito.
Umserviomascaraumafalhaocultandoacompletamenteouconvertendoa
emumtipodefalhamaisaceitvel.
Confiabilidadedacomunicaodeumparaum:
Otermocomunicao
confiveldefinidoemtermosdevalidadeeintegridade,comosegue:
validade:
qualquermensagemdobufferdeenvioentregueaobufferde
recepodeseudestino,independentementedotemponecessriopara
tal
integridade:
amensagemrecebidaidnticaenviadaenenhuma
mensagementregueduasvezes.
Soameaasintegridade:
Qualquerprotocoloqueretransmita
mensagens,masnorejeiteumamensagemqueentregueduas
vezes.Usuriosmalintencionadosquepodeminjetarmensagens
esprias,reproduzirmensagensantigasoufalsificarmensagens.
ModelodeSegurana:
Proteodasentidadesdosistema,processo/utilizador
(principal).
Direitosdeacesso
especificam
queentidades
podemaceder,e
dequeforma,aque
recursos
.
Ex:Queentidadepodeexecutarqueoperaesnumdadoobjeto.
Oservidor
responsvelporverificara
identidade
dequem(entidade)fezopedido,e
verificarseessaentidadetem
direitosdeacesso
pararealizara
operaopretendida.
Ocliente
deververificara
identidade
dequemlheenviouaresposta,paraversea
respostaveiodaentidadeesperada.
Ameaas
:Supondoqueexisteumprocessoinimigocapazdeenviarqualquer
mensagemparaqualquerprocesso,interceptar(ler/copiar)qualquermensagem
trocadaentre2processos.
Asameaasdeuminimigoempotencialsodiscutidassobosttulos:
Ameaasaosprocessos:
umprocessoprojetadoparatratardepedidospodereceber
umamensagemdequalqueroutroprocessonosistemadistribudoenosercapazde
determinarcomcertezaaidentidadedoremetente.IPincluioendereodocomputador
origemdamensagemmasumprocessoinimigopodeforjaresseendereo.Umcliente
tambmnodispedemtodosparavalidarasrespostasdeumservidor.
Ameaasaoscanaisdecomunicao:
Umprocessoinimigopodecopiar,alterarou
unjetarmensagensnaredeeemseussistemasintermedirios(roteadorespor
exemplo).Taisataquesrepresentamumaameaaprivacidadeeintegridadedas
informaesquandoelastrafegampelarede.Essasmensagenspodemserreveladas
aterceiros.
Negaodeservio:
Estaumaformadeataquenaqualoatacanteinterferenas
atividadesdosusuriosautorizados,fazendoinmerasinvocaessemsentidoem
serviosoutransmitindomensagensincessantementeemumaredeparageraruma
sobrecargadosrecursosfsicos(capacidadedeprocessamentodoservidor,largurade
bandadarede,etc).Taisataquenormalmentesofeitoscomaintenoderetardar,
ouimpedir,asinvocaesvlidasdeoutrosusurios.
Definiodecanalseguro:
Canalutilizadoparacomunicaoentredoisprocessos
comasseguintescaractersticas:
Cadaprocessopodeidentificarcom100%deconfianaaentidaderesponsvel
pelaexecuodooutroprocesso
Asmensagensquesotransferidasdeumprocessoaoutro,sogarantidasdo
pondodevistadaintegridadeedaprivacidade
Asmensagenstemgarantiadenorepetibilidadeoureenvioporordemdistinta
(cadamensagemincluiumtempofsicooulgico)
Criptografia:
Tcnicadecodificarocontedodeumamensagemdeformaa
esconderoseucontedo.necessrioqueambososprocessospossuamachave
decodificao/decodificao.
Autencitao:
Incluirnamensagemumaporo(encriptada)quecontenhainformao
suficienteparaidentificaraentidadeeverificarosseusdireitosdeacesso.
CAPITULO4
Ascaractersticasdacomunicaoentreprocessos
Comunicaosncronaeassncrona:
Umafilaassociadaacadadestinode
mensagem.Osprocessosremetentesfazemasmensagensseremadicionadasem
filasremotaseosprocessosdestinoremovemmensagensdesuasfilaslocais.A
comunicaoentreosprocessosremetenteedestinopodesersncronaouassncrona.
Comunicaosncrona:
Osprocessosremetenteedestinososincronizados
acadamensagem.Nessecaso,sendereceivesooperaesquecausambloqueio.
Quandoumenvio(send)feito,oprocessoremetente(outhread)bloqueadoatque
arecepo(receive)correspondendesejarealizada.Quandoumarecepo
executada,oprocessobloqueadoenquantoamensagemnochegar.
Comunicaoassncrona:
Ousodaoperaosendnobloqueante,no
sentidodequeoprocessoremetentepodeprosseguirassimqueamsnsagem
tenhasifocopiadaparaumbufferlocal,eatransmissodamensagemocorre
emparalelocomoprocessoremetente.Aoperaoreceivepodetervariantes
comesembloqueio.
Variantenobloqueante
:Oprocessodestinoprosseguesuaexecuo
apsterrealizadoaoperaoreceive,aqualforneceumbufferparaser
preenchidoembackground.Nessecaso,oprocessodevereceber
separadamenteumanotificaodequeseubufferpossuidadosaserem
lidos,issopodeserfeitobaseadoempollingoueminterrupo.
VarianteBloqueante:
arecepobloqueantepodeserexecutadapor
umathread,enquantooutrasthreadsdoprocessopermanecemativase
asimplicidadedesincronizaodasthreadsdestinoscomamensagem
recebidaumavantagemsignificativa.
Destinosdemensagem:
Umaportalocalumdestinodemensagemdentrodeum
computador,especificadocomoumvalorinteiro.Umaportatemexatamenteum
destino,maspodetervariosremetentes.
Paraproporcionartransparnciadelocalizao
,podemosfazerusodasseguintes
estratgias:
Osprogramasclientessereferemaosserviospelonomeeusamumservidor
denomesoudeassociao(binder),paratransformarseusnomeem
localizaesdeservidornomomentodaexecuo.Issopermitequeosservios
sejammovidosenquantoosistemaestemexecuo.
Osistemaoperacional,forneceidentificadoresindependentesdalocalizao
paraosdestinosdemensagem,mapeandoosemumendereodenvelmais
baixoparaelasserementreguesnasportas,oquepossibilitaamigraoea
movimentaodoservio.
Confiabilidade:
Umserviopontoapontopodeserdescritocomoconfivel
se
houvergarantiaqueasmensagensforementregues,independentedeumnmero
razoveldepacotesquepossamtersidoeliminadosouperdidos.
Emcontraste,umserviodemensagemnoconfiavel
senohouver
garantiadequeasmensagenssejamentregues.Quantointegridade,asmensagens
devemchegarnocorrompidasesemduplicao.
Ordenamento:
Algumasaplicaesexigemqueasmensagenssejamentreguesna
ordemdeemissoisto,naordememqueforamtransmitidaspeloremetente.A
entregademensagensforadeordemconsiderarumafalhaportaisaplicaes.
Soquetes:
Asduasformasdecomunicao(UDPeTCP)usamaabstraode
soquete,umpontodedestinoparaacomunicaoentreprocessos.Acomunicao
entreprocessosconsisteemtransmitirumamensagementreumsoquetedeum
processoeumsoquetedeoutroprocesso.
Paraqueumprocessorecebamensagens,seusoquetedeveestarvinculadoauma
portalocaleaumendereoIPdocomputadoremqueexecutado.Asmensagens
enviadasaesseendereoIPeaonumerodeporta,sopodemserrecebidasporum
processocujosoqueteestejaassociadoaesseIPeaessenmerodeporta.
Umprocessonopodecompartilharportascomoutroprocessonomesmo
16
computador.Cadacomputadortemdisponvel2
nmerosdeportasdisponveis
OsprocessosmulticastIPsoumaexceo,poiselescompartilhamportas.Entretanto
,qualquernmerodeprocessospodeenviarmensagensparaamesmaporta.Cara
soqueteassociadoaumprotocoloemparticular.
ComunicaopordatagramaUDP:
UmdatagramaenviadopeloprotocoloUDP
transmitidodeumprocessoremetenteparaumprocessodestinosemaexistnciade
confirmaesounovastentativasdeenvio.Seocorrerumafalha,amensagempoder
nochegar.Umdatagramatransmitidoentreprocessosquandoumdelesefetuaum
send
eooutroum
receive
.
Comofeitaatrocademensagem:
Paraenviarourecebermensagens,umprocessoprecisaprimeirocriaruma
associaoentreumsoquetecomumendereoIPecomumaportado
host
local.Um
servidorassociarseusoqueteaumaportadeservioumaqueeletornaconhecida
dosclientesparaqueelespossamenviarmensagensaela.Umclientevinculaseu
soquereaqualquerportalocallivre.Omtodo
receive
retorna,almdamensagem,o
endereoIPeaportadoremetentepermitindoqueodestinatrioenviaumarespostaa
este.
Problemas:
Tamanhodamensagem:
oprocessodestinoprecisaespecificarumvetorde
bytesdeumtamanhoemparticularparareceberasmensagens.Sea
mensagemforgrandedemaisparaessevetor,elasertruncadanachegada.
Bloqueio:
Ossoquetesfornecemoperaes
send
nobloqueantese
receive
bloqueantesparacominicaopordatagrama.Aoperao
send
retornarquandotiverrepassadoamensagemparaascamadasUDPeIP,que
soresponsveisportransmitilaparaseudestino.Senenhumprocessotiver
umsoquereassociadoportadedestino,asmensagensserodescartadas.
(pag130)
Timeouts:
arecdepobloqueanteconvenienteparausoporumservidorque
estejaesperandoparareceberrequisiesdeseusclientes.Emalgumas
situaesnoadequadoqueumprocessoespereundefinidamentepara
receberalgo,nessecaso,consideraseum
timeout
.
Recepoanonima:
omtodo
receive
noespecificaumaorigemparaas
mensagens.Ainvocaoaomtodo
receive
obtmumamensagemendereada
paraseusoquete,independentedaorigem.Omtodo
receive
retornao
endereoIPeaportalocaldoremetente,permitindoqueodestinatrioverifique
deondeelaveio.
ModelodeFalhas:
OmodelodefalhaspodeserusadoemdatagramasUDP,que
sofremdasseguintesfalhas:
Falhasporomisso:
Ocasionalmente,mensagenspodemserdescartadas
devidoaerrosdesomadeverificaoouporquenohespaodisponvelno
buffer,naorigemounodestino.
Falhasporordenamento:
svezes,asmensagenspodemserentreguesem
umaordemdiferentedaqueforamemitidas.
UtilizaodoprotocoloUDP:
Paraalgumasaplicaes,aceitvelusarumservio
queestejaexpostoafalhasporomissoocasionais.PorexemplooDomainNaming
ServiceDNS.Asvezes,osdatagramasUDPsoumaescolhaatraente,poiselesno
sofremsobrecargasnecessriasaentregademensagensgarantida.Soelas:
anecessidadedearmazenarinformaesdeestadonaorigemenodestino
atransmissodemensagensextrase
alatenciadoremetente.
ComunicaoporfluxoTCP:
Asseguintescaractersticasdaredesoocultadaspela
abstraodefluxo(stream):
Tamanhodasmensagens:
oaplicaticopodeescolherovolumededadosquevai
serenviadoourecebidoemumfluxo.AcamadaTCPdecideovolumededadosa
coletar,antesdetransmitilosefetivamentecomoumoumaispacotesIP.
Mensagensperdidas:
Seoremetentenoreceberumaconfirmaodentrodeum
tempolimite,eleretransmiteamensagem.
Controledefluxo:
oprotocoloTCPtentacombinaravelocidadedosprocessosque
lemeescrevememumfluxo.Seoprocessoqueescreve(envia)forrapidodemais
paraoquel,entoeleserbloqueadoatqueoleitortenhaconsumidodados
suficientes.
Duplicaoeordenamentodemensagens:
idenficadoresdemensagemso
associadosacadadatagramaIP,oquepermiteaodestinatriodetectarerejeitar
duplicatasoureordenarasmensagensquechegamforadaordemdeemisso.
Destinosdemensagens:
doisprocessosqueestoemcomunicaoestabelecem
umaconexoantesdepoderemsecomunicar.Oestabelecimentodeumaconexo
envolveumarequisiode
connect
,doclienteparaoservidor,seguidodeuma
requisiode
accept
,doservidorparaocliente,antesquequalquercomunicao
possaocorrer.Emummodeloclienteservidor,issocausaumasobrecarga
considervelparacadarequisioresposta.(pag135).
Cliente:
CriaumobjectodotipoSocketquetentaestabelecerumaligaocomumaportade
umservidor,numamquinaremota.Paraestabelecerestaligaonecessrioindicaro
endereoIPeaportadamquinaremota.
Servidor:
Criaumobjectodotipolisteningsocketassociadoaoportoservidor.Estesocket
possuiummtodoqueficabloqueadoatquerecebaumpedidodeligaoaoporto
correspondente.Quandochegaopedidodeligao,oservidoraceitaainstanciandoum
novosocketque,talcomoosocketdocliente,temduasstreamsassociadas,umaparasada
outraparaentradadedados.
Problemasimportantesrelacionadoscomunicaoporfluxo:
Correspondnciadeitensdedados:
doiprocessosqueestejamsecomunicando
precisamconcordaraocontedodosdadostransmitidosporumfluxo.Porexemplo,
seumprocessoenviaumvalotintseguidodeumvalordouble,ooutroladodeverler
umvalorintseguidodeumvalordouble.Quandodoisprocessosnocooperam
corretamentenousodeumfluxo,oprocessoleitorpodecausarerrosaointerpretar
osdados,ouserbloqueadodevidoadadosinsuficientesnofluxo.
Bloqueio:
osdadosgravadosemumfluxosomantidosemumafilanosoquetede
destino.Quandoumprocessotentar
ler
dadosdeumcanaldeentrada,obterdados
dafilaouserbloqueadoatquedadossetornemdisponveis.Oprocessoque
escreve
dadosemumfluxopodeserbloqueadopelomecanismodecontroledefluxo
TCP,casoosoquetenooutroladojestejaarmazenandoovolumemximodedados
permitido.
Threads:
quandoumservidoraceitaumaconexo,geralmenteelecriaumanova
thread,parasecomunicarcomonovocliente.
Vantagememseusarumathreadseparadaparacadacliente
queo
servidorpodebloquearquandoestiveresperandopordados,sematrasaros
outroscliente.
Modelodefalhas:
Parasatisfazera
propriedadedaintegridade
dacomunicao
confivel,osfluxosTCPusamsomasdeverificaoparadetectarerejeitarpacotes
corrompidos,assimcomonmerosdesequnciaparadetectarerejeitarpacotesduplicados.
Quando
propriedadedavalidade
,osfluxosTCPusamtimeouteretransmissespara
tratarcompacotesperdidos.Portantohgarantiadequeasmensagenssejamentregues,
mesmoquandoalgunsdospacotesdascamadasinferioressoperdidos.
Representaoexternadedadoseempacotamento:
Representaoexternadedados
:Padroaceitopararepresentaodeestruturas
dedadosevaloresprimitivos.
Empacotamento(
marshalling):oprocedimentodepegarumconjuntodeitensde
dadosemontalosemumaformaconvenienteparatransmissoemumamensagem.
Desempacotamento(unmarshilling):
oprocedimentoinversodedesmontlosna
chegadaparaproduzirumconjuntodeitensdedadosequivalentenodestino.
Assim,o
marshilling
consistenatransformaodeitensdedadosestruturadosevalores
primitivosemumarepresentaoexternadedados.Analogamente,o
unmarshilling
consistenageraodevaloresprimitivosapartirdesuarepresentaoexternadedadose
nareconstruodasestruturasdedados.
Comunicaoclienteservidor:
Projetadaparasuportarasfunesetrocasdemensagem
eminteraesclienteservidortpicas.
Interaesclienteservidor(sendreceiveparadatagramasUDP)
asconfirmaessoredundantes,poisasrequisiessoseguidaspelasrespostas
oestabelecimentodeumaconexoenvolvemensagensextras,almdoparexigido
paraarequisioesuaresposta
ocontroledefluxoredundanteparaamaioriadasinvocaes,quepassamapenas
pequenosargumentoseresultados.
Oprotocolorequisioresposta:
Baseadoem3primitivasdecomunicao:
doOperation
:Usadopelosclientesparainvocaroperaesremotas.Seus
argumentosespecificamoobjetoremotoeomtodoaserexecutado.Seuresultado
umarespostaRMI.
getRequest:
Usadoporumprocessoservidorparalerasrequisiesde
servio.Quandooservidortiverexecutadoomtodonoobjetoespecificado,usar
sendReply
paraenviaramensagemderespostaparaocliente.Ocliente,aoreceber
amensagemresposta,farcomqueomtododoOperationoriginalseja
desbloqueadoeaexecuodoprogramaclientecontinue.
Modelodefalhasdoprotocolopedidoresposta:
SeastrsoperaessoimplementadassobreUDP,entosofremdomesmotipodefalhas
decomunicaoqueaqueleprotocolo:.
falhasdeomisso
.
Mensagensnosogarantidamenteentreguesporordem.
Almdisso,podemocorrerfalhasnoprocesso:assumemsecrashfailures,seoprocesso
pararepermaneceparadonoproduzindovaloresarbitrrios
Timeouts:
Pararesolveroproblemadasmensagensperdidas,adoOperationpermitedefinir
umserviodetempo,timeout.
Apsesgotarotimeout,aoperaopoderetornarcomumaindicaodeerro.
Geralmente,emvezderetornar,reenviaamensagemvriasvezesparateracertezaqueo
problemafoiofimdoservidorenomensagensperdidas.
Perdadamensagemderesposta:
Searespostaseperdeu,oservidoraorecebernovo
pedidopodeprocessaromtodonovamente(casosejaidempotente)ereenviaros
resultados.
Operaesidempotentes:
Tmomesmoefeitoseexecutadasumaoumaisvezes.
Ex:Operaoqueadicionaumelementoaumconjunto.
Contraexemplo:adicionarummontanteaumacontabancria
Emvezdereexecutaromtodo,podereenviaramensagem,desdequeestafique
armazenadanumficheiroqueirconteroregistodohistricodoservidor.
Problema:consumodememria
Soluo:oservidorsercapazdeidentificarqueoregistropodeserapagadodo
histrico,i.,quandoarespostativersidorecebida.
Semnticasperantefalhas:
Maybe(talvez):
peranteperdas,norepetidoopedidodeinvocao(emgeralno
aceitvel).
Atleastonce(pelomenosumavez):
peranteperdasouatrasosnaresposta,so
reenviadospedidosdeexecuoquenosoreconhecidoscomoduplicadospelo
servidor(sdeveserusadoemoperaesidempotentes).
Atmostonce(nomximoumavez):
Ospossveisreenviosdepedidosso
reconhecidoscomoduplicadospeloservidor(asemnticahabitualdossistemasde
invocaoremota)
CAPITULO5
Middleware:
osofwaterqueforneceummodelodeprogramaoacimadosblocosde
construobsicosdeprocessosedepassagemdemensagens.Umaspectoimportantedo
middlewareatransparnciadalocalizaoeaindependnciadosdetalhesdosprotocolos
decomunicao,sistemasoperacionaisehardwaredecomputador.Algumasformasde
middlewarepermitemquecomponentesdistintossejamescritosemdiferenteslinguagensde
programao.
Transparnciadelocalizao:
naRPC,oclientequechamaumprocedimentonopode
identificarseeleexecutadonomesmoprocessoouemumoutroprocesso,possivelmente
emumcomputadordiferente.Oclientetambmnoprecisasaberalocalizaodoservidor.
Protocolosdecomunicao:
osprotocolosquesuportamasabstraesdemiddlewareso
independentesdosprotocolosdetransportesubjacentes.Porexemplo,oprotocolo
requisiorespostapodeserimplementadosobreUDPousobreTCP.
Hardwaredecomputador:
Usamsepadresderepresentaoexternadedadosno
marshillingeunmarshillingdemensagens.Elesocultamasdiferenasdevidosarquiteturas
dehardware,comoaordemdosbytes.
SistemasOperacionais:
asabstraesdemaisaltonvelfornecidaspelacamadade
middlewaresoindependentesdosSOssubjacentes.
Usodevariaslinguagensdeprogramao:
Issoobtidopelousodeuma
linguagemde
definiodeinterface
(IDL)paradefinirinterfaces.
Interfaces:
Formadeorganizarumprogramacomoumconjuntodemdulosquepodemse
comunicar.Umainterfacedefinidaparacadamdulo.Ainterfacedeummduloespecifica
osprocedimentoseasvariveisquepodemseracessadasapartirdeoutrosmdulos.
Interfacesemsistemasdistribudos:
Apenasosmtodossoacessveisatravsde
interfaces.
Interfaceremota:
Cadaobjetoremototemumainterfaceremotaqueespecificaquaisdos
seusmtodospodemserinvocadosremotamente.
Interfacedeservio:
nomodeloclienteservidor,cadaservidorforneceumconjuntode
procedimentosqueestodisponveisparausopelosclientes.Porexemplo,umservidorde
arquivosforneceriaprocedimentosparaleregravararquivos.Otermointerfacedeservio
usadoparasereferirespecificaodosprocedimentosoferecidosporumservidor,
definindoostiposdosargumentosdeentradaesadadecadaumdosprocedimentos.
OmodelodeObjeto:
Referenciasdeobjeto:
Asrefernciasdeobjetosovaloresdeprimeiraclasse,
significandoqueelespodem,porexemplo,seratribudosavariveis,passadoscomo
argumentoseretornadoscomoresultadosdemtodos.
Interfaces:
Umainterfacetambmdefineostipoquepodemserusadosparadeclarar
otipodevariveis,oudosparmetros,evaloresderetornodosmtodos.Interfaces
notemconstrutores.
Aes:
EmumprogramaOO,aaoiniciadaporumobjetoinvocandoummtodo
emoutroobjeto.Umainvocaopodeincluirinformaesadicionais(argumentos)
necessriasparaexecutaromtodo.Uma
ao
umencadeamentodeinvocaes
relacionadasdemtodos,cadaumacomseurespectivoretorno.Aativaodeum
mtodopodeter3efeitos:,
1. oestadodoreceptorpodeseralterado
2. umnovoobjetopodeserinstanciadoporexemplo,pelousodeumconstrutor
emJAVAouC++
3. outrasinvocaespodemocorrernosmtodosdeoutrosobjetos.
Excees:
Asexceesproporcionamumamaneiradetratarcomcondiesdeerro,
semcomplicarocdigo.Almdisso,cadacabealhodemtodolista,explicitamente,
comoexceesascondiesdeerroquepodeencontrar,permitindoqueosusurios
dessemtodoastratemadequadamente.
Coletadelixo:
necessriofornecerumamaneiradeliberaroespaoemmemria
ocupadopelosobjetos,quandoelesnosomaisnecessrios.Quandoumobjeto
noestmaisacessvel,recuperaoespaoemmemriaeotornadisponvelpara
alocaoporoutrosobjetos.
OmodelodeObjetosdistribudos:
Cadaprocessocontmumconjuntodeobjetos,alguns
dosquaispodemreceberinvocaeslocaiseremotas,enquantooutrosobjetospodem
recebersomenteinvocaeslocais.
Referenciadeobjetoremoto:
outrosobjetospodeminvocarosmtodosdeumobjeto
remoto,setiveremacessosuarefernciadeobjetoremoto.
Asrefernciasdeobjetoremotosoanlogasslocais,pois:
1. oobjetoremotoquevaireceberumainvocaoamtodoremotoespecificadopelo
incovadorcomoumarefernciadeobjetoremotoe
2. asrefernciasdeobjetoremotopodemserpassadascomoargumentoseresultados
deinvocaesamtodosremotos.
Interfaceremota:
todoobjetotemumainterfaceremotaespecificandoqualdeseusmtodos
podeserinvocadodeformaremota.Objetosemoutrosprocessosspodeminvocar
mtodospertencentesinterfaceremota.
Aesemumsistemadeobjetodistribudo:
Assimcomonocasonodistribudo,uma
aoiniciadaporumainvocaoamtodo,aqualpoderesultaremmaisinvocaesa
mtodosemoutrosobjetos.Nocasodistribudo,osobjetosenvolvidosemumencadeamento
deinvocaesrelacionadaspodemestarlocalizadosemdiferentesprocessosouem
diferentescomputadores.
requisioparaexecutaralgumaoperaoemumobjetoremoto
obtenoderefernciasdeobjetosremotos
instanciaodeobjetosremotos(atravsdefbricas)
Coletadelixoemumsistemadeobjetodistribudo:
Acoletadelixodistribuda
geralmenteobtidapelacooperaoentreocoletordelixolocalexistenteeummdulo
adicionadoquerealizaumaformadecoletadelixodistribuda,normalmentebaseadaem
contagemdereferncia.
requercontagemderefernciasexplcita
rastreamentodetodasasrefernciastrocadas
poucoeficienteoudifcildeserimplementada
Excees:
Ainvocaoamtodoremotodevesercapazdelanarexcees,como
timeouts,causadospeloenviodemensagens,assimcomoaquelasocorridasdurantea
execuodomtodoinvocado.
errosdeaplicao:geradospelalgicadoservidor
errosdesistema:geradospelomiddleware
conduzidosdevoltaaoclientesobaformade
mensagens
RepresentaodeRefernciasdeObjetos:
Necessriaquandoobjetosremotossopassadoscomoparmetro
Arefernciaserializada(nooobjeto)
Contmtodainformaonecessriaparaidentificar(eenderear)umobjeto
unicamente nosistemadistribudo.
SemnticadeinvocaoRMI:
Semnticade
invocaotalvez
:
Omtodoremotopodeserexecutadoumavezou
noserexecutado.Asemntica
talvez
surgequandonenhumadasmedidasde
tolernciaafalhasaplicada.Tiposdefalhasso:
Falhaporomisso,seamensagemdeinvocaoouderesultadoforperdida
falhasporcolapso,quandooservidorquecontmoobjetoremotofalha.
Seamensagemderesultadonotiversidorecebidaapsumdadotempolimite(timeout)e
nohouvernovastentativas,nohavercertezaseomtodofoiexecutado.Seamensagem
deinvocaofoiperdida,entoomtodonotersidoexecutado.Poroutrolado,omtodo
podetersidoexecutadoeamensagemderesultado,perdida.Umafalhaporcolapsopode
ocorrerantesoudepoisdomtodoserexecutado.
Asemnticatalveztilapenasparaaplicaesnasquaissoaceitveisinvocaes
malsucedidasocasionais.
Semnticadeinvocao
pelomenosumavez
:
Comasemnticadeinvocao
pelomenosumavez
,oinvocadorrecebeumresultadoquandoomtodofoi
executadopelomenosumavez,ourecebeumaexceo,informandoquenenhum
resultadofoiobtido.Mascaraasfalhasporomissoepodesofrerosseguintestipos
defalhas:
falhasporcolapso
falhasarbitrarias(bizantinas),noscasosemqueamensagemdeinvocao
retransmitida,oobjetopodereceblaeexecutaromtodomaisdeumavez
possivelmentecausandooarmazenamentoouoretornodevaloreserrados.
Semnticadeinvocao
nomximoumavez
:
comasemnticadeinvocao
no
mximoumavez,
ouoativadorrecebeumresultadoquandoomtodofoiexecutado
exatamenteumavez,ouemcasocontrrio,umaexceo.
Transparncia:
Todasasetapasnecessriasparaempacotamentoetrocasdemensagens
soocultadasdoprogramadorquefazumachamadadeprocedimentoremoto.
Mdulodecomunicao:
Omdulodecomunicaousaapenasostrsprimeiros
elementos,osquaisespecificamotipodemensagem,suarequestIdearefernciaremotado
objetoaserinvocado.Oidentificadordemtodo,etodoomarshillingeunmarshilling,de
responsabilidadedosoftwareRMI.
Omdulodecomunicaonoservidorselecionaodespachanteparaaclassedoobjetoaser
invocado,passandosuareferncialocal,obtidaapartirdomduloderefernciaremota
atravsdoidentificadordoobjetoremotodadopelamensagemderequisio.
Cuidadoprotocolodecomunicaodemensagensentreclienteeservidor
Implementaoprotocolorequisioeresposta
Defineostiposdemensagensutilizados
Provaidentificaodasrequisies
Semnticadechamadas(ex.:atmostonce)
Retransmissoeeliminaodeduplicatas
Mduloderefernciasremotas:
responsvelpelatransformaoentrerefernciasde
objetolocaleremotoepelacriaoderefernciasdeobjetoremoto.Omdulodereferncia
remotadecadaprocessocontmumtabeladeobjetosremotospararegistrara
correspondnciaentreasrefernciasdeobjetolocaldesseprocessoeasrefernciasde
objetoremoto.Atabelainclui:
Umaentradaparatodososobjetosremotosmantidospeloprocesso.
Umaentradaparacadaproxylocal.
Quandoumobjetoremotoprecisaserpassadocomoargumentoouresultadopela
primeiravez,omduloderefernciaremotacriaumarefernciadeobjetoremoto,a
qualadicionaemsuatabela.
Quandoumarefernciadeobjetoremotochegaemumamensagemderequisioou
resposta,solicitadaaomduloderefernciaremotadeobjetolocal,aqualpodese
referiraumproxyouaumobjetoremoto.Nocasodarefernciadeobjetoremotono
estarnatabela,oRMIcriaumnovoproxyepedeaomduloderefernciaremota
paraadicionalonatabela.
Serventes:
Umserventeumainstnciadeumaclassequeforneceocorpodeumobjeto
remoto.oserventequetrataasrequisiesremotasrepassadaspeloesqueleto
correspondente.Osserventessopartesintegrantesdoprocessoservidor.Elessocriados
quandoosobjetosremotossoinstanciadosepermanecememusoatnoseremmais
necessrios,sendofinalmenteexcludos.
OsoftwareRMI:
umacamadadesoftwaremiddlewareentreosobjetosdoaplicativoe
osmdulosdecomunicaoederefernciaremota.
Proxy:
Afunodeumproxytornarainvocaoamtodoremototransparente
paraosclientes,comportandosecomoumobjetolocalparaoinvocadormas,em
vezdeexecutarumainvocaolocal,eleencaminhaumamensagemparaumobjeto
remoto.Eleocultaosdetalhesderefernciadeobjetoremoto,domarshillingde
requisiesedounmarshillingderespostas,edoenvioerecepodemensagensdo
cliente.
Despachante:
umservidortemumdespachanteeumesqueletoparacadaclasse
querepresentaumobjetoremoto.OdespachanteeoproxyusamomesmomethodId
paraosmtodosdainterfaceremota.
Funcionamento:Oservidortemumdespachanteeumesqueletopadaa
classedeumobjetoremoto.Odespachanterecebeamensagemderequisiodomdulode
comunicaoeutilizaomethodIdparaselecionaromtodoapropriadonoesqueleto,
repassandoamensagemderequisio.
Esqueleto:
aclassedeumobjetoremototemumesqueleto,oqualimplementaos
mtodosdainterfaceremota,masdeumaformadiferentedosmtodos
implementadosnoserventequepersonificaoobjetoremoto.
Ummtodode
esqueleto
desempacotaosargumentosnamensagemderequisioeinvocao
resultado,juntocomasexcees,emumamensagemderespostaqueenviada
paraomtododoproxyquefezarequisio.
Ovinculador(binder):
Umvinculadorumservioseparadoquemantmumatabela
contendomapeamentosdosnomestextuaispararefernciasdeobjetoremoto.Eleusado
pelosservidorespararegistrarseusobjetosremotospelonomeepelosclientes,para
pesquisalos.
Proxydinmico:
genrico,independentedeinterface
utilizaumadefiniodeinterfaceacessveldinamicamenteparaformataras
requisies
repositriodeinterfaces
tilquandonoseconheceainterfaceemtempodeprogramao
Skeletondinmico
permitereceberchamadasdestinadasaqualquertipodeobjeto/interface
tilnaconstruodeservidoresgenricos
Progamasclienteseservidores:
Oprograma
servidor
contemasclassesparaos
despachanteseesqueletos,juntocomasimplementaesdasclassesdetodososserventes
quesuporta.Contmumasessodeinicializaoqueresponsvelporcriareinicializar
pelomenosumdosserventesquefazempartedoservidor.Maisserventespodemser
criadosemrespostarequisiesdosclientes.
Oprogramacliente
conterasclassesdosproxiesdetodososobjetosremotosque
ativar.Elepodeusarumvinculadorparapesquisarrefernciasdeobjetoremoto.
Trheadsnoservidor:
Paraevitarqueaexecuodeumainvocaoatraseaexecuode
outra,geralmenteosservidorescriamumathreadparacadainvocaoremota.
Ativaodeobjetos:
consistenacriaodeumobjetoativoapartirdoobjetopassivo
correspondente,pelacriaodeumanovainstnciadesuaclasseepelainicializaode
suasvariveisdeinstnciaapartirdoestadoarmazenado.Osobjetospassivospodemser
ativadospordemandaporexemplo,quandoelesprecisamserinvocadosporoutrosobjetos.
Repositriodeobjetospersistentes:
Umobjetoquemantmseuestadoentreinvocaes
chamadodeobjetopersistente.Geralmenteosobjetospersistentes,sogerenciadospor
repositriosdeobjetospersistentes,queguardamseusestadosemumaformaempacotada
nodisco.
Coletadelixodistribuda:
Oobjetivodocoletordistribudogarantirque,seumareferncia
localouremotaparaumobjetoaindaformantidaemalgumlugar,emumconjuntodeobjetos
distribudos,entooprprioobjetocontinuaraexistirmasassimquenohouvermais
nenhumarefernciaparaele,esseobjetosercoletadoeamemriaporeleutilizadaser
recuperada.(PAG181)
Chamadadeprocedimentoremoto:
Umachamadadeprocedimentoremotomuito
parecidacomumainvocaoamtodoremoto,poisumprocessoclientechamaum
procedimentoqueestsendoexecutadoemumprocessoservidor.
OsoftwareRPCnosepreocupacomobjetoserefernciasdeobjeto.Oclientequeacessa
umservioincluiumprocedimentostubparacadaprocedimentodainterfacedeservio.
Stub:
semelhanteaoproxy.Elesecomportacomoumprocedimentolocalparaocliente,
masemvezdeexecutarachamada,eleempacotaoidentificadordeprocedimentoeos
argumentosemumamensagemderequisioeaenviaparaoservidorpormeiodeseu
mdulodecomunicao.Quandoamensagemchegaeledesempacotaosresultados.
Interfaces:
Provemacessoscaractersticasexternamentevisveisdeumobjetooumdulo
emgeral:mtodosevariveis
Papelfundamentalnoencapsulamento
Emsistemasdistribudos:apenasosmtodossoacessveisatravsdeinterfaces
Passagemdeparmetros:copyrestore
parmetrosdeentradaesada
ponteirosnosopermitidos
objetoscomoparmetros:refernciadeobjeto
RMIregistry:
ovinculadordaRMIJava.UmainstanciadeRMIresgistrydeveser
executadaemcadacomputadorservidorquecontenhaobjetosremotos.Elemantmuma
tabelamapeandonomestextuaisnoestiloURLs,emrefernciaparaobjetosremotos
contidosnessecomputador.