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.