elisa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

elisa [2014/08/21 17:31]
endler [Architecture]
elisa [2017/07/21 03:08]
Line 1: Line 1:
-{{template>:doctable 
-    | name=ELISA 
-    | version=0.1 
-    | accountable=Fulano 
-    | depdency=  [[ClientLib]] 
-}} 
- 
-====== ELISA ====== 
-A Energy-aware LIbrary of Services for Andrioid (ELISA) é uma biblioteca multi-thread para aplicações Android, que consiste de um par de serviços Android, o LocationService e o ConnectivityService e um conjunto de Broadcast Receivers (Android) que conjuntamente registram a posição geográfica do nó (p.ex. usando GPS), e realizam o envio de mensagens da aplicação carregando a posição corrente do nó,. ELISA verifica o nível da bateria do dispositivo a cada T minutos (usando o Android AlarmManager) e de acordo com a classsificacão em um de três níveis de energia - alta, média e baixa - define as frequências da leitura de posição e do envio dos dados, de modo a minimizar o consumo de energia do dispositivo. O ConnectivityService utiliza a ClientLib para bufferizacão, envio e recebimento das mensagens para o SDDL Core. 
- 
-===== Usage  ===== 
-Explicar aqui como utilizar. Quais são as principais interfaces, elementos etc.  Dar um rápido exemplo de como utilizar. Se possível e aplicável fazer um breve "hello world". 
- 
-<file java Hello.java> 
-public class Hello { 
-   public static void main(String args[]) { 
-        // Teste 
-        double x = 2; 
-   } 
-} 
-</file> 
- 
-  * ''getService()'' Returns Service  
- 
-  * ''myMethod()'' Returns Service  
- 
-===== Architecture ===== 
-ELISA consiste de dois Android Services, que executam em treads independentes (vide Figura) 
- 
-O **LocationService** periodicamente verifica a posição do dispostivo (usando o Location Manager do Android), e caso esta tenha mudado, gera o broadcast NEW_LOCATION. Possui também um Broadcast Receiver, CHG_LOCATION_INTERVAL, que escuta por broadcasts do Battery Receiver e modifica o intervalo de polling da localização a depender do nível de bateria.  
- 
-O **Connection Service** gerencia uma lista de mensagens (MsgList), que acumula mensagens a serem enviadas para o Gateway através  da ClientLib. Possui um Broadcast Receiver que ouve pelos broadcasts:  NEW_LOCATION, NEW_MSG e CHG_SEND_MSG_INTERVAL. Para o primeiro tipo de broadcast, insere uma nova coordenada geografica na MsgList. Ao receber o broadcast NEW_MSG - de qualquer outra componente da app mobile -  adiciona a mensagem na MsgLIst para envio pela ClientLib. Quando recebe o terceiro tipo de broadcast, aumenta ou diminui o sendAllMsgInterval, a periodicidade de envio de todas as mensagens acumuladas em MsgList através da ClientLib. Ao ser notificado do recebimento de uma nova mensagem pela ClientLib, o callback onNewMsgReceived() gera um Broadcast NEW_MSG_RECVD, que deve ser captado e processado por alguma componente da mobile app. 
- 
-Além disso, ELISA usa o AlarmManager do Android para periodicamente gerar o Intent (CHECK_BATTERY_LEVEL) para verificar o nível de energia, e classifica-lo em "LOW", "MEDIUM" ou "HIGH") pelo Battery Receiver. Já o PowerReceiver verifica se o dispositivo está conectado a uma fonte de energia ou se está sendo alimentado pela bateria. 
- 
-{{:elisa-arch.png?750|}} 
- 
- 
-===== Implementation Details ===== 
-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. 
- 
-===== References ===== 
-Bibtex/PDF entry dos papers sobre esse componente. 
  
  • elisa.txt
  • Last modified: 2017/07/21 03:08
  • (external edit)