Skip to content

Latest commit

 

History

History
173 lines (110 loc) · 8.38 KB

README.md

File metadata and controls

173 lines (110 loc) · 8.38 KB

soft-iot-dlt-architecture

1 - Pré-requisitos

  • Java Developer Kit (JDK) 1.8
  • Maven 3.0.4 ou superior
  • ServiceMix

2 - Instalação do ServiceMix

3 - Configurações iniciais

Com o servicemix instalado podemos inicar as configurações básicas necessárias para acompanhar os passos de instalação de cada bundle da arquitetura soft-iot-dlt.

3.1 - Adicionar ServiceMix como variável de ambiente

Após baixar e descompactar o Apache ServiceMix é recomendado que ele seja configurado como variável de ambiente. Afim de facilitar o acesso do mesmo em qualquer diretório através do comando servicemix.

3.1.1 - Linux

Para fazer isso linux será necessário executar o seguinte comando.

echo "export PATH=$PATH:SERVICEMIX_HOME/bin" >> ~/.bashrc

Atenção: SERVICEMIX_HOME deve ser substituido pelo caminho do diretório onde você descompatou o Apache ServiceMix.

Exemplo:

Caso tenha descompactado o servicemix na pasta /opt/servicemix então o comando comando ficará:

echo "export PATH=$PATH:/opt/servicemix/bin" >> ~/.bashrc

Reinicie terminal e em seguida execute o comando servicemix para executar o terminal do servicemix.

3.1.2 - Windows

...

3.2 - Repositório fonte

Esse passo é importante pois é graças a ele que será possivel utilizar os comandos de instalação dos bundles pertencentes a arquitetura soft-iot-dlt.

config:edit org.ops4j.pax.url.mvn
config:property-append org.ops4j.pax.url.mvn.repositories ", https://jitpack.io@jitpack.io"
config:update

3.3 - Gerencia de bundles OSGI

Tutorial de como fazer um bundle OSGI com o framework blueprint.

3.3.1 - Terminal

É possível gerenciar os bundles OSGI utilizando o terminal para fazer isso utilize os comandos com préfixo bundle, caso tenha dúvidas utilize o comando bundle --help para visualizar a lista de comandos disponíveis. Segue abaixo uma tabela com os comandos mais utilizados.

Comando Ação Exemplo
bundle:list Lista todos os bundles instalados. bundle:list
bundle:install Instala um novo bundle. bundle:install mvn:group-id/artifact-id/version
bundle:unistall Desistala um bundle. bundle:unistall <ID>
bundle:start Inicia a execução de um bundle. bundle:start <ID>
bundle:stop Para a execução de um bundle. bundle:stop <ID>
bundle:restart Reinicia um bundle. bundle:restart <ID>
bundle:diag Exibe informações que justificam o por que o bundle não está inicalizando bundle:diag

Dica: Utilize o webconsole para instalar ou atualizar um bundle recém construido.

3.3.2 - WebConsole

O webconsole é uma interface gráfica web que permite gerenciar os bundles de forma simples. Com ele é possível instalar, remover, iniciar, parar e atualizar bundles.

O processo de instalação do webconsole é simples, bastando apenas Executar o comando abaixo no terminal do ServiceMix.

feature:install webconsole

Para visualizar o webconsole do karaf é necessário acessar a URL abaixo.

http://localhost:8181/system/console/bundles

⚠️ O usuário e senha é "karaf" ⚠️

4 - Visão geral

A soft-iot-dlt é uma arquitetura inspirada e totalmente compatível com a soft-iot (código fonte). Ela surge a partir da ideia de balancear a carga dos gateways utilizando um algoritimo de balanceamendo distribuido e seguro.

A soft-iot-dlt é composta por 5 bundles especificos da arquitetura e uma implementação baseada no soft-iot-mapping-devices utilizado na plataforma soft-iot como demonstrada na imagem abaixo.

Fluxo dos dados na arquitetura soft-iot-dlt

Imagem 1 - Fluxo dos dados na arquitetura soft-iot-dlt.

5 - Instalação da soft-iot-dlt

Após ter executado o passo 3.2 será possível utilizar o comando abaixo para instalar qualquer bundle da arquitetura.

bundle:install mvn:com.github.larsid/<NOME_BUNDLE>/<VERSION>

Exemplo:

Caso queira instalar a versão master do soft-iot-dlt-client-tangle então o comando a ser executado deverá ser:

bundle:intall mvn:com.github.larsid/soft-iot-dlt-client-tangle/master

⚠️ Caso tente instalar apartir de um group-id, arctifact-id e/ou versão que não existe o erro abaixo será exibido. ⚠️

Print do erro gerado ao inserir um group-id, arctifact-id ou branch inexistente no comando de instalação de bundle.

Alguns bundles possuem dependências de serviços e isso significa que o bundle não será inicializado o serviço que ele precisa não estiver disponivel. Por esse motivo é recomendado os que instale os bundles da soft-iot-dlt na ordem demonstrada pelo ID da tabela de dependências abaixo.

ID Bundle Dependência ID
0 soft-iot-mapping-devices -
1 soft-iot-dlt-id-manager -
2 soft-iot-dlt-client-tangle -
3 soft-iot-dlt-auth 0
4 soft-iot-dlt-load-balancer 0, 1, e 2
5 soft-iot-dlt-load-monitor 0, 1, e 2

Tabela de dependências entre bundles

5.1 - Docker

As imagens Docker estão disponibilizadas no Docker Hub, clique em um dos links abaixo para acessá-las.

Imagem com os bundles básicos, utilize o seguinte comando para executá-la:

docker run -i -t -p 1883:1883 -p 8181:8181 -p 1099:1099 -p 8101:8101 -p 61616:61616 -p 44444:44444 larsid/soft-iot-base:<tagname>

Clique aqui para obter mais informações sobre a imagem.

Imagem com os bundles necessários para executar o balancemento de carga. Utilize o seguinte comando para executá-la:

docker run -i -t -p 1883:1883 -p 8181:8181 -p 1099:1099 -p 8101:8101 -p 61616:61616 -p 44444:44444  larsid/load-balancer:<tagname>

Clique aqui para obter mais informações sobre a imagem.

6 - Próximo passo

Caso tenha se interessado pela arquitetura soft-iot-dlt e queria saber mais detalhes sobre a implementação clique aqui e conheça o soft-iot-dlt-auth ponto de entrada de toda à arquitetura.