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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

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

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

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

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

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

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

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

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

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

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

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

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

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

V O C Ê N O C O N T R O L E.

V O C Ê N O C O N T R O L E. VOCÊ NO CONTROLE. VOCÊ NO CONTROLE. O que é o Frota Fácil? A Iveco sempre coloca o desejo de seus clientes à frente quando oferece ao mercado novas soluções em transportes. Pensando nisso, foi desenvolvido

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

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

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Rede é um conjunto de módulos processadores capazes de trocar informações e compartilhar recursos. O tipo de rede é definido pela sua área de abrangência, podemos classificar as redes

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

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

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

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

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF. ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I Máquina Virtual Instalação de S.O. em dual boot 1º Semestre 2010 PROF. AMARAL Na ciência da computação, máquina virtual é o nome dado a uma máquina,

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 Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

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

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

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

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 DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

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

Cap. 1 Introdução. Redes sem Fio e Sistemas Móveis de Computação. Prof. Eduardo Barrére. Material Base: Marcelo Moreno. eduardo.barrere@ice.ufjf.

Cap. 1 Introdução. Redes sem Fio e Sistemas Móveis de Computação. Prof. Eduardo Barrére. Material Base: Marcelo Moreno. eduardo.barrere@ice.ufjf. Redes sem Fio e Sistemas Móveis de Computação Cap. 1 Introdução Prof. Eduardo Barrére eduardo.barrere@ice.ufjf.br Material Base: Marcelo Moreno Dep. Ciência da Computação 1 Computação Móvel Computação

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

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

Automação de Locais Distantes

Automação de Locais Distantes Automação de Locais Distantes Adaptação do texto Improving Automation at Remote Sites da GE Fanuc/ Water por Peter Sowmy e Márcia Campos, Gerentes de Contas da. Nova tecnologia reduz custos no tratamento

Leia mais

MSc Eliton Smith elitonsmith@gmail.com. Gerenciamento e Administração de Redes

MSc Eliton Smith elitonsmith@gmail.com. Gerenciamento e Administração de Redes MSc Eliton Smith elitonsmith@gmail.com Gerenciamento e Administração de Redes 2 Gerência de Redes ou Gerenciamento de Redes É o controle de qualquer objeto passível de ser monitorado numa estrutura de

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

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

Soluções de Gerenciamento de Clientes e de Impressão Universal

Soluções de Gerenciamento de Clientes e de Impressão Universal Soluções de Gerenciamento de Clientes e de Impressão Universal Guia do Usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Windows é uma marca registrada nos Estados Unidos da Microsoft Corporation.

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

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

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

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

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais. Conceitos de um Sistema Operacional Sistemas Operacionais Conceitos de um Sistema Operacional Modo usuário e Modo Kernel Como já vimos são ambientes de execução diferentes no processador Há um conjunto de funções privilegiadas acessadas

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Collaboration Map Collaboration Map. Figura 6.1: Arquitetura da aplicação

Collaboration Map Collaboration Map. Figura 6.1: Arquitetura da aplicação 6 Estudo de caso A utilização de um modelo de componentes orientado a serviços possibilita a construção de aplicações por meio da conexão entre componentes em tempo de execução. O middleware Kaluana utiliza-se

Leia mais

Relatorio do trabalho pratico 2

Relatorio do trabalho pratico 2 UNIVERSIDADE FEDERAL DE SANTA CATARINA INE5414 REDES I Aluno: Ramon Dutra Miranda Matricula: 07232120 Relatorio do trabalho pratico 2 O protocolo SNMP (do inglês Simple Network Management Protocol - Protocolo

Leia mais

OptiView. Total integração Total controle Total Network SuperVision. Solução de Análise de Rede. Ninguém melhor que os. Engenheiros de Rede e a Fluke

OptiView. Total integração Total controle Total Network SuperVision. Solução de Análise de Rede. Ninguém melhor que os. Engenheiros de Rede e a Fluke Ninguém melhor que os OptiView Solução de Análise de Rede Total integração Total controle Total Network SuperVision Engenheiros de Rede e a Fluke Networks para saber o valor de uma solução integrada. Nossa

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - MODELO DE REFERÊNCIA TCP (RM TCP) 1. INTRODUÇÃO O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande

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

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

O TRAFip é uma poderosa ferramenta de coleta e caracterização de tráfego de rede IP, que vem resolver esse problema de forma definitiva.

O TRAFip é uma poderosa ferramenta de coleta e caracterização de tráfego de rede IP, que vem resolver esse problema de forma definitiva. Não há dúvida de que o ambiente de rede está cada vez mais complexo e que sua gestão é um grande desafio. Nesse cenário, saber o que está passando por essa importante infraestrutura é um ponto crítico

Leia mais

DISPOSITIVOS DE REDES SEM FIO

DISPOSITIVOS DE REDES SEM FIO AULA PRÁTICA DISPOSITIVOS DE REDES SEM FIO Objetivo: Apresentar o modo de operação Ad Hoc de uma rede padrão IEEE 802.11g/b e implementá-la em laboratório. Verificar os fundamentos de associação/registro

Leia mais

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE. Guia PDA e SmartPhones Windows Mobile, Pocket PC e CE. Referência completa para o integrador do sistema Module. Aborda os recursos necessários para a itulização, instalação do software e importação das

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

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

Guia do usuário do PrintMe Mobile 3.0

Guia do usuário do PrintMe Mobile 3.0 Guia do usuário do PrintMe Mobile 3.0 Visão geral do conteúdo Sobre o PrintMe Mobile Requisitos do sistema Impressão Solução de problemas Sobre o PrintMe Mobile O PrintMe Mobile é uma solução empresarial

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

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

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

Redes de Computadores. Prof. Késsia Marchi

Redes de Computadores. Prof. Késsia Marchi Redes de Computadores Prof. Késsia Marchi Redes de Computadores Redes de Computadores Possibilita a conexão entre vários computadores Troca de informação Acesso de múltiplos usuários Comunicação de dados

Leia mais

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta 1 Mono e multiprogramação Introdução Classificação (Aula 2) Recap Sistemas Máquina Profa. Patrícia Gerenciador D. CostaLPRM/DI/UFES Provê Fornece Compartilhamento programador máquina justa recursos Operacionais

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

Introdução à Computação Móvel. Carlos Maurício Seródio Figueiredo

Introdução à Computação Móvel. Carlos Maurício Seródio Figueiredo Introdução à Computação Móvel Carlos Maurício Seródio Figueiredo Sumário Visão da Computação Móvel Oportunidades de Pesquisa Alguns Interesses de Pesquisas Futuras Visão da Computação Móvel O que é Computação

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 03: Estruturas dos SOs Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com OBJETIVOS Descrever os serviços que um sistema operacional oferece aos usuários e outros sistemas

Leia mais

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado 5 Avaliação Decidimos avaliar a arquitetura de componentes para o OiL proposta neste trabalho em duas dimensões diferentes. Na primeira, demonstramos a capacidade de configuração do middleware com alguns

Leia mais

Fundamentos de Banco de Dados

Fundamentos de Banco de Dados Fundamentos de Banco de Dados SISTEMAS BASEADOS NO PROCESSAMENTO DE ARQUIVOS Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Sistema

Leia mais

Comparando Java e C#

Comparando Java e C# Por: Lincon Alexandre Marques Jonathan T. Dos Santos Ricardo Fumio Tanimoto Abril, 2009 Comparando Java e C# Introdução Escolhemos como tema deste artigo um comparativo entre as linguagens Java e C#, duas

Leia mais