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
Download

Um Arquivo Seguro e Tolerante a Faltas para CORBA Utilizando