MOBILET Arquitetura global do sistema Log Rede Controle Agente Móvel Único: Vantagens Execução Menor em um nó por vez tráfego na rede Independência Pode de controle gerenciar múltiplas plataformas Construção relativamente simples Abordagem escolhida Monitor 1 2 3 Agente Móvel 2 Repositório LOGs 3 1 - VOYAGER Universal ORB 2 - VISIBROKER (CORBA) 3 - Interoperabilidade Voyager x CORBA Resultados Obtidos Maior conhecimento da arquitetura: Estudo do motor de inferência JEOPS Estudo dos ORBs Voyager e VisiBroker Obtenção de uma arquitetura original e eficiente de mobilidade Arquitetura Criação totalmente reconfigurável de condições para avaliação de desempenho e estudo comparativo Possibilidade de aproveitamento real do agente em ambiente de produção MOBILET Em cada máquina... Arquivo com limites de utilização para cada tipo de partição IMAGE TEXT EXEC CORE HTML CACHE TEMP MAIL LOG BACKUP MQUEUE PRINT UNKNOWN Classifica partições Para cada partição com problema... Classifica arquivos MANTER APAGAR COMPACTAR COMPACTAR E RECRIAR MOVER INFORMAR Age sobre arquivos ROOT VAR TMP VAR_MAIL EXPORT USR OPT PROC DEV_FD CDROM DEFAULT Regras MOBILET 1) Se %Utilizado da partição <= Ideal da partição, então partição está Ok! f Filesystem(f) (PercUsado(f) <= Ideal(f)) => Situacao(f,OK); 2) Se tipo do arquivo for CORE, então apague-o e atualize a partição! f,a Filesystem(f) File(a) ( Type(a) = CORE) => Apague(f,a) Decremente(f, Size(a)); 3) Se tipo do filesystem for ROOT, então nada pode ser feito! f Filesystem(f) ( Type(f) = ROOT) => Situação(f,OK); ... 12) Se partição ainda não está Ok e tipo do arquivo for EXEC e tipo da partição for EXPORT, então não mexa no arquivo! f,a Filesystem(f) File(a) Situação(f,Not) (Type(a) = EXEC) (Type(f) = EXPORT) => Maintain(f,a); ... 17) Se partição ainda não está Ok e tamanho do arquivo > 5Mb e tipo da partição for VAR_MAIL, então mova arquivo e atualize a utilização da partição! f,a Filesystem(f) File(a) Situação(f,Not) (Size(a) > 5000000) (Type(f)= VAR_MAIL) => Move(f,a) Decrease(f, Size(a)); MOBILET Objetos... Filesystem Name: String; Partition: String; Size: int; Used: int; Type: int; Ideal: int; Files: Arq[] NFiles: int Filesystem(...); // construtor float computePerc(); decrease(int valor, int fator); boolean isUsedOk(); setIdeal(Config config_table); gets e sets.. Arq Name: String; Type: int; LifeTime: int; Checksum: int; Size: int; Owner: String; CompactDegree: int; Situation: int Arq(); // construtor remove(Log log), compact(...), compact_create(...), move(...), maintain(...), inform(...); setCompactDegree(); gets e sets...