Um Arquivo Seguro e Tolerante a Faltas para Corba utilizando Fragmentação e Dispersão com Redundância Cristina Silva Luis Rodrigues FCUL Indice • Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Indice • Fragmentação e Dispersão com Redundância • Corba Cristina Silva - FC/UL Luis Rodrigues - FC/UL Indice • Fragmentação e Dispersão com Redundância • Corba • Segurança Cristina Silva - FC/UL Luis Rodrigues - FC/UL Indice • Fragmentação e Dispersão com Redundância • Corba • Segurança • Persistência Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância Cristina Silva - FC/UL Luis Rodrigues - FC/UL Serviço de Fragmentação e Dispersão com Redundância User Site 1 – É adicionado, se necessário, “padding” ao ficheiro 2 – É dividido em páginas 3 - É cifrado 4 – São criados os fragmentos para cada página 5 – São efectuadas réplicas dos fragmentos Network 6 - Difusão dos fragmentos para os armazéns Storage Site 7 – Algoritmo de aceitação dos fragmentos Cristina Silva - FC/UL Luis Rodrigues - FC/UL CORBA Common Object Request Borker Arquitecture (2.0) Object Implementation Client Interface Repository Dynamic Invocation Client IDL Stubs ORB Interface Static Skeletons Dynamic Skeleton Object Adapter Implementation Repository Object Request Broker Core (IIOP) Cristina Silva - FC/UL Luis Rodrigues - FC/UL OMA The Object Management Arquitecture Corba Facilities Application Objects Distributed Documents Domain Services System Information Managemnt Management Object Request Broker (ORB) Naming Persistence Life Cycle Properties Concurrency Collections Security Trader Externalization Events Transactions Query Relationships Time Licensing CorbaServices Cristina Silva - FC/UL Luis Rodrigues - FC/UL COSS Segurança Identificação e autenticação Autorização e controlo de acesso • Auditoria de segurança • Segurança nas comunicações • Não repudiação • Administração Cristina Silva - FC/UL Luis Rodrigues - FC/UL Autenticação Cliente Cristina Silva - FC/UL Servidor de Segurança Luis Rodrigues - FC/UL Autenticação Cliente Cristina Silva - FC/UL Servidor de Segurança Luis Rodrigues - FC/UL Acesso aos Objectos Arquivados Cliente Cristina Silva - FC/UL Servidor de Segurança Luis Rodrigues - FC/UL Acesso aos Objectos Arquivados Cliente Cristina Silva - FC/UL Servidor de Segurança Luis Rodrigues - FC/UL Concretização Cliente Cristina Silva - FC/UL Servidor de Segurança Luis Rodrigues - FC/UL COSS - Persistência • PO – Objecto Persistente • POM – Gestor de Objectos Persistentes • PDS – Serviço de Persistência de Dados • Datastore • PID – Identificação do objecto no arquivo Cristina Silva - FC/UL Luis Rodrigues - FC/UL COSS - Persistência •O PDS suporta uma colecção de pares de <Arquivo, Protocolo>. • O Arquivo guarda os objectos persistentes e o Protocolo descreve o modo como o estado do objecto é transferido de e para o PO •O PDS comunica com o PO através de um Protocolo e com o Arquivo através de uma interface especifica. • O POM resolve dinamicamente a associação entre PO’s e os diferentes PDS’s. • A identificação do objecto persistente no Arquivo é efectuado através do PID ("Persistent Identifier"). Cristina Silva - FC/UL Luis Rodrigues - FC/UL COSS - Persistência Client Aplication PO PO PO PO Protocol PO PID POM PDS Data Store Cristina Silva - FC/UL Luis Rodrigues - FC/UL COSS - Persistência PO PO PO PO PID POM Protocol PDS Datastore Concretizado Cliente Cristina Silva - FC/UL Fragmentador Armazéns Luis Rodrigues - FC/UL Arquitectura dos Objectos Cliente Cristina Silva - FC/UL Servidor de Segurança Fragmentador Luis Rodrigues - FC/UL Arquitectura dos Objectos Escreve(stream) Cliente Cristina Silva - FC/UL Fragmentador Luis Rodrigues - FC/UL Arquitectura dos Objectos Escreve(stream) Cliente Cristina Silva - FC/UL Fragmentador Armazéns Luis Rodrigues - FC/UL Arquitectura dos Objectos - Leitura Quero_fragmento(fragmento) ler(stream) Tenho_fragmento(fragmento) Cliente Cristina Silva - FC/UL Fragmentador Armazéns Luis Rodrigues - FC/UL Arquitectura dos Objectos - Salvaguarda Escreve(stream) Guarda_fragmento(fragmento) Guarda(stream) Cliente Cristina Silva - FC/UL Fragmentador Armazéns Luis Rodrigues - FC/UL Problema da Distribuição • Distribuição Estática – a dispersão dos fragmentos é efectuada com base num conjunto pré-definido e estático de armazéns. • Distribuição Dinâmica – os Fragmentadores efectuam a distribuição de acordo com a disponibilidade dos Armazéns na altura da operação de salvaguarda Cristina Silva - FC/UL Luis Rodrigues - FC/UL Servidor de Segurança Arquitectura Geral PO PO PO PO PID IIOP DCE/EISOP POM Protocol PDS Proprietario PDS Concretizado Cliente Cristina Silva - FC/UL Fragmentador Armazéns Luis Rodrigues - FC/UL Conclusões e Trabalho Futuro • Conclusões – Arquivo seguro e tolerante a faltas em CORBA – Utiliza apenas interacções normalizadas • Trabalho futuro – Diversos parâmetros de configuração – Adquirir experiência com a concretização Cristina Silva - FC/UL Luis Rodrigues - FC/UL FIM Cristina Silva - FC/UL Luis Rodrigues - FC/UL COSS Segurança Client user Authenticate User Sponsor Principal Autentication Request Create Credentials Current OR B Cristina Silva - FC/UL Luis Rodrigues - FC/UL COSS Segurança Target Object Client request request ORB Services ORB Services ORB Core Security Technology Basic Protection & communications Cristina Silva - FC/UL Luis Rodrigues - FC/UL interface CosPersistencePID::PID { attribute string Arquivo-FDR; string get_PIDString(); }; interface PID: CosPersistencePID::PID { attribute string ID; void open(); void store(in stream Sobj); void restore(in stream Sobj); void close (); void delete(); }; Cristina Silva - FC/UL Luis Rodrigues - FC/UL interface PIDFactory{ PID create_unique_PID(); PID create_PID_from_string(in string id_string); }; interface POProtocol { void save_state(in PID pid); void load_state(in PID pid); }; Cristina Silva - FC/UL Luis Rodrigues - FC/UL interface PDS { PDS connect( in POProtocol object, in PID pid); void disconnect(in POProtocol object, in PID pid); void store( in POProtocol object, in PID pid); void restore(in POProtocol object, in PID pid); void delete(in POProtocol object, in PID pid); }; Cristina Silva - FC/UL Luis Rodrigues - FC/UL interface Fragmentador{ void store(in ID id, in stream Sobj); void restore(in ID id, out stream Sobj); void delete(in ID id); void receive-fragment(in FRAG fragment); //call-back }; Cristina Silva - FC/UL Luis Rodrigues - FC/UL interface Armazem{ void store-fragment(in FRAG fragment); void delete-fragment(in FRAG fragment); void restore-fragment(in FRAG frgament); }: Cristina Silva - FC/UL Luis Rodrigues - FC/UL