Monitor/CE: um componente para a coleta de informacões de contexto e localização para Palmtops.

Tamanho: px
Começar a partir da página:

Download "Monitor/CE: um componente para a coleta de informacões de contexto e localização para Palmtops."

Transcrição

1 Gustavo Luiz Bastos Baptista Matricula: Monitor/CE: um componente para a coleta de informacões de contexto e localização para Palmtops. Projeto Final de Graduação Orientador: Prof. Markus Endler Rio de Janeiro, junho de 2006

2 Sumário 1 Introdução Domínio da Aplicação - Mobile Colaboration Architecture (MoCA) Motivações Portabilidade da MoCA para Palmtops Novos Requisitos para o Serviço de Localização Usuários-alvo Ambiente Computacional Estado da arte Descrição e avaliação de tecnologias e aplicações existentes Objetivos do Projeto Projeto e especificação da aplicação Modelo de dados Diagrama de classes Dicionário de dados Casos de uso Interfaces Gráficas Considerações finais Referências bibliográficas Gustavo Luiz Bastos Baptista 2

3 1 Introdução A crescente disponibilidade e capacidade dos dispositivos móveis vêm assumindo um papel cada vez mais significativo no dia a dia das pessoas. É cada vez mais comum encontrarmos dispositivos, de celulares a computadores de bolso, com maior poder de processamento e armazenamento, além disso, geralmente equipados com interfaces para conectividade via Bluetooth, Wi-Fi, Infravermelho e GPS. Podemos facilmente acreditar que em um futuro bem próximo uma convergência da computação tradicional para a computação móvel ocorrerá de forma significativa. Juntamente com esta evolução e a diminuição nos custos dos dispositivos, pode-se notar um aumento na demanda por serviços e aplicações especializadas, entre elas aplicações e serviços sensíveis a contexto e localização, como por exemplo, aplicações de navegação pessoal com mapas, guias virtuais e etc. À medida que os computadores se tornam mais portáveis, as pessoas desejam acessar as informações a qualquer momento e em qualquer lugar. Entretanto, os sistemas distribuídos tradicionais que assumem um ambiente de execução estacionário não são em sua totalidade apropriados para tais cenários móveis. Em face dessa realidade, muitos pesquisadores na área de computação móvel têm proposto soluções (e.g., Sistema CODA, Wirelless CORBA, IP Móvel) para tornar as questões relacionadas à mobilidade (desconexão e conexão com uma nova rede) transparentes para os usuários finais. Entretanto, ao invés de prover transparência total de mobilidade para as aplicações, os sistemas de gerenciamento de mobilidade deveriam permitir também que as aplicações pudessem estar cientes da mobilidade para que elas pudessem se adaptar apropriadamente as eventuais perdas de dados na desconexão e estabelecimento de conexão em uma nova rede. De fato, tais aplicações, cientes da mobilidade do usuário, proverão serviços mais efetivos e úteis se elas puderem tirar proveito das características do ambiente dinâmico, tais como localização do usuário, proximidade entre pessoas, hora do dia, nível de ruído, intensidade da luz, estado do sistema e do hardware e etc. Além das características primárias que fazem parte da lógica de negócio, essas aplicações levam em conta o contexto corrente do usuário (e.g., localização), dispositivo ou ambiente computacional (e.g., rede, sistemas operacionais, etc) para adaptarem-se a Gustavo Luiz Bastos Baptista 3

4 esse contexto, e, por conseguinte proverem serviços mais adequados ao usuário final. Por exemplo, uma aplicação sensível ao contexto poderia usar a informação de localização para enviar uma oferta de um produto de uma loja co-localizada com o usuário, ou, poderia usar as informações de conectividade da rede sem fio para adaptar o seu comportamento de acordo com a comunicação intermitente desse tipo de rede. De fato, são muitas as suas aplicabilidades. Percepção de contexto (Context awareness) tem sido apontada como um dos principais paradigmas de programação de aplicações distribuídas para redes móveis. Existem várias definições na literatura sobre contexto e percepção de contexto. Por exemplo, Dey define que: Contexto é qualquer informação que possa ser utilizada para caracterizar uma situação de uma entidade considerado relevante para a interação entre um usuário e uma aplicação, incluindo o usuário e a própria aplicação. Schilit, um dos precursores da pesquisa da computação sensível ao contexto, divide o contexto em três categorias gerais: Contexto computacional: rede, conectividade, custo da comunicação, banda passante, recursos e etc; Contexto do usuário: perfil do usuário, posição, velocidade, pessoas próximas, situação social, estado de espírito, etc; Contexto físico: luminosidade, nível de ruído, temperatura, humidade e etc. Além disso, outros pesquisadores também incluíram nessa relação o contexto temporal caracterizado pela hora do dia, informações de calendário, semana, estação do ano, dentre outros. Dentre os diversos tipos de contexto existentes, localização é um dos que mais tem atraído a atenção de diversos grupos de pesquisa. Considerando que a localização do usuário muda sempre que ele se move, um sistema de rastreamento confiável é necessário, e é o ponto crítico a ser tratado no desenvolvimento das aplicações LBS (Location Based Services). A seguir, são discutidas algumas abordagens relacionadas ao desenvolvimento de sistemas de rastreamento de localização em ambientes abertos (Outdoors) e em ambientes fechados (indoors). O sistema de inferência de localização outdoor mais comumente utilizado é o Global Positioning System (GPS). A partir desse é possível inferir as coordenadas Gustavo Luiz Bastos Baptista 4

