Sistemas Distribuídos

inf.furb.br
  • No tags were found...

Sistemas Distribuídos

Universidade Regional de BlumenauCentro de Ciências Exatas e NaturaisCurso de Ciências da ComputaçãoDESENVOLVIMENTO DE UM MECANISMODE TRANSAÇÕES PARA SISTEMASDISTRIBUÍDOSAcadêmico: Christiano M. BorchardtOrientador : Marcel Hugo


Roteiro da ApresentaçãoIntroduçãoObjetivoProcessamento de transaçõesSistemas DistribuídosTransações DistribuídasDesenvolvimento do protótipoConclusão


IntroduçãoTransação Unidade de recuperação Unidade lógica de trabalhoSistema de processamento de transações coleção de programas de transaçãodesignados a fazer as funções necessáriaspara automatizar uma atividade de negócioAplicações Transportes Finanças Órgãos governamentais Outros...


ObjetivoDesenvolvimento de uma biblioteca degerenciamento de transações em C++para uso em sistemas distribuídos,utilizando sistema de arquivos


Processamento de TransaçõesPropriedades ACID:AtomicidadeConsistênciaIsolamentoDurabilidade


FalhasFalhas de sistema é qualquer evento queobrigue o sistema a parar, exigindo umsubsequente reinícioFalhas de mídia ocorrem quando qualquerparte do armazenamento estável édestruído


Registro de LogInforma tudo sobre o que alguma transação fez.Registro de log de desfazerRegistro de log de refazerRegistro de log de desfazer/refazer


ConcorrênciaExecuções seriais - Não permite que astransações sejam intercaladas entre siExecuções serializáveis – Permite que astransações sejam intercaladas entre si, masproduzem o mesmo resultado que astransações seriaisBloqueio de duas fases Bloqueio Desbloqueio


Sistemas DistribuídosHardware + Software + DadosVários participantes (sites)Arquitetura Cliente/Servidor Cliente – Aplicação Servidor – Participantes


Objetos DistribuídosEncapsulamento do acesso (remoto) abase de dados Mecanismos RPCObjetos e Interfaces IDL


Objetos DistribuídosCommon Object Request BrokerArchitecture (CORBA) Object Management Group (OMG) stub/skeleton Interface repositoryDistributed/Component Object Model(COM/DCOM) Microsoft Proxy/stub v-Table


Transações DistribuídasProblema:Garantia da AtomicidadeProtocolo de consolidação de duas fases


Protocolo de consolidação deduas fasesFase IPreparecoordenadorReady ouDon’t Commit


Protocolo de consolidação deduas fasesFase IICommitou Abortcoordenador


Protocolo de consolidação deduas fasesFases I e IIGerenciadorde transaçõesGerenciadorde transaçõesPreparePrepareCommitCommitreadyreadyOkOkGerenciadorGerenciadorGerenciadorGerenciadorde recursosde recursosde recursosde recursosem N.Yem Londresem N.Yem LondresFase IFase II


Desenvolvimento do protótipo dosoftwareRequisitos atomicidade consistência isolamento, pela serialização da execução durabilidade


Especificação do protótipoDiagrama de casos de usoInicializar TransaçõesUsuárioIniciar TransacaoAbrir ArquivoAbortar TransaçãoConsolidar TransaçãoGravar RegistroLer Registro


Especificação do protótipoDiagrama de classesCFileCArqLogPossuiCArqTransacCCallBackCoordenadorAssocia-se1 11 1Coordena1..*1CServiceModuleAssocia-seCCoordenadorCoordenaCTransacao1 1..*1 1..*11Faz ParteCEscalonador


Especificação do protótipoDiagrama de sequência INICIA TRANSACAO: Usuário: CTransacao : CCoordenador : CServiceModule : CEscalonadorIniciaTransacao ( )IniciaTransacao ( )AdicionaTransacao ( )AdicionaTransacao ( )EsperaPelaVez ( )InicializaLogGlobal ( )


Especificação do protótipoDiagrama de sequência ABORTAR TRANSAÇÃO: Usuário: CTransacao : CCoordenador : CServiceModule : CCallBackCoordenador: CArqTransac : CArqLogAbortaTransacao ( )AbortaTransacao ( )GravaLogGlobal ( )Invoke ( )Abort ( )GravaEstadoLog ( )FinalizaLogGlobal ( )RemoveTransacao ( )


Especificação do protótipoDiagrama de sequência CONSOLIDAR TRANSAÇÃO: Usuário: CTransacao : CCoordenador : CServiceModule : CCallBackCoordenador: CArqTransacConsolidaTransacao ( )Commit ( )GravaLogGlobal ( )Invoke ( )Prepare ( )EsvaziaBuffer ( )Pronto ( )GravaLogGlobal ( )Invoke ( )Commit ( )ConsolidaLog ( )FinalizaLogGlobal ( )RemoveTransacao ( )


Implementação do protótipoTécnicas e ferramentas utilizadasOrientação a objetos UML (Unified Modeling Language) Ferramenta Rational RoseObjetos Distribuidos COM/DCOMMicrosoft Visual Studio Visual C++ 6.0 MFC (Microsoft Foundation Classes)Transações Algoritmo de registro de log de refazer (redo) Protocolo de consolidação de duas fases


Implementação do protótipoUtilização da bibliotecaCliente header transacao.hServidor (participante) header libtransac.h static library LibTransac.Lib


ConclusãoCusto de performanceViabilidade do uso de modelos de objetosModelo de objetos COM


ExtensõesSerializabilidadeUtilização do padrão CORBAResolução de impasses (deadlock)


DEMONSTRAÇÃO...