4.2. SERVIÇO M-SET

O serviço M-SET permite modificações de dados na base de informações de gerenciamento. Ele é usado para mudar o valor ou valores de um ou mais atributos em um ou mais objetos gerenciados.

O serviço M-SET pode ser também um serviço de confirmação ou de não confirmação. A tabela 1, parte (c), lista os parâmetros usados no serviço M-SET.

Os seguintes parâmetros no M-SET-request e primitivas de indicação tem o mesmo significado como o parâmetro correspondente no serviço M-GET: identificador invoke, classe base-object, instância base-object, escopo, filtro, controle de acesso e sincronização. O parâmetro mode especifica se o serviço de confirmação ou não confirmação é requisitado. A modificação da lista contém um conjunto de especificações de attribute-modification, cada um dos quais contém:

  • Attribute identifier: identifica o grupo de atributo ou atributos cujo valore estão sendo modificados.
  • Attribute value: exceção para a opção set-to-default, este parâmetro lista o valor ou valores para serem usados em modificações de atributo ou atributos.
  • Modify operator: especifica uma das seguintes funções de modificações:
  • Replace: substitui o valor do atributo corrente com aqueles que estão na lista de attribute-value.
  • Add value: para atributos set-valued, soma o valor do atributo especificado oara o conjunto de valores dos atributos correntes. Este é uma operação set-union; somente esses valores que não existem são somados.
  • Remove value: para atributos set-valued, remove esses valores específicos que estão correntemente no conjunto. Se um valor é especificado que não está no conjunto, não ocorre erro.
  • Set to default: para um atributo single-valued, o atributo está conjunto para o valor default. Para um atributo set-valued, o(s) valor(es) do atributo será conjunto para o valor(es) default.
  • Se o operador não é especificado, o operador replace é assumido.

    Para o serviço de não confirmação, o objetivo do usuário CMIS tentará simplesmente executar a operação do conjunto request e não reportará tampouco sucesso ou falha.

    Para o serviço de confirmação, a operação do serviço M-SET segue o mesmo exemplo do serviço M-GET. Como no serviço M-GET, múltiplas respostas para um M-SET.request podem ser geradas, e estas são retornadas numa série de primitivas M-SET.response usando o parâmetro linked-identifier.

    O parâmetro de erro é incluído numa notificação de falha. Os seguintes erros podem ser reportados:

  • Access denied
  • Class-instance conflict
  • Complexity limitation
  • Duplicate invocation
  • Invalid filter
  • Invalid scope
  • Mistyped argument
  • No such object class
  • No such object instance
  • processing failure
  • Resource limitation
  • Set-list error
  • Synchronization nor supported
  • Unrecognized operation
  • Alguns aspectos de semântica do serviço M-SET terminam com a ação da mesma maneira um caminho como para fazer isto uma operação complexa melhor, e também muito cuidado sendo feito no seu uso. Estes aspectos são:

  • Scoping e filtering: scoping e filtering podem ser usados para indicar que o conjunto de operações é pretendido para múltiplos objetos. Note que a coleção de objetos selecionados podem não ter o exato conjunto de atributos.
  • Synchronization: se a sincronização atomic é selecionada, então o conjunto de operações somente será executado se ele puder ser executado satisfatoriamente sobre todos os objetos selecionados.
  • Sucesso parcial dentro de um objeto: é possível que alguns valores de atributos não possam ser modificados, para uma das razões listadas no conjunto listado de parâmetros de erros:
  • Access denied: a operação requisitada não será executada por razões pertinentes à segurança do sistema aberto.
  • Invalid attribute value: o valor do atributo especificado estará fora do limite ou caso contrário será impróprio.
  • Invalid operator: a modificação do operador especificado não é reconhecida.
  • Invalid operation: a modificação do operador especificado pode não ser executada sobre o atributo especificado.
  • No such attribute: o identificador para o atributo especificado não será reconhecido.
  • Se alguns dos valores dos atributos não podem ser modificados, o outro valor do atributo especificado no conjunto de operações são modificados para este objeto.

    Para ver a interação entre estes três conceitos, deixe-nos assumir que um conjunto request é emitido especificando um número de diferentes atributos num número de objetos. As seguintes estratégias podem ser adotadas:

    Objetivo: executar o conjunto de operações sobre aqueles objetos para o qual é especificado o conjunto de operações pode ser executado satisfatoriamente.
    Estratégia: especificar a sincronização best-effort.
    Objetivo: executar o conjunto de operações somente sobre aqueles objetos que contém todos os atributos; não é necessário que a operação possa ser executada satisfatoriamente sobre todos os objetos.
    Estratégia: especificar a sincronização best-effort; usar um filtro que inclui a presente declaração para qualquer atributo listado.
    Objetivo: executar o conjunto de operações sobre todos os objetos somente se els puderem ser executados satisfatoriamente sobre todos os objetos; não é necessário que todos os objetos contenham todos os atributos.
    Estratégia: especificar a sincronização atomic
    Objetivo: executar o conjunto de operações somente sobre aqueles objetos que contém todos os atributos, mas somente se a operação puder ser executada satisfatoriamente sobre todos os objetos que contenham todos os atributos.
    Estratégia: especificar a sincronização atomic; usar um filtro que inclua a presente declaração para qualquer atributo listado.

    É instrutivo comparar o serviço M-SET com o conjunto de operações SNMP. Os dois não são exatamente comparáveis por causa de suas diferentes estruturas MIB, mas podemos fazer as seguintes observações.

    O conjunto de operação SNMP é atomic: é somente executado se ele pode ser executado sobre todos os objetos especificados no conjunto request. Entretanto, o conjunto SNMP parece comparável ao M-SET com sincronização atomic. Contudo, lembrar que um objeto no SNMP é mais comparável a um atributo no sistema de gerenciamento OSI que para um objeto no sistema de gerenciamento OSI.

    A operação M-SET aplicada para um objeto simples não é atomic: o usuário CMIS que estiver respondendo modificará esses atributos dentro do objeto que lhe é permitido e possivel modificar, igualmente se alguns atributos não podem ser modificados. Por outro lado, a operação M-SET aplicada a múltiplos objetos não é atomic dentro de cada objeto selecionado mas pode ser ambos também objetos atomic ou não atomic cruzados, dependendo sobre qual alternativa de sincronização é selecionada.

    Além disso, dentro do CMIS, está o conceito de scoping e filtering, o qual habilita objetos a serem incluídos ou excluídos de um conjunto de operações sobre a base de declarações no parâmetro filtering. Se um objeto é selecionado por um parâmetro de escopo mas filtrado pelo parâmetro de filtering, que objeto não faz contagem como insatisfatorio no caso da sincronização atomic. A operação M-SET é consideravelmente mais flexível e poderosa que o conjunto de operações SNMP.