udi

This is an old revision of the document!


name=UDI | version=0.1 | accountable=Rafael Vasconcelos | depdency= DDS

UDI

A Universal DDS Interface (UDI) é uma API similar a do DDS, mas que abstrai os detalhes específicos de diferentes produtos DDS, e inclui wrappers de tópicos DDS para cada produto DDS. Permite também a definição de politicas e perfis de QoS que são mapeados para as primitivas específicas de cada produto DDS. O uso da UDI facilita muito a troca entre produtos DDS. Atualmente, a UDI está disponível para os produtos: RTI Connext, DDS Open Splice Community Edition, e CoreDX DDS

O UDI implementa os mesmos elementos básicos usados no DDS: Domain Participants, Publishers, Subscribers, Tópicos, DataReaders e DataWriters. O exemplo abaixo mostra como se faz isso para um tópico.Message.

  this.dds = UniversalDDSLayerFactory.getInstance();
  this.dds.createParticipant(UniversalDDSLayerFactory.CNET_DOMAIN);
  this.dds.createPublisher();
  this.dds.createSubscriber();
 
  GroupDefinerListener groupDefinerDDSListener = new GroupDefinerListener(this);
 
  Object messageTopic = this.dds.createTopic(Message.class, Message.class.getSimpleName());
 
  this.dds.createDataReader(groupDefinerDDSListener, messageTopic);

E o listener do exemplo acima recebe objetos do tipo Message e precisa implementar o callback onNewData, como segue:

public class GroupDefinerListener implements UDIDataReaderListener<ApplicationObject> {
    /** 
   * {@inheritDoc}
   */
  @Override
  public void onNewData(ApplicationObject nodeMessage) {
    //do something…
  }
}

Mais detalhes podem ser obtidos do UDI Developer Guide (udi_developer_guide.pdf)

Descrever a arquitetura do componente. As principais classes e relações que sustentam o componente.

Detalhes de implementação, por exemplo, descrevendo as principais rotinas e os seus fluxos de execução, por onde o desenvolvedor deveria olhar para modificar esse componente.

Rafael Vasconcelos, UDI Developer Guide (release 0.2), October 2013. (udi_developer_guide.pdf)

  • udi.1410300349.txt.gz
  • Last modified: 2017/07/21 02:54
  • (external edit)