Protocolo metaobjeto: Por que é conhecido como um conceito importante

5

O protocolo metaobject é o protocolo para metaobjetos em linguagens de programação. Embora eu entenda isso em termos simples, eu quero saber o motivo e um resumo dos padrões de uso do mundo real deste protocolo. Então, por que exatamente o metaobjeto e, mais importante, o protocolo metaobjeto é uma boa ideia. Eu quero saber o problema que levou à sua evolução e também seu alto uso de energia. Opiniões, bem como visão geral / descrição / explicações alternativas também são bem vindas.

    
por sushant 25.04.2011 / 19:28
fonte

3 respostas

2

Os protocolos de meta-objeto são muito bons para dissociar os clientes dos servidores.

  • Os serviços da Web usam o WSDL
  • OSGI faz um pouco disso (mas o AFAIK não possui muitas ferramentas de introspecção)
  • JINI (baseado em Java) em redes regulares (bastante popular no espaço de defesa)

Alguns sistemas de controle em que trabalhei adicionei protocolos meta-objeto e funcionou muito bem. A troca de mensagens se parece com isso ...

  • Caro servidor, o que você faz?
  • Prezado cliente, tenho os seguintes comandos .....
  • Caro servidor, que dados você publica?
  • Prezado cliente, tenho as seguintes notificações inscritas ...
  • Caro servidor, por favor, me diga mais sobre "Paint fence"
  • Caro cliente, o Paint fence aceita um número inteiro de robôs para usar.
  • Caro servidor, por favor, me dê um arquivo de ajuda no comando "paint fence
  • Prezado cliente, aqui está um arquivo de ajuda
  • Caro servidor, inscreva-se em "coordenadas do robô # 1"
  • Caro servidor, inscreva-se em "coordenadas do robô"
  • Caro servidor, me inscreva em "coordenadas do robô # 42"

  • Prezado servidor, execute cerca de tinta, 42

  • Prezado cliente, seu ID de conclusão de comando é 11.
  • Prezado Cliente, o robô nº 1 coordena o novo valor 123.3434,34.232312,55.222312

Assim, a sobrecarga de mensagens que você usa para tarefas reais é baixa, porque elas podem até ser um binário compacto, e o servidor é auto-documentado para integradores.

Permite a integração com facilidade.

Também permite estender o servidor com muita facilidade SE você puder adicionar coisas ao servidor usando o meta-protocolo. Começa a parecer com AOP

  • Caro servidor, adicione o comando delegado FOO (sem argumentos, "faz foo")
  • Caro cliente, você é o delegado do FOO.

  • Caro servidor, substitua o valor da temperatura externa, novo valor 3.5 Então agora todos os consumidores recebem o valor fornecido externamente. Funciona melhor se você puder fazer perguntas como esta.

  • Caro servidor, obtenha o valor de controle para a temperatura externa

  • Prezado cliente, temperatura externa definida como fonte externa, hostname SMART_TEMP_SENSOR
por 29.06.2011 / 04:12
fonte
1

A biblioteca Perl Moose está usando o MOP para permitir um grande ecossistema de extensões para trabalhar em conjunto. Ele também permite introspecção e reflexão, por exemplo, a geração de um formulário da web, fornecendo um objeto. O reflector olharia para a classe, pegaria (por exemplo) seus atributos ou atributos que implementam um comportamento específico e geraria campos de formulário dependendo dos atributos e seus tipos.

Existem, é claro, muitas outras implementações e casos de uso para o MOP, o Moose é apenas o que eu uso com mais frequência.

    
por 25.04.2011 / 19:59
fonte
1

Uma maneira de pensar sobre um protocolo de meta-objeto é que é como uma programação orientada a aspectos. AOP realmente saiu do MOP, mas estendeu-o com cortes de pontos (e provavelmente outras coisas).

Então, as coisas para as quais o AOP é bom eu esperaria que o MOP fosse bom. O exemplo clássico é, claro, o perfil. Você quer pegar um programa existente e modificá-lo para, por exemplo, registre cada método invocado. Com o MOP você poderia fazer com isso algum tipo de objeto proxy que intercepta mensagens, registra os dados do perfil e então passa o controle para o manipulador de mensagens original.

    
por 28.06.2011 / 22:57
fonte