gateway

name=Gateway | version=1.0 | accountable=Rafael Vasconcelos | depdency= [[UDI]], [[ClientLib]]

Gateway

O Gateway (GW) é um serviço do SDDL Core Network (executa em um nó do cluster/nuvem) que é responsável por gerenciar conexões MR-UDP com vários nós móveis. Suas tarefas incluem a notificação de conexões e desconexões de nós móveis, e a transcodificação de mensagens de aplicação difundidas no domínio DDS (SDDL Core) para o MR-UDP e o encaminhamento para o nó móvel correspondente, bem como a transcodificação inversa, do MR-UDP para o tópico DDS de aplicação. Além disso, o Gateway mantém os mapeamentos de nós para grupos, a fim de encaminhar mensagens groupcast para os nós membros do grupo. Devido às propriedades Peer-to-Peer e do desempenho escalável da comunicação no DDS, pode-se usar vários Gateways em paralelo, cada um atendendo a um sub-conjunto dos nós móveis, conferindo assim, escalabilidade na comunicação de/para nós móveis.

O Gateway é um serviço de rede e por este motivo não apresenta uma interface rica para o desenvolvedor. O Gateway uma vez instanciado, não precisa mais ter uma interação direta com o programador via API Java. A partir deste momento, toda a interação é feita com o Gateway via mensagens escritas no domínio DDS (SDDL Core).

Abaixo é mostrado um exemplo de como subir um Gateway. É preciso informar o IP público, porta e o produto DDS - ou DDS Vendor - utilizado {OpenSplice, CoreDX, RTI}.

Hello.java
public class Hello {
   public static void main(String args[]) {
     //Call syntax: $GatewayTest <gateway-public-ip> <gateway-RUDP-port> <dds-vendor>
    UUID id = UUID.randomUUID();
 
    String strDDSVendor = args[2];
    SupportedDDSVendors ddsVendor = UniversalDDSLayerFactory.convertStrToSupportedDDSVendor(strDDSVendor);
 
    new Gateway(Integer.parseInt(args[1]), args[0], id, false, ddsVendor);
 
    System.out.println("Gateway started...");
    System.out.println("Gateway MR-UDP IP: " + args[0] + ":" + args[1]);
   }
}

Há ainda outras opções para instanciar o Gateway informando se ele precisa usar Ordenação Total no Groupcast e se será utilizado algum Plugin. O Plugin é uma classe que implementa a interface Plugin. Um plugin permite ao desenvolvedor alterar o objeto enviado pelo Mobile Node que é encaminhado pelo Gateway. Esta é uma funcionalidade não é utilizada pela maioria dos desenvolvedores.

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

  • getService() Returns Service
  • myMethod() Returns Service

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.

Bibtex/PDF entry dos papers sobre esse componente.

  • gateway.txt
  • Last modified: 2017/07/21 03:08
  • (external edit)