Camada de aplicação OSI
Liane Tarouco
UFRGS
Camada de aplicação do modelo OSI
• ACSE (Application Control Service Element)
• CCR (Commitment Concurrency and Recovery)
Conceitos
• ACPM (Association Control Protocol Machine).
• ACSE - Association Control Service Element (Elemento de Controle do Serviço de Associação).
• AE - Application Entity (Entidade de aplicação). Representação dos aspectos de comunicação entre os processos de aplicação (AP). Pode haver mais de uma para cada processo de aplicação. Uma entidade de aplicação é formada por uma ou mais ASEs.
• AEI - Application Entity Invocation (Invocação da Entidade de Aplicação)
• AP - Application Process (Processo de aplicação). Processos do usuário que executam no ambiente OSI.
Conceitos
• ASE - Application Service Element (Elemento de Serviço da Aplicação). Definem os procolos utilizados para a interação entre outros ASEs e aos serviços das camadas inferiores do modelo OSI. Formam o contexto da aplicação. Sao exemplos de ASEs: o ACSE, o ROSE e RTSE.
• CCR - Commitment, Concurrency and Recovery (Confirmação, Concorrência e Recuperação). Protocolo da camada de aplicação que permite a execução de ações atômicas e mecanismos de recuperação.
Conceitos
• DTP - Distributed Transaction Processsing (Processamento Transacional Distribuído). Modelo genérico que engloba o CCR.
• MHS - Message Handling Systems (Sistemas de Manipulação de Mensagens).
• FTAM - File Transfer Access and Management.
• ROSE - Remote Operation Service Element.
• RTSE - Reliable Transfer Service Element.
ACSE-Association Control Service Element
• O ACSE é o elemento básico da camada de aplicação.
• Responsável pelo estabelecimento e pela liberação da associação entre duas entidades de aplicação que queiram ou estejam trocando informações.
• Os demais ASEs, (ROSE, RTSE, CCR), bem como, aqueles definidos pela aplicação do usuário fazem uso do conjunto de primitivas do ACSE para o gerenciamento da associação.
• Cada tipo diferente de aplicação demanda uma combinação diferente de ASEs para formar o protocolo de aplicação específico.
• Enquanto que as associações dos níveis inferiores do modelo OSI são de propósito geral, na camada de aplicação cada associação é especificamente definida para uma tarefa.
Estabelecimento da associação
A-ASSOCIATE.REQUEST: primitiva invocada pelo AE iniciador ao ACSE.
A-ASSOCIATE.INDICATION: indicação vinda do ACSE sobre um pedido de associação. É recebida pelo AE que foi chamado.
A-ASSOCIATE.RESPONSE: resposta do AE chamado ao ACSE em relação ao estabelecimento da conexão.
A-ASSOCIATE.CONFIRMATION: confirmação ou não fornecida pelo ACSE ao iniciador sobre o estabelecimento da associação.
Liberação da associação
• Uma associação pode finalizada de maneiras distintas a partir do uso das primitivas A-RELEASE, A-ABORT e A-P-ABORT.
• A-RELEASE efetua um término seguro garantindo a entrega de todos os dados em trânsito antes da liberação da associação.
• A-ABORT é utilizada por uma das AEs de modo a finalizar a associação de forma unilateral.
• Com A-P-ABORT o término da associação é informado as duas AEs pelo provedor do serviço ACSE.
• As últimas duas primitivas desfazem as associações sem preocupar-se com a entrega possíveis informações pendentes.
CCR - Commitment, Concurrency and Recovery
• O CCR fornece mecanismos que permitem que duas entidades de aplicação (AEIs) distintas coordenem seu processamento, no sentido de garantir que a execução de determinadas operações só ocorram, quando ambas as entidades estiverem prontas para executá-las.
• O CCR provê também mecanismos que permitem a recuperação dos dados processados para um estado consistente quando ocorre alguma falha durante a execução do procedimento.
Operação atômica• No CCR uma ação atômica é definida como sendo uma
operação de processamento indivisível.
• Os dados manipulados durante o processamento da ação atômica são denominados dados delimitados (bounded data).
• O valor desses dados é modificado de forma consistente.
• Se ocorrer algum erro durante o processamento da ação atômica o valor que os dados delimitados possuiam antes do início do processamento da ação é restaurado.
Two-phase Commit Protocol
• O CCR adota o modelo mestre-escravo para o relacionamento das duas entidades de aplicação envolvidas no processamento de uma ação atômica.
• O intercâmbio de informações entre o mestre e o escravo é feita através de um Protocolo em duas fases (Two-phase Commit Protocol).
ROSE - Remote Operation Service Element
• O ROSE é utilizado para suportar tipos interativos de aplicações, as quais são caracterizadas por um request de uma aplicação para outra aplicação para executar alguma operação.
• Um exemplo comum deste mecanismo é a chamada de procedure remota.
ROSE• O serviço básico provido pelo ROSE é a facilidade de
invocar uma operação sobre um sistema aberto remoto. • A entidade aplicação (AE) invoca a operação emitindo
um request para uma igual AE, especificando uma operação particular a ser executada.
• A outra AE tenta executar a operação e pode reportar o resultado da tentativa. A troca entre as duas entidades é conduzida fora do contexto da associação de aplicação.
Classe de operação do ROSE
• Classe de operação 1– Modo reportado: se ocorre sucesso, retorna uma resposta
com o resultado. Se ocorre uma falha, retorna uma resposta com o erro.
– Modo de operação: síncrono
• Classe de operação 2– Modo reportado: se ocorre sucesso, retorna uma resposta
com o resultado. Se ocorre uma falha, retorna uma resposta com o erro.
– Modo de operação: assíncrono
Classe de operação do ROSE
• Classe de operação 3– Modo reportado: se ocorre sucesso, não responde. Se
ocorre falha, retorna uma resposta com o erro.– Modo de operação: assíncrono
• Classe de operação 4– Modo reportado: se ocorre sucesso, retorna uma
resposta com o resultado. Se ocorre falha, não responde.
– Modo de operação: assíncrono
Classe de operação do ROSE
• Classe de operação 5– Modo reportado: se ocorre sucesso, não
responde. Se ocorre falha, não responde.– Modo de operação: assíncrono
Primitivas de serviço do ROSE• RO-INVOKE.request (operation value, operation class, argument, invoke
ID, linked ID, priority)
• RO-INVOKE.indication (operation value, argument, invoke ID, linked ID)
• RO-RESULT.request (operation value, result, invoke ID, priority)
• RO-RESULT.indication (operation value, result, invoke ID)
• RO-ERROR.request (error value, error parameter, invoke ID, priority)
• RO-ERROR.indication (error value, error parameter, invoke ID)
• RO-REJECT-U.request (reject reason, invoke ID, priority)
• RO-REJECT-U.indication (reject reason, invoke ID)
• RO-REJECT-P.indication(invoke ID, returned parameters, reject reason)
RTSE - Reliable Transfer Service Element
• O objetivo do RTSE é fornecer um serviço que, embora não seja tão geral quanto o nível de sessão, forneça uma interface simples e seja capaz de transferir unidades de dados de tamanho arbitrário de forma confiável entre entidades de aplicações.
• O RTSE fornece mecanismos genéricos que, em casos onde uma falha do sistema de comunicação interrompe a conexão inicialmente utilizada na transferência de dados, permitem o restabelecimento da transferência de dados do ponto onde foi suspensa, em uma nova conexão.
RTSE
• O RTSE utiliza o ACSE, para estabelecer e encerar associações, e alguns dos mecanismos de sincronização e gerenciamento de tokens e de atividades fornecidos pelo serviço de sessão (através do serviço de apresentação) para garantir a confiabilidade nas transferências de dados.
RTSE
• Após utilizar o ACSE para estabelecer uma associação entre entidades de aplicação, o RTSE permite a troca de dados na forma de APDUs (Aplication Protocol Data Units) RTSE.
• Quando uma APDU é confirmada pelo RTSE (reconhecimento positivo passado através da primitiva RT-TRANSFER.confirm), o usuário tem a certeza de que a unidade de dados foi entregue corretamente ao destinatário.
• Quando o RTSE não consegue transferir a APDU, ele sinaliza essa impossibilidade para seu usuário através de um reconhecimento negativo, também passado através da primitiva RT-TRANSFER.confirm.
RTSE
• A transferência de cada APDU é realizada em uma atividade distinta no nível de sessão. O RTSE segmenta a APDU em blocos de dados, iniciando uma atividade de sessão, antes de começar a transferência dos blocos.
• Na fase de transferência de dados, o envio de cada bloco de dados é seguido pela emissão de um ponto de sincronização secundário e pela espera de sua confirmação.
• Ao final da transferência de todos os blocos de dados de uma APDU, a atividade de sessão é encerrada. Se existir outra APDU a transmitir, o RTSE abre uma nova atividade de sessão, repetindo o procedimento.
RTSE
• O RTSE utiliza o ACSE para encerrar uma associação de forma ordenada, sem perda dos dados em trânsito.