O modelo FTAM do OSI se baseia na idéia de uma área de armazenamento de arquivos virtual que é mapeada em uma área de armazenamento de arquivos real por meio de software.
O armazenamento virual é altamente baseado em conexões, com uma série de regimes aninhados. Cada regime tem uma série de operações que são permitidas durante sua validade. Quando uma conexão é estabelecida, com o uso da primitiva F-INITIALIZE, o FTAM entra no que é chamado regime de associação do FTAM, como mostra a figura.
Durante esse regime, o usuário do FTAM tem permissão para realizar operações que gerenciam o armazenamento de arquivos virtual.
Para acessar um arquivo específico, o usuário executa então uma primitiva F-SELECT a fim de selecionar um arquivo axistente, ou uma primitiva F-CREATE para criar um novo. Em ambos casos, o usuário entra agora no regime de seleção de arquivo, no qual os atributos do arquivo podem ser lidos ou modificados. Normalmente, os regimes são abandonados em ordem inversa em relação àquela em que foram alcançados, embora seja possível em emergência abandonar e abortar tudo de uma vez.
Conquanto a existência de F-SELECT e F-OPEN possa parecer redundante, é possível com algum esforço construir situações onde é útil ter esses dois regimes. Como a filosofia do OSI é incluir todos os recursos de que qualquer pessoa não poderia jamais conceber necessitar,
não importa o quanto seja remota a chance, as duas primitivas foram incluídas. Ambas têm parâmetros que especificam o bloqueio necessário, se houver algum. Em particular, é possível selecionar um arquivo com um bloqueio compartilhado (para leitura), e depois abrir um arquivo com um bloqueio exclusivo (para escrita). Depois de deixar o regime de selecão, o bloqueio exclusivo é desfeito mas o bloqueio compartilhado ainda está em vigor, e assim o arquivo pode ser reaberto para leitura sem qualquer perigo de perda do bloqueio compartilhado. Dessa maneira, uma aplicação pode ir e voltar entre fases de leitura e escrita sem que haja também qualquer perigo de que estranhos se intrometam e tranquem o arquivo para escrita entre um F-CLOSE e o F-OPEN seguinte.
As primitivas do FTAM se relacionam com o gerenciamento dos regimes e outras com operações específicas sobre arquivos. Algumas primitivas operam sobre UDAFs (Unidades de Dados de Acesso a Arquivo), essencialmente os nós (possivelmente com labels).
A maior parte das primitivas do FTAM é fácil de compreender, mas algumas exigem mais explicações.
F-INITIALIZE estabelece uma conexão com o armazenamento de arquivos pela chamada a A-ASSOCIAR, que por sua vez chama P-CONEXÃO, que chama S-CONEXÃO, a qual chama T-CONEXÃO, que ainda chama N-CONEXÃO, que faz o serviço.
As primitivas F-BEGIN-GROUP, F-END-GROUP, F-RECOVER, F-CHECK e F-RESTART servem ao objetivo de tornar confiáveis as transferências de arquivos, mesmo em face de quedas de clientes e servidores. Quando se introduz o regime aberto, os parâmetros de F-OPEN podem especificar um serviço comum ou confiável. Se ocorrer uma queda quando o serviço comum é selecionado, cabe ao usuário a recuperação. Entretanto, se for escolhido o serviço confiável, o sistema proporciona assistência considerável.
O FTAM usa um esquema de proteção tão geral que nenhum servidor de arquivos real pode esperar implementá-lo por completo, mas a maioria deles será capaz de implementar pelo menos uma parte do sistema. Um atributo de controle de acesso está associado a cada arquivo. Esse atributo é um conjunto de muitas listas arbitrárias de cinco elementos. Cada lista contém um mapa de bits, uma chave de concorrência, um identificador de usuário, uma lista de senhas e uma localização de usuário.
Quando um usuário seleciona um arquivo, F-SELECT contém parâmetros que dizem quais as operações necessárias, qual a concorrência necessária e, opcionalmente, algumas senhas. O usuário e os identificadores de localização já são conhecidos desde F-INITIALIZE.Cada lista no atributo de controle é examinada por sua vez, para ver se garante permissão. A permissão pode ser garantida com base no identificador do usuário, na senha ou na localização ( um desses em uma lista é o bastante).
Se qualquer das operações solicitadas por F-SELECT estiver desativada no mapa de bits, essa lista falhará. Se todas as operações forem válidas, a chave de concorrência para a entrada da lista é comparada com o tipo de bloqueio que o usuário deseja para cada operação. Há quatro possibilidades por operação:
- 0: Eu desejo um bloqueio compartilhado (para leitura).
- 1: Eu quero um bloqueio exclusivo (para escrita).
- 2: Eu não realizarei as operações,mas outros podem fazê-lo.
- 3: Ninguém pode realizar a operação.
O FTAM é tão complexo que é improvável que se possa implementá-lo por completo. Para evitar o aparecimento de muitos subconjuntos incompatíveis entre si, o padrão do FTAM dividiu os recursos em nove subconjuntos, um dos quais é obrigatório e oito são opcionais. No momento de F-INITIALIZE, é feita uma verificação para identificar o que o usuário e o armazenamento de arquivos têm em comum. Os pedidos que recaem fora do subconjunto comum não podem ser usados.
O protocolo do FTAM é muito complicado, mas poderia ser difícil substituí-lo, dados todos os recursos que precisam ser suportados. Cada primitiva tem uma ou mais UDPs associadas a ela, cada uma das quais está definida em ASN.1. O padrão também define uma máquina finita de estados informando que ações devem ser realizadas para cada evento possível, como a execução de uma primitiva ou a chegada de uma UDP.
Referências Bibliográficas:
- Gomes Soares, Luiz F.,Redes de Computadores: Das LANs, MANs e WANs, as Redes ATM. Embratel., Editora Campus, 1995.
- Melo de Brito, Maria C.,Arquitetura de Redes de Compuadores OSI e TCP/IP. Makron Books, 1994.
- Tanenbaum, Andrew S.,Redes de Computadores.Editora Campus, 1994.