5 geográficas (Altura em relação ao nível do mar, latitude e longitude) que representam a localização do dispositivo (que está utilizando um receptor de sinal GPS) com uma precisão aproximada de 3 metros. Alem do GPS, podem ser utilizadas outras abordagens tais como triangulação dos pontos de acesso em redes GSM ou Entretanto, devido às possibilidades de interferência e variação de sinal nessas redes, a inferência não é precisa e confiável como nos sistemas GPS. A inferência da localização baseada no GPS não funciona apropriadamente para ambientes indoors, pois a força/intensidade do sinal emitida pelos satélites não é o suficiente para penetrar na maioria dos prédios. Existem várias tecnologias para inferência de localização indoor. A maioria dos projetos de pesquisa relacionados desenvolveu seus próprios sistemas de rastreamento/localização. O sistema Olivetti Active Badge, Xerox ParcTab, e o projeto Cyberguide construíram sistemas de rastreamento baseado em sensores de Infravermelho (IR). A inferência é realizada a partir da localização dos sensores que estão emitindo sinais IR. Esses foram colocados estrategicamente em determinadas localidades. Nesses projetos, ao invés do sistema inferir a localização do usuário, o próprio dispositivo determina sua localização a partir da identificação e da localização do sensor no mapa de regiões. Outros projetos, tais como MoCA, MiddleWhere, Ekahau, Place Lab, Radar inferem a localização corrente do dispositivo a partir de técnicas de triangulação dos sinais dos pontos de acesso no raio de cobertura do dispositivo móvel em redes Não existe uma maneira uniforme de rastrear localização dos dispositivos com granularidade fina que funcione em ambos tipos de ambiente indoors e outdoors. Na prática, um sistema pode consultar diferentes serviços de localização para localizar diferentes tipos de objetos, enquanto um sistema pode localizar um objeto através de diferentes técnicas. Por exemplo, usar GPS em redes outdoors, usar redes , câmeras de reconhecimento facial, cartão de identificação pessoal, dentre outros em redes indoors. Entretanto, em todos os sistemas existe uma margem de erro com relação a confiabilidade da inferência devido ao ruído presente no sinal, erros dos sensores, alta taxa de mobilidade dos usuários, etc. Gustavo Luiz Bastos Baptista 5

6 Para desenvolver aplicações sensíveis ao contexto, faz-se necessário um mecanismo para capturar o contexto corrente e repassá-lo para a aplicação. Desenvolver aplicações sensíveis ao contexto, entretanto, não é uma tarefa trivial considerando que tal controle estaria misturado com a lógica da aplicação. Tal dificuldade nos permite concluir que este processamento deve ser realizado transparentemente à aplicação dentro de uma camada de middleware que forneça os meios necessários para a obtenção de informações de contexto e localização de forma transparente, permitindo que diversas aplicações sejam desenvolvidas sem que detalhes da implementação destes tenham que ser considerados. Alguns grupos de pesquisa tem proposto infra-estruturas de middleware (e.g., Context Toolkit, Context Fabric - Confab, Mobile Collaboration Architecture - MoCA, Context Broker Architecture - CoBrA, etc) que implementam a coleta e difusão das informações de contexto. O middleware MoCA, apresentado na seção 1.1, foi desenvolvido para oferecer tal transparência. Este trabalho apresenta o desenvolvimento de um componente de software, para o middleware MoCA, que coleta informações de contexto de Palmtops, incluindo suas coordenadas geográficas obtidas do GPS, e as envia para um Servidor de Informações de Contexto que disponibilizará tais dados para aplicações ou outros serviços (tais como serviços de localização) interessados. Gustavo Luiz Bastos Baptista 6

7 1.1 Domínio da Aplicação - Mobile Colaboration Architecture (MoCA) A Mobile Collaboration Architecture (MoCA) é um middleware para provisão de informações de contexto que auxilia o desenvolvimento de serviços e aplicações colaborativas com percepção de contexto para usuários móveis. O projeto dessa arquitetura focou na simplicidade, extensibilidade, escalabilidade, heterogeneidade de protocolos e na capacidade de customização das aplicações. A MoCA foi projetada para redes sem fio infra-estruturadas e sua atual implementação funciona com redes IEEE baseadas nas camadas do protocolo IP, entretanto a arquitetura pode também ser implementada para funcionar em redes celulares de dados tais como o GPRS. A arquitetura, é formada por APIs cliente e servidor, um conjunto de serviços para registrar aplicações, monitorar e inferir o contexto de execução dos dispositivos móveis. A MoCA facilita o desenvolvimento de programas distribuídos que requerem acessar o contexto de um grupo ou de um indivíduo específico para adaptar seu comportamento. Na sua forma mais geral, uma aplicação desenvolvida com base na MoCA é composta por um servidor da aplicação, normalmente executado na rede fixa, e os clientes da aplicação, que são executados em dispositivos móveis. A arquitetura oferece os seguintes serviços que suportam o desenvolvimento de aplicações sensíveis ao contexto colaborativas: Monitor: É um daemon executando em cada dispositivo móvel que é encarregado de coletar dados relativos ao estado do dispositivo, de execução, conectividade ou ambiente, e enviar tais informações para o CIS (Context Information Service) executando em um (ou mais) nó(s) da rede cabeada. Os dados coletados incluem a qualidade da conexão sem fio, o nível de energia, a utilização de CPU, memória livre, Ponto de Acesso corrente e uma lista com todos os Pontos de Acesso no alcance do dispositivo, cada um com sua respectiva intensidade de sinal (RSSI Received Signal Stregth Indicator). Gustavo Luiz Bastos Baptista 7

8 Figura 1 - Arquitetura típica de uma aplicação cliente/servidor MoCA Context Information Service (CIS): é um serviço distribuído no qual cada servidor CIS recebe e processa dados brutos de contexto obtidos de um número qualquer de dispositivos móveis, enviados por seus respectivos Monitores. Cada servidor trata consultas diretas sobre o valor corrente de variáveis de contexto específicas de dispositivos. Além disso, servidores CIS utilizam a Event-Based Communication Interface (ECI) para aceitar subscrições de aplicações (ou outros serviços) com expressões de sintaxe semelhante a SQL sobre variáveis de contexto, para serem notificadas quando tais expressões de interesse forem satisfeitas. Um dos clientes deste serviço é o Location Inference Service, que consulta periodicamente os servidores CIS sobre os conjuntos de intensidade de sinal medidos em todos os dispositivos monitorados. Location Inference Service (LIS): É responsável por inferir e disponibilizar a localização simbólica de dispositivos móveis em áreas cobertas por Pontos de Acesso de redes IEEE Para isso, utiliza a intensidade de sinais coletados pelo CIS de todos os dispositivos móveis (i.e. seus monitores). Gustavo Luiz Bastos Baptista 8

9 Basicamente, a idéia é comparar um histograma contruído com o vetor corrente de RSSI (Received Signal Strength Indication) (onde cada elemento do vetor corresponde ao sinal de um AP no alcance de dispositivo) com os histogramas construídos com vetores medidos anteriormente em pontos pré-definidos em um prédio ou ambiente externo. Portanto, em uma primeira etapa (fase de calibração) amostras de vetores RSSI são coletadas em pontos de referência bem definidos na(s) área(s) de interesse, e armazenados em histogramas no banco de dados do LIS. Durante esta calibração, em cada ponto de referência, amostras de vetores RSSI são coletadas com o dispositivo voltado para várias direções. Considerando que sinais de rádio são suscetíveis à intensa variação e interferência, a precisão da inferência da localização depende fortemente do número de Pontos de Acesso, do número de pontos de referência escolhidos e do número de vetores RSSI coletados. Após a fase de calibração, o LIS é capaz de realizar a inferência da localização de um dispositivo. Isto é feito através da comparação (estimativa da distância entre) o vetor RSSI corrente do dispositivo e os vetores RSSI coletados nos pontos de referência na área de interesse. O LIS é direcionado a aplicações que necessitam conhecer a posição de um dispositivo em termos de regiões simbólicas (ao invés de coordenadas), onde tais regiões simbólicas são áreas geográficas não menores do que 1 a 4m quadrados, e.g. salas, partes de salas maiores, setores de uma rua, etc. Devido à flutuação intrínseca no sinal de rádio, a inferência da localização baseada em RSSI não é capaz de oferecer resultados com maior precisão. Entretanto, a precisão da localização obtida pelo LIS é suficiente para uma grande classe de aplicações sensíveis à localização. O serviço provê interfaces para modos de comunicação síncrono e assíncrono. No modo síncrono, os clientes podem realizar requisições através de um protocolo simples da forma request/reply. No modo assíncrono os clientes se subscrevem no LIS para receber eventos assíncronos relativos a mudanças na localização de dispositivos. O último modo foi implementado utilizando a Event-based Communication Interface (ECI). Nos dois modos de acesso, consultas (ou subscrições) podem se referir a um dispositivo (e.g. recuperar a localização do dispositivo) ou a uma região (e.g. recuperar a localização Gustavo Luiz Bastos Baptista 9

10 de um conjunto de dispositivos dentro de uma região). De fato, o acesso específico por regiões provou ser bastante útil para diversas aplicações sensíveis à localização. Symbolic Region Manager (SRM): Serviço que permite estabelecer uma relação entre as regiões atômicas definidas pelo (LIS), descrevendo uma hierarquia em que regiões podem estar subordinadas a outras, ou seja, contidas em outras regiões. Configuration Service (CS): serviço encarregado de guardar e manter informações de configurações de todos os dispositivos móveis. As informações de configuração são armazenadas em tabelas hash onde cada entrada na tabela (indexada pelo endereço MAC do dispositivo) guarda os endereços do servidor CIS e de um Discovery Service e a periodicidade com a qual o Monitor deverá enviar informações do dispositivo para o CIS. Discovery Service (DS): é encarregado de guardar informações como nome, propriedades, endereços, e etc, de qualquer aplicação ou serviço registrado no middleware MoCA, para que sejam descobertos por seus clientes automaticamente. Gustavo Luiz Bastos Baptista 10

11 1.2 Motivações Portabilidade da MoCA para Palmtops A MoCA foi desenvolvida utilizando a linguagem Java de programação em sua versão 1.4, para a qual, há até pouquíssimo tempo atrás, não existia uma máquina virtual destinada à dispositivos do tipo Palmtop que suportasse as classes contidas naquela versão. Utilizando Java 1.4, apenas poderiam ser utilizadas as tradicionais máquinas virtuais Java (Java Virtual Machines) destinadas aos principais sistemas operacionais, tais como Windows, Linux e Unix em Geral. Além disso, a atual implementação do Monitor foi desenvolvida para a plataforma Windows NT / XP. Portanto, a arquitetura só atendia aos computadores com capacidade de executar esse sistema operacional, tais como Desktops, Notebooks e Tablet-PCs. Para que a arquitetura efetivamente pudesse atender aos dispositivos portáteis de menor porte, novas versões das APIs (que executam no lado do cliente) e componentes existentes deveriam ser re-implementados para plataformas que executassem em uma variedade maior de dispositivos móveis. Tal implementação representaria na verdade um atraso, pois para que as APIs funcionassem nas JVMs (para dispositivos do tipo Palmtop) existentes, elas deveriam ser portadas para uma versão anterior da linguagem Java, e.g. Java 1.3, pois tais JVMs apresentavam só suportavam um sub-conjunto das classes dessa versão. No início do ano de 2006, antes que qualquer trabalho de re-implementação fosse realizado, foi lançada pela IBM uma nova versão da máquina virtual J9 destinada à dispositivos portáteis, que implementa a nova especificação da Sun Microsystems para o padrão CLDC 1.1, que suporta um subconjunto de classes da linguagem Java 1.4 permitindo portanto que algumas APIs da MoCA pudessem ser utilizadas em PDAs (Personal Data Assinstants) do tipo Pocket PCs. Entretanto, permanecia ainda necessária uma versão do Monitor que funcionasse para tais dispositivos até que a realização desse projeto fosse proposta. Gustavo Luiz Bastos Baptista 11

12 1.2.2 Novos Requisitos para o Serviço de Localização A Inferência do Serviço de Localização (LIS) da MoCA não possui precisão absoluta. Testes realizados mostraram um erro de no máximo 4 metros para 90% dos casos. Devido à interferência pela a qual redes de radio freqüência são suscetíveis, a confiabilidade da inferência não é garantida, ou seja, a informação correta da localização é afetada em uma porcentagem dos casos. A tecnologia de redes IEEE vem tornando-se cada vez mais difundida e utilizada no dia a dia das pessoas e já é presente em um grande número de ambientes internos. Entretanto, para diversas aplicações seria interessante um serviço de localização capaz de funcionar em ambientes internos e externos, e em uma maior escala. A tecnologia GPS é bastante disseminada e uma integração do LIS com este sistema pode ser considerada como um passo natural na evolução do serviço. O projeto do LIS foi realizado de forma a tornar possível a inclusão de novos requisitos e adição de novos componentes, logo a inclusão desta nova funcionalidade não afetaria as características básicas da arquitetura. Naturalmente, os dispositivos móveis utilizados deverão estar equipados com um receptor GPS além da interface de rede IEEE , sendo este um requisito que já pode ser considerado viável considerando que é cada vez mais comum encontrar este tipo de hardware em dispositivos móveis. Para permitir a integração da tecnologia GPS ao middleware MoCA de uma forma que a infra-estrutura existente seja aproveitada e que não ocorram mudanças significativas na arquitetura, a coleta dos dados de GPS do dispositivo deverá ser realizada também pelo Monitor, o qual enviará esta informação tal como todas as outras informações de contexto para o CIS. Gustavo Luiz Bastos Baptista 12

13 1.3 Usuários-alvo Os usuários que utilizarão a aplicação deverão ser na maioria das vezes desenvolvedores de aplicações sensíveis a contexto ou localização e que utilizem o middleware MoCA interagindo diretamente com o Monitor para testar suas aplicações. Será possível também o uso pelos usuários finais de aplicações que não saibam que estão utilizando o Monitor, já que este poderá estar sendo executado em segundo plano e que a aplicação que estiver interagindo com o middleware não deixe explícita esta utilização. Aplicações executando no mesmo dispositivo que o Monitor poderão também realizar consultas diretamente para obter informações de contexto do dispositivo ou para saber quais informações estão sendo enviadas para os servidores de contexto. Em geral, o Monitor poderá ser utilizado por qualquer usuário/aplicação/serviço que queira obter informações de contexto sobre o dispositivo, a rede sem fio ou GPS. Uma outra utilidade para o Monitor é descobrir a existência de Pontos de Acesso na proximidade do dispositivo. O provável cenário de utilização é no ambiente universitário com estudantes que desejam realizar experimentos com aplicações sensíveis a contexto e/ou com dispositivos móveis em lugares abertos ou dentro de edifícios. Gustavo Luiz Bastos Baptista 13

14 1.4 Ambiente Computacional A aplicação foi desenvolvida para ser executada no sistema operacional Microsoft Windows CE, incluído dentro da plataforma Microsoft Windows Mobile, um conjunto de utilitários, aplicações e sistema operacional que é disponibilizado para dispositivos móveis que possuem poder de processamento, capacidade gráfica e de armazenamento medianas, tais como PDAs (Personal Data Assistants) do tipo Pocket PC ou Smartphone. A Figura 1 mostra um exemplo de PDA do tipo Pocket PC que utiliza a plataforma Windows Mobile 5.0. Esse dispositivo possui um processador de 416MHz, 64MB de memória RAM e 128MB de memória ROM, Wi-fi, Bluetooth, GPS e Infravermelho integrados e uma tela TFT de 3.5, além da possibilidade da utilização de cartões de memória SD (que possuem grande capacidade de armazenamento, e.g. 1GB). Figura 2 Exemplo de Pocket PC com Windows Mobile 5.0 O ambiente para o desenvolvimento da aplicação foi o Microsoft Visual Studio.NET 2005, utilizado no sistema operacional Microsoft Windows XP Professional. O Visual Studio 2005 contém funcionalidades específicas para o desenvolvimento de aplicações destinadas à dispositivos móveis e possui uma total integração com todas as APIs dos sistemas operacionais deste tipo de dispositivo. Além disso, este Ambiente de Desenvolvimento Integrado contém emuladores que reproduzem com fidelidade alguns dos principais dispositivos, permitindo que aplicações desenvolvidas para eles sejam Gustavo Luiz Bastos Baptista 14

15 testadas mesmo que tais dispositivos não estejam disponíveis. A ferramenta permite também que a aplicação seja compilada e depurada diretamente dentro do dispositivo real, possibilitando uma depuração completa do código executando realmente dentro do dispositivo em questão, através da integração do Visual Studio com a ferramenta de sincronização com dispositivos móveis Microsoft Active Sync. Tal funcionalidade é de extrema importância para o processo de desenvolvimento, pois comportamentos da aplicação relacionados a dados específicos de hardware, conectividade e etc, seriam difíceis de reproduzir utilizando apenas um emulador de dispositivo. Foram utilizadas duas linguagens de programação para o desenvolvimento do Monitor CE e a aplicação foi projetada com as seguintes partes: MoCAMonitorInterfaceCE (C#.NET CF) MoCAMonitor (C#.NET CF) MoCAMonitorDllCE (C) MoCAMonitorGPSDllCE (C) Windows CE API NDIS GPSID MoCAMonitorDllCE: Para a realização da coleta de dados do dispositivo, tais como utilização de CPU, memória livre, nível de energia, informações de conectividade (endereço IP, endereço MAC e etc), e informações da rede sem fio (Pontos de Acesso e etc) foi necessária a utilização da linguagem C, que é a linguagem nativa do sistema operacional Windows CE e que permite a utilização de APIs que contêm chamadas diretas ao sistema e a chamadas que consultam os drivers de dispositivos para a obtenção de informações específicas dos mesmos. Foi então criada uma biblioteca dinâmica (Dll) em C contendo os métodos que realizam a obtenção dos dados mencionados acima do Gustavo Luiz Bastos Baptista 15

16 dispositivo móvel. A Figura 2 mostra a MoCAMonitorDllCE, a dll que possui os métodos que realizam a consulta às informações do dispositivo. Para a obtenção de dados do dispositivo de rede, os métodos responsáveis por esta tarefa consultam a interface NDIS da Microsoft que será explicada a seguir. NDIS: O Monitor coleta informações de conectividade do dispositivo de rede, tais como endereço IP, máscara da rede e endereço MAC. Coleta também informações da rede sem fio, tais como endereço MAC do Ponto de Acesso corrente (informação conhecida como BSSID - Basic Service Set IDentifier) e realiza também uma operação chamada scan, uma consulta que retorna todos os Pontos de Acesso no alcance do dispositivo com suas respectivas intensidades de sinal em decibéis (informação utilizada pelo serviço de localização (LIS) da MoCA). Para obter as informações de conectividade e da rede sem fio, é utilizada a arquitetura de rede da microsoft, conhecida por Network Driver Interface Specification (NDIS). O NDIS define uma API padrão para diversas interfaces de rede (NIC s Network Interface Cards) oferecendo uma biblioteca de funções (conhecida também como wrapper ) que pode ser utilizada por drivers MAC assim como por protocolos de mais alto nível (tais como o TCP/IP). As funções do wrapper facilitam o desenvolvimento de drivers de MAC e de protocolos escondendo dependências de plataformas específicas. Além disso, aplicações podem realizar consultas aos drivers de dispositivos de forma genérica. Os detalhes de implementação do hardware de uma interface de rede são organizados pelos drivers de controle de acesso ao meio (MAC Media Access Controller) de uma forma que todos os NIC s destinados a um mesmo tipo de meio (e.g Ethernet) podem ser acessados utilizando uma interface comum de programação. Como ilustrado na figura abaixo, a comunicação entre a aplicação e o driver da placa de rede sem fio não é direta. Dessa forma, a implementação do monitor torna-se independente do fabricante da placa de rede sem fio, pois toda a comunicação entre o monitor e o driver da placa de rede ocorre via a NDIS Wrapper. As consultas realizadas ao NDIS no código da MoCAMonitorDllCE estão documentadas no próprio código fonte da Dll e podem ser encontradas no CD que acompanha este projeto. Gustavo Luiz Bastos Baptista 16

17 NDIS Protocol Driver: - driver de protocolo da NDIS que interage com a NDIS Wrapper para enviar e receber pacotes através do driver da placa de rede sem fio (NDIS Miniport Driver). Esse driver é específico para cada sistema operacional (oferecido pelo Windows CE); NDIS Wrapper: - driver no modo kernel que exporta um conjunto de interfaces de software definidas pela NDIS para interagir com o driver da placa de rede. A NDIS Wrapper isola o driver da placa de rede sem fio das aplicações. Desta forma, é possível acessar o driver de placas de diferentes fabricantes através do mesmo conjunto de interfaces. Windows CE API: As informações do dispositivo, utilização de CPU, memória livre do sistema e nível de energia, são obtidas utilizando APIs específicas do Microsoft Windows CE. Os métodos que realizam a chamada a esta API estão na Dll MoCAMonitorDllCE. Gustavo Luiz Bastos Baptista 17

18 MoCAMonitorGPSDllCE: Para o acesso às informações de GPS, tais como latitude, longitude e altitude, foi utilizada a linguagem de programação C e foi criada uma biblioteca dinâmica (dll) que contém métodos que realizam chamadas nativas à API GPSID oferecida pelo sistema operacional Windows CE 5.0 e é explicada a seguir. GPSID(GPS Intermediate Driver): O Windows Mobile 5.0 é a mais nova versão da plataforma que contém o Windows CE 5.0 e foi lançado no início do ano de Ele foi desenvolvido com o objetivo de prover acesso as mais novas características dos dispositivos móveis mais modernos, que contém melhor suporte à multimídia, displays melhores com capacidades 2D e 3D, integração com câmeras, assim como integração com o GPS. Cada vez mais dispositivos aparecem no mercado equipados com um receptor de GPS, embutido ou como assessório adicional. Diversos aspectos envolvem o acesso às capacidades do GPS e os desenvolvedores geralmente têm que resolver problemas complexos tais como se comunicar com portas seriais, executar diversas threads e realizar o parsing de seqüências NMEA ( especificação da National Marine Electronics Association para comunicação de dispositivos eletrônicos, no caso o GPS). Para resolver estas dificuldades e para padronizar o acesso de aplicações aos dispositivos GPS em geral, o novo Windows Mobile 5.0 oferece uma nova API chamada GPS Intermediate Driver (GPSID). O GPSID é como uma camada intermediária entre o hardware GPS e aplicações cliente que acessam GPS. Essa API padroniza o acesso das aplicações a qualquer dispositivo GPS de qualquer fabricante, permite que diversas aplicações executando no mesmo dispositivo possam acessar o hardware GPS ao mesmo tempo e realiza o parsing das seqüências NMEA transparentemente para a aplicação, oferecendo estruturas de dados prontas para a realização de consultas aos dados que interessam. O acesso a esta API está documentado no próprio código fonte da aplicação Monitor CE. Os métodos que realizam a chamada a esta API estão na Dll MoCAMonitorDllCE. MoCAMonitor e MocaMonitorInterfaceCE: Toda a lógica da aplicação e a interface gráfica foram implementadas na linguagem C# da plataforma.net de programação utilizando o Microsoft.NET Compact Framework 2.0. O Microsoft.NET Compact Framework é um subconjunto da Microsoft.NET Framework, criado para Gustavo Luiz Bastos Baptista 18

19 possibilitar o desenvolvimento de aplicações para dispositivos móveis da mesma forma com que aplicativos para Windows. A.NET Compact Framework, por ser um subconjunto da.net Framework, herdou muitas de suas características e formas de execução. Todos os códigos desenvolvidos para serem executados sob a.net CF são executados por um compilador de alta performance, denominado Compilador JIT (Just In Time Compiler). Este compilador é responsável por otimizar o código para o dispositivo onde o software será executado. Ou seja, o mesmo software é otimizado para ser executado em dispositivos que possuem recursos de hardware ou software diferentes. Por baixo do Compilador JIT, a CLR (Common Language Runtime) juntamente com uma coleção de classes (Class Library) permite uma gerência de processos otimizada para ser executada em equipamentos com recursos limitados. Pensando nesses dispositivos, a CLR foi otimizada para que permitisse que tudo o que era possível ser feito com a.net Framework, também fosse possível de ser feito com a.net CF, sendo executada nos mais diversos e diferentes equipamentos. Além das vantagens apresentadas acima, algumas outras vantagens motivaram o desenvolvimento dessa parte da aplicação Monitor CE utilizando a linguagem C# com a plataforma.net CF. Primeiramente, a ferramenta para a construção de interfaces gráficas com o usuário oferecidas pelo Visual Studio para esta linguagem é extremamente superior a aquela destinada à linguagem C/C++ de programação. Utilizando essa ferramenta, a interface pode ser implementada de forma mais rica e detalhada, bem como com um esforço de programação muito menor para sua construção. O código se mostrou bem melhor organizado e fácil de ser mantido do que a versão que existia em C++ Win32 na versão do Monitor XP e poderá inclusive ser utilizado no Windows XP tendo que ser mudada apenas a Dll que realiza as consultas ao dispositivo. Gustavo Luiz Bastos Baptista 19

20 2 Estado da arte 2.1 Descrição e avaliação de tecnologias e aplicações existentes A aplicação Monitor XP é uma implementação da ferramenta proposta, para o sistema operacional Microsoft Windows XP que realiza com sucesso o envio de informações de contexto para o CIS (menos informações de GPS). Porém, como foi mencionado anteriormente, tal ferramenta só pode ser utilizada em dispositivos que utilizem tal sistema operacional e esses dispositivos são em geral Laptops ou Tablet PCs que, apesar de serem móveis, não oferecem mobilidade tal como a dos dispositivos portáteis do tipo PDA (ou Palmtops). O código da aplicação existente em C++ não pode ser utilizado no sistema operacional Windows CE, pois as APIs do sistema operacional e a forma de interação com os drivers de dispositivos não são as mesmas. A interface gráfica oferecida para dispositivos móveis é diferente, pois é destinada a dispositivos com capacidade gráfica reduzida e um espaço de tela muito menor e a aplicação existente não separa a implementação de sua interface gráfica, implementada utilizando a API gráfica do Windows Win32 de uma forma que a lógica da aplicação possa ser utilizada no Windows CE. O projeto do Monitor CE foi realizado de forma a promover o reaproveitamento de código tanto para a versão CE como para a versão XP. Toda a lógica principal da aplicação foi programada com a linguagem C# utilizando a Microsoft.NET Compact Framework 2.0 que é um subconjunto da Microsoft.NET Framework 2.0 sendo o código desenvolvido para a primeira, apto a ser utilizado pela segunda, ou seja, um código C#.NET desenvolvido para dispositivos móveis com Windows CE poderá ser utilizado no Windows XP. Além disso, o código C# é muito melhor organizado, fácil de entender, programar e manter do que o código C++, uma característica importante para motivar os alunos do ambiente universitário a contribuírem mais rapidamente com o projeto. O código da dll que contém as chamadas específicas ao sistema operacional, para obter dados de contexto do dispositivo, pode ser trocada de acordo com a versão do Gustavo Luiz Bastos Baptista 20

MoCA: Uma Arquitetura para o Desenvolvimento de Aplicações Sensíveis ao Contexto para Dispositivos Móveis. Vagner Sacramento vagner@lac.inf.puc-rio.

MoCA: Uma Arquitetura para o Desenvolvimento de Aplicações Sensíveis ao Contexto para Dispositivos Móveis. Vagner Sacramento vagner@lac.inf.puc-rio. MoCA: Uma Arquitetura para o Desenvolvimento de Aplicações Sensíveis ao Contexto para Dispositivos Móveis Vagner Sacramento vagner@lac.inf.puc-rio.br Desenvolvida no: Laboratory for Advanced Collaboration

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS

MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS Aluna: Eleonora Cominato Weiner Orientador: Markus Endler Introdução A palavra mobilidade ganha mais importância a cada instante,

Leia mais

Introdução à Informática. Aula 04. Sistemas Operacionais Aplicativos e Utilitários Transmissão e meios de transmissão de dados. Prof.

Introdução à Informática. Aula 04. Sistemas Operacionais Aplicativos e Utilitários Transmissão e meios de transmissão de dados. Prof. Aula 04 Sistemas Operacionais Aplicativos e Utilitários Transmissão e meios de transmissão de dados Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware:

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Oportunidades e Desafios da Computação Móvel no Cotexto Empresarial Aspectos de Software e Middleware

Oportunidades e Desafios da Computação Móvel no Cotexto Empresarial Aspectos de Software e Middleware Oportunidades e Desafios da Computação Móvel no Cotexto Empresarial Aspectos de Software e Middleware para Computação Móvel Francisco José da Silva e Silva Rafael Fernandes Lopes Universidade Federal do

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso Universidade Federal de Santa Catarina Departamento de Informática e Estatística Curso de Bacharelado em Ciências da Computação Marcus Vinicius Cruz Xavier Rascunho do trabalho de conclusão de curso Título

Leia mais

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 17/09/2010. Carlos Eugênio Torres Engenheiro de Informática http://cetorres.

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 17/09/2010. Carlos Eugênio Torres Engenheiro de Informática http://cetorres. Módulo I - Introdução Aula 2 Carlos Eugênio Torres Engenheiro de Informática http://cetorres.com Faculdade Christus Sistemas de Informação 17/09/2010 Graduado em Ciência da Computação pela UFC, Brasil

Leia mais

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br 2007. Roteiro. Componentes do Sistema Sistemas Operacionais I Parte III Estrutura dos SOs Prof. Gregorio Perez gregorio@uninove.br 2007 Roteiro Serviços Estrutura dos Sistemas Operacionais Funções do Sistema Operacional Chamadas do Sistema

Leia mais

Thin Clients : aumentando o potencial dos sistemas SCADA

Thin Clients : aumentando o potencial dos sistemas SCADA Artigos Técnicos Thin Clients : aumentando o potencial dos sistemas SCADA Tarcísio Romero de Oliveira, Engenheiro de Vendas e Aplicações da Intellution/Aquarius Automação Industrial Ltda. Um diagnóstico

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO Fred Paulino Ferreira, Leonardo Couto, Renato Maia, Luiz G. Montanha Departamento

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo Programação para Dispositivos Móveis Prof. Wallace Borges Cristo Acesso a informação Notícias, Ringtones, Vídeos Messenger/Chat Jogos Acesso a instituições financeiras M-commerce (Mobile Commerce) Aplicações

Leia mais

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Uma Introdução ao J2ME Computação Móvel (MAC5743/MAC330) DCC-IME-USP Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Visão Geral do Java 2 (1) A plataforma Java 2 engloba três elementos:

Leia mais

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Fundament n os s da platafo f rm r a. NE N T André Menegassi Fundamentos da plataforma.net André Menegassi O que é o.net Framework?.NET é uma plataforma de software para desenvolvimento de aplicações que conecta informações, sistemas, pessoas e dispositivos através

Leia mais

UM FRAMEWORK PARA DESENVOLVIMENTO DE

UM FRAMEWORK PARA DESENVOLVIMENTO DE UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UM FRAMEWORK PARA DESENVOLVIMENTO DE APLICATIVOS EM WINDOWS MOBILE. PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno:

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

19/05/2009. Módulo 1

19/05/2009. Módulo 1 ASP.NET Módulo 1 Objetivo Mostrar os conceitos fundamentais da plataforma Microsoft.Net e suas ferramentas; Apresentar os conceitos fundamentais de aplicações web e seus elementos; Demonstrar de forma

Leia mais

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android COMPUTAÇÃO MÓVEL Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/android O que é computação Móvel Acesso à informação a qualquer lugar, a qualquer momento. O que é computação Móvel Tecnicamente: Processamento

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Introdução Um Modelo Arquiteturial dene o modo no qual os componentes de sistemas interagem e o modo no qual eles são mapeados

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32

Leia mais

Principais características

Principais características .Net Framework O que é.net? Proprietário da Microsoft Versão simplificada para Linux Versão compacta para dispositivos móveis Plataforma de desenvolvimento e execução Interface com usuário, conectividade

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Trabalhos Relacionados 79

Trabalhos Relacionados 79 Trabalhos Relacionados 79 6 Avaliação e Testes Neste capítulo são apresentados alguns testes que foram realizados com o a solução de Gerenciamento de Mobilidade (API SIP User Agent) e com o sistema publish/subscribe

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Aplicações e Serviços Baseados em Localização

Aplicações e Serviços Baseados em Localização Aplicações e Serviços Baseados em Localização Introdução à Computação Móvel Adolfo Correia Sumário Introdução Taxonomia de Aplicações Arquitetura Técnicas de Localização Conclusão Introdução Integram a

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

FERRAMENTAS PARA DESENVOLVIMENTO EM C#

FERRAMENTAS PARA DESENVOLVIMENTO EM C# FERRAMENTAS PARA DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Wyllian Fressatti 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

Programando em C# Orientado a Objetos. By: Maromo

Programando em C# Orientado a Objetos. By: Maromo Programando em C# Orientado a Objetos By: Maromo Agenda Módulo 1 Plataforma.Net. Linguagem de Programação C#. Tipos primitivos, comandos de controle. Exercícios de Fixação. Introdução O modelo de programação

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Desenvolvimento de Aplicação Windows Mobile Acessando um WebService

Desenvolvimento de Aplicação Windows Mobile Acessando um WebService Faculdade de Negócios e Administração de Sergipe Disciplina: Integração Web Banco de Dados Professor: Fábio Coriolano Desenvolvimento de Aplicação Windows Mobile Acessando um WebService Professor: Fabio

Leia mais

Localização Geográfica no Google Maps com o Auxílio de Redes Wireless

Localização Geográfica no Google Maps com o Auxílio de Redes Wireless Localização Geográfica no Google Maps com o Auxílio de Redes Wireless Henrique G. G. Pereira 1, Marcos L. Cassal 1, Guilherme Dhein 1, Tarcízio R. Pinto 1 1 Centro Universitário Franciscano (UNIFRA) Rua

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Depurando aplicações Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender dicas e técnicas para encontrar erros em aplicações Android. Conhecer os recursos que auxiliam

Leia mais

SO Sistemas Operacionais

SO Sistemas Operacionais GOVERNO DO ESTADO DO RIO DE JANEIRO FUNDAÇÃO DE APOIO A ESCOLA TÉCNICA ESCOLA TÉCNICA ESTADUAL REPÚBLICA SO Sistemas Operacionais Curso de Informática ETE REPÚBLICA - Rua Clarimundo de Melo, 847, Quintino

Leia mais

DHCP. Definindo DHCP: Fundamentação teórica do DHCP. Esquema visual

DHCP. Definindo DHCP: Fundamentação teórica do DHCP. Esquema visual Definindo DHCP: DHCP O DHCP é a abreviatura de Dynamic Host Configuration Protocol é um serviço utilizado para automatizar as configurações do protocolo TCP/IP nos dispositivos de rede (computadores, impressoras,

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Infra estrutura da Tecnologia da Informação

Infra estrutura da Tecnologia da Informação Infra estrutura da Tecnologia da Informação Capítulo 3 Adaptado do material de apoio ao Livro Sistemas de Informação Gerenciais, 7ª ed., de K. Laudon e J. Laudon, Prentice Hall, 2005 CEA460 Gestão da Informação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Aula 4 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Migração de Código Em

Leia mais

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO UM PADRÃO ABERTO DE SOFTWARE PARA COMPUTAÇÃO MÓVEL: UM ESTUDO SOBRE GOOGLE ANDROID 1. INTRODUÇÃO O aumento do número usuários de dispositivos móveis atrai cada vez os desenvolvedores a produzir aplicações

Leia mais

NOVAS TECNOLOGIAS DE INFORMAÇÃO

NOVAS TECNOLOGIAS DE INFORMAÇÃO NOVAS TECNOLOGIAS DE INFORMAÇÃO Profª. Kelly Hannel Novas tecnologias de informação 2 HDTV WiMAX Wi-Fi GPS 3G VoIP Bluetooth 1 HDTV 3 High-definition television (também conhecido por sua abreviação HDTV):

Leia mais

A mobilidade da HP em suas mãos

A mobilidade da HP em suas mãos Pocket PCs HP ipaq e Smartphones A mobilidade da HP em suas mãos A mobilidade em suas mãos Hoje em dia, os negócios exigem que você fique o tempo todo conectado. Mas não basta ficar conectado, é preciso

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm.

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm. Autor José Jesse Gonçalves Graduado em Licenciatura em Matemática pela Universidade Estadual de São Paulo - UNESP, de Presidente Prudente (1995), com especialização em Análise de Sistemas (1999) e mestrado

Leia mais

Introdução ao C# . Visão geral do.net Framework

Introdução ao C# . Visão geral do.net Framework Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas

Leia mais

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega Android Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega Universidade Federal de Santa Catarina November 18, 2008 Agenda 1 Introdução 2 Dalvik 3 Linux 2.6 Introdução

Leia mais

Universidade de Brasília

Universidade de Brasília Universidade de Brasília Introdução a Microinformática Turma H Redes e Internet Giordane Lima Porque ligar computadores em Rede? Compartilhamento de arquivos; Compartilhamento de periféricos; Mensagens

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Introdução a Computação Móvel

Introdução a Computação Móvel Introdução a Computação Móvel Computação Móvel Prof. Me. Adauto Mendes adauto.inatel@gmail.com Histórico Em 1947 alguns engenheiros resolveram mudar o rumo da história da telefonia. Pensando em uma maneira

Leia mais

7 Utilização do Mobile Social Gateway

7 Utilização do Mobile Social Gateway 7 Utilização do Mobile Social Gateway Existem três atores envolvidos na arquitetura do Mobile Social Gateway: desenvolvedor do framework MoSoGw: é o responsável pelo desenvolvimento de novas features,

Leia mais

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Sistemas Operacionais (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Classificações 3. CPU 4. Memória 5. Utilitários O que se

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Exemplos de SD Quais podem ser? Ex. de SD: Internet Internet é um conjunto de redes de computadores, de muitos tipos diferentes,

Leia mais

Arquiteturas para implantação de aplicações móveis wireless

Arquiteturas para implantação de aplicações móveis wireless Arquiteturas para implantação de aplicações móveis wireless Este tutorial apresenta uma visão geral da arquitetura para implantação de aplicações móveis wireless. Eduardo Tude Engenheiro de Teleco (IME

Leia mais

Informática. Jamille Silva Madureira

Informática. Jamille Silva Madureira Informática Jamille Silva Madureira Conceitos de sistemas operacionais Sistemas Operacionais Atuais Desktop: Windows 7 e 8; Linux; Mac OS. Dispositivos Móveis: Windows Mobile; Android; iphone OS. Desktop

Leia mais

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL Francisco Tiago Avelar, Vitor Conrado F. Gomes, Cesar Tadeu Pozzer Universidade Federal de Santa Maria UFSM Curso de Ciência da Computação

Leia mais

Positivo Network Manager 4

Positivo Network Manager 4 Positivo Network Manager 4 O gerenciamento eficiente de informações e de tecnologia da informação (TI) é um fator reconhecidamente crítico na maioria das organizações. As informações e as tecnologias que

Leia mais

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1 Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Symantec Discovery. Controle seu software e hardware e monitore a conformidade com as licenças em toda a infra-estrutura de TI de várias plataformas

Symantec Discovery. Controle seu software e hardware e monitore a conformidade com as licenças em toda a infra-estrutura de TI de várias plataformas Symantec Discovery Controle seu software e hardware e monitore a conformidade com as licenças em toda a infra-estrutura de TI de várias plataformas VISÃO GERAL O Symantec Discovery ajuda a garantir a resiliência

Leia mais

Introdução. Sistemas Operacionais

Introdução. Sistemas Operacionais FATEC SENAC Introdução à Sistemas Operacionais Rodrigo W. Fonseca Sumário Definição de um S.O. Características de um S.O. História (evolução dos S.O.s) Estruturas de S.O.s Tipos de Sistemas Operacionais

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE V: Telecomunicações, Internet e Tecnologia Sem Fio. Tendências em Redes e Comunicações No passado, haviam dois tipos de redes: telefônicas e redes

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores Máquinas Virtuais e Emuladores Marcos Aurelio Pchek Laureano Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware sistema operacional aplicações Sistemas

Leia mais

FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C#

FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C# FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Willian Magalhães 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wmagalhaes@unipar.br

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

GT PERSONAL GPS RASTREAMENTO PESSOAL

GT PERSONAL GPS RASTREAMENTO PESSOAL GT PERSONAL GPS RASTREAMENTO PESSOAL Baseados em nossa experiência em aplicações de GPS e Telemetria, e devido às pequenas dimensões (70x40x20 mm) do GT PERSONAL GPS este dispositivo portátil executa o

Leia mais

Instalar o MarkVision

Instalar o MarkVision Instalando o 1 contas O apresenta diversos componentes instaláveis: Aplicativo - Instala o Utilitário Printer Management. Este aplicativo requer que o Servidor do esteja disponível na rede. Servidor do

Leia mais

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID Alessandro Teixeira de Andrade¹; Geazy Menezes² UFGD/FACET Caixa Postal 533,

Leia mais

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Princípios de sistemas operativos. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Princípios de sistemas operativos Rui Maranhão (rma@fe.up.pt) Agenda objectivos de um computador objectivos de um sistema operativo evolução dos sistemas operativos tipos de sistemas

Leia mais

Estrutura de S.O. Roteiro. BC1518 - Sistemas Operacionais. Prof. Marcelo Z. do Nascimento. Aula 02 2 Quadrimestre. de 2010

Estrutura de S.O. Roteiro. BC1518 - Sistemas Operacionais. Prof. Marcelo Z. do Nascimento. Aula 02 2 Quadrimestre. de 2010 BC1518 - Sistemas Operacionais Estrutura de S.O. Aula 02 2 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: marcelo.nascimento@ufabc.edu.br Roteiro Serviço do sistema operacional Interface Chamadas

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Professora: Sheila Cáceres Computador Dispositivo eletrônico usado para processar guardar e tornar acessível informação. Tópicos de Ambiente

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Infraestrutura móvel Características dos dispositivos móveis Desenvolvendo aplicações

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

DESENVOLVIMENTO DE SOFTWARE AULA 1

DESENVOLVIMENTO DE SOFTWARE AULA 1 DESENVOLVIMENTO DE SOFTWARE AULA 1 CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014 1 Características da Plataforma.NET A plataforma.net Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece

Leia mais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Caracterização de Sistemas Distribuídos Coulouris, Dollimore and Kindberg. Distributed Systems: Concepts and

Leia mais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais Vicente Amorim vicente.amorim.ufop@gmail.com Sumário

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Redes Sem Fio e Móveis

Redes Sem Fio e Móveis Telecomunicação Redes Sem Fio e Móveis Geraldo Robson. Mateus Departamento de Ciência da Computação Universidade Federal de Minas Gerais Belo Horizonte - MG Tecnologia de comunicação à distância que possibilita

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais