Melanie Filgueiras Leão Diogo Corrêa Oliveira

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

Download "Melanie Filgueiras Leão Diogo Corrêa Oliveira"

Transcrição

1 Universidade Federal Fluminense Escola de Engenharia Curso de Graduação em Engenharia de Telecomunicações Melanie Filgueiras Leão Diogo Corrêa Oliveira Painel de automação e módulo de comutação de áudio para o centro holográfico aplicado ao projeto Telessaúde Niterói RJ 2017

2 1 Melanie Filgueiras Leão Diogo Corrêa Oliveira Painel de automação e módulo de comutação de áudio para o centro holográfico aplicado ao projeto Telessaúde Trabalho de Conclusão de Curso apresentado ao Curso de Graduação em Engenharia de Telecomunicações da Universidade Federal Fluminense, como requisito parcial para obtenção do Grau de Engenheiro de Telecomunicações. Orientador: Prof. Dr. Ricardo Campanha Carrano Niterói RJ 2017

3 . ii

4 iii Melanie Filgueiras Leão Diogo Corrêa Oliveira Painel de automação e módulo de comutação de áudio para o centro holográfico aplicado ao projeto Telessaúde Trabalho de Conclusão de Curso apresentado ao Curso de Graduação em Engenharia de Telecomunicações da Universidade Federal Fluminense, como requisito parcial para obtenção do Grau de Engenheiro de Telecomunicações. Aprovada em 15 de Dezembro de BANCA EXAMINADORA Prof. Dr. Ricardo Campanha Carrano - Orientador Universidade Federal Fluminese - UFF Prof. René Pestre Filho Universidade Federal Fluminese - UFF Prof a. Dr a. Natalia Castro Fernandes Universidade Federal Fluminese - UFF Niterói RJ 2017

5 iv Resumo Este trabalho de conclusão de curso consiste no desenvolvimento de um Painel de Automação com um módulo de comutacão de áudio integrado para o centro holográfico do projeto Telessaúde. O Projeto Telessaúde trata da implantação e execução de Sistema Holográfico em Centro de Saúde, vinculado a ações de saúde com a Marinha do Brasil, Exército brasileiro e a UFF. Sua principal característica é a inovação decorrente da possibilidade de realização de consultas de saúde mediante o emprego de Telepresença em tempo real, por meio da tecnologia da holografia. Essa tecnologia foi empregada em laboratório por profissionais de saúde do Hospital Universitário Antônio Pedro (HUAP) e por engenheiros de telecomunicações da Escola de Engenharia da UFF, para atendimento, diagnóstico, supervisão de pacientes e capacitação de profissionais à distância. Com objetivo de simplificar, reunir informações do projeto e concentrar o manuseio dessa tecnologia empregada no projeto em um só lugar, foi desenvolvido um Painel de Automação. Este, consiste em uma aplicação Web desenvolvida utilizando a linguagem Python e o Web framework Django para o desenvolvimento back-end e, HTML, JavaScript e CSS para o desenvolvimento front-end. Além do Painel de Automação, viu-se a necessidade de uma melhor distribuição de saídas de áudio para as consultas a distância. Nos momentos das consultas, os médicos presentes no Centro de Saúde Holográfico (CSH) acompanham o atendimento no Centro de Saúde Virtual (CSV), estando ambos médico e paciente do CSV conectados audivelmente com os médicos do CSH. Com objetivo de tornar a comunicação mais direcional, também foi desenvolvido dentro do Painel de Automação um módulo de áudio, onde o médico do CSH escolhe quando falar apenas com o médico do CSV, modo Privado, ou com ambos, modo Público. Para o módulo integrado de áudio, foi utilizada a linguagem Shell, uma vez que o sistema operacional predominantemente no projeto é o Gnu/Linux. Palavras-chave: Telessaúde, Painel de Automação, módulo de áudio.

6 v Abstract This course completion work consists of the development of an Automation Panel with an integrated commutation audio module for the holographic project center of the Telehealth project. The Telehealth Project deals with the implementation and execution of a Holographic System in Health Center, linked to health actions with the Brazilian Navy, the Brazilian Army and the Fluminense Federal University (UFF). Its main characteristic is the innovation resulting from the possibility of conducting health consultations through the use of telepresence in real time, through holography technology. This technology was used in the laboratory by health professionals from the Antônio Pedro University Hospital (HUAP) and by Telecommunications Engineers from UFF School of Engineering, for patient care, diagnosis, supervision and training of professionals at a distance. In order to simplify, gather information from the project and concentrate the handling of this technology used in the project in one place, an Automation Panel was developed. This Panel consists of a Web application developed using the Python language and the Django Web Framework for the Back-End development and HTML, JavaScript and CSS for the Front End development. In addition to the Automation Panel, there was a need for better distribution of audio outputs for remote doctor s appointments. At the time of the appointment, the physicians present at the Holographic Health Center (CSH) accompany the care at the Virtual Health Center (CSV), both doctor and patient of the CSV audibly connected with the doctors of the CSH. In order to make communication more directional, an audio module was also developed within the Automation Panel, where the CSH doctor chooses to only talks with the CSV doctor, Private mode, or both, Public mode. For the integrated audio module, the Shell language was used, since the operating system predominantly in the project is Gnu/Linux. Keywords: Telehealth, Automation Panel, audio module.

7 vi Agradecimentos Em primeiro lugar, agradeço a Deus por estar comigo em todos os momentos, me capacitando e me dando força, sem Ele essa conquista não seria possível. Ao meu Orientador Dr. Ricardo Campanha Carrano pela oportunidade oferecida de trabalhar nesse projeto. A minha dupla e amigo Diogo Corrêa Oliveira por ter sido um excelente companheiro e por toda dedicação para que juntos desenvolvêssemos este trabalho. Aos meus pais Maurício de Souza Leão e Marise Erbe F. de S. Leão, que são meus exemplos de vida e sempre me apoiaram e auxiliaram em todas as situações. A minha irmã e melhor amiga Maressa F. Leão por todo o carinho, amizade e apoio nessa jornada. Ao meu namorado Marlon M. Correia pela seu companheirismo, compreensão e seu apoio em todo o tempo. A minha avó Maria Laura Erbe F., que infelizmente não pôde presenciar este momento mas por ter sido minha base e minha companheira durante grande parte desta jornada. Ao meu chefe e amigo Upiratan Ferreira Junior pelas conversas e incentivos constantes, me ajudando a superar desafios e finalizar este trabalho. Aos meus colegas do projeto Telessaúde pelo auxílio para o desenvolvimento deste trabalho e pela oportunidade de participar dessa equipe de ouro. Agradeço também a todos os meus amigos de dentro e de fora da UFF que fizeram parte desta jornada.

8 vii Agradecimentos Gostaria de agradecer a todos os educadores que participaram de alguma forma em minha formação, não só no âmbito profissional, mas principalmente em minha formação humana como cidadão. Em especial, gostaria de agradecer meu orientador Ricardo Campanha Carrano pela oportunidade de trabalhar nesse projeto. A minha dupla e amiga, com quem tive o prazer de desenvolver este trabalho, Melanie Filgueiras Leão por toda parceria, organização e paciência durante o desenvolvimento deste trabalho. A toda equipe do projeto Telessaúde pelo empenho, dedicação e seriedade no desenvolvimento de um projeto com tamanho potencial para impacto social. A minha mãe Maria Luiza, ao meu pai Onildo Oliveira e ao meu irmão Luiz Felipe por todo suporte, incentivo e inspiração durante toda a minha formação. A todos os integrantes do grupo PET-Tele por todos os ensinamentos, trabalho em equipe e suporte ao longo dessa jornada na UFF. Em especial, ao tutor Alexandre Santos de la Vega por todo o empenho e parceria com o grupo, e a Paula Woyames pelas aulas de LaTex. Por fim, mas não menos importante, a todos os meu amigos que me apoiaram no dia-a-dia e fizeram dessa experiência na universidade ainda melhor e mais completa.

9 Lista de Figuras 3.1 Arquitetura MVT [28] Modelo estrutura simplificada Django Servidor web Django executando Menssagem de sucesso do servidor Modelo estrutura Django Load static Modo público vs Modo privado Ausência de Framework de áudio Arquitetura de áudio Linux Diagrama de funcionamento do algoritmo Arquitetura de execução remota Linkando os arquivos bootstrap.min.css e bootstrap.min.js no código HTML Referenciando a classe do Bootstrap Classes Botão e Alertas Animação das caixas de Alerta referenciando o animate.css On-off-switch Comunicação Front-End e Back-End Criação da VIEW no Django Mapeamento da URL que chama a VIEW no Django Função AJAX chamando a URL criada Interface Painel de Automação Ranking linguagens mais utilizadas [29] Visualização da interface: Desktop vs Tablet A.1 Versões do Python instaladas viii

10 ix A.2 Referência python A.3 Estrutura de diretórios para ambiente virtual A.4 Instalação virtualenv A.5 Organização dos diretórios ambiente virtual A.6 Ativação ambiente virtual A.7 Instalação Django

11 Sumário Resumo Abstract Agradecimentos Lista de Figuras iv v vi ix 1 Introdução Motivação Objetivos Roteiro dos próximos capítulos Revisão Bibliográfica Desenvolvimento Web Modelo cliente-servidor Font-end vs Back-end HTML CSS JavaScript Django Python aplicado a web Shell Script Protocolo SSH Autenticação por chave pública x

12 xi 3 Desenvolvimento Criação de um painel de automação Web Framework Django O módulo de comutação de áudio Aplicação do script em um servidor remoto Montando o HTML Montando o estilo da página com o CSS Integração Módulo-Painel: Escrevendo o código JavaScript Conclusão e Trabalhos Futuros Conclusão Sugestões para trabalhos futuros A Preparando o ambiente de desenvolvimento 38 B Código HTML 43 C Código CSS 47 D Código JavaScript 51 E Script Shell 55 E.1 Comutação de áudio - comutação audio.sh E.2 Modo Privado - inicio modo privado.sh F Autenticação por Chave Pública 60 Referências Bibliográficas 62

13 Capítulo 1 Introdução Com o avanço dos meios de comunicação, o contato entre o médico e o paciente, ou entre profissionais de saúde, se tornou mais simples e prático, permitindo que essa relação também fosse possível por meio do telefone fixo, dos celulares, dos tablets, da internet, dos computadores, das vídeos conferências e até de holografias [3]. Nesse cenário surge o conceito de telemedicina. A telemedicina é um processo avançado de análise de resultados de exames e diagnósticos. Esses exames e apoio ao diagnóstico são entregues de forma digital, dando apoio para a medicina tradicional [3]. Para isso, é necessário o uso de tecnologias de informação, agregando qualidade, conectividade e velocidade nas informações transmitidas. O Projeto Telessaúde utiliza de modernas tecnologias de geração, transmissão e recepção de imagens. Dentre elas, suportada por transmissões via satélite, a utilização da tecnologia de Holografia para atendimento de pacientes a distância em tempo real[1]. A holografia é o registro luminoso em três dimensões de algo que não está presente. Para além da fotografia, bidimensional por natureza, a holografia pretende a tridimensionalidade; pretende expor objetos não presentes de modo o mais próximo possível do real. Nesse sentido, o seu paradigma é a tridimensionalidade[1]. Na Universidade Federal Fluminense, a equipe do Projeto Telessaúde, apoiada pelas telecomunicações, estabelece contato entre pontos distantes para realizar, em tempo real, ações conjuntas de saúde sustentadas por tecnologia de holografia (realizada em nível macro, na dimensão da estatura do ser humano) de modo a possibilitar a concretização da telepresença na interação instantânea de profissionais de saúde distanciados geograficamente uns dos outros [1].

14 2 Alguns campos, como por exemplo os apresentados pela Marinha, devido ao número reduzido de profissionais com certas especialidades,podem utilizar beneficamente do auxílio ao diagnóstico de saúde à distância, em tempo real, proporcionado pelo uso das tecnologias citadas, são eles: atendimento a populações ribeirinhas da Amazônia, a navios de apoio às operações na região da Antártica e a pesquisadores da Base Comandante Ferraz, situada na Antártica. A arquitetura do Projeto Telessaúde define os conceitos de Centro de Saúde Holográfico (CSH) e Centro de Saúde Virtual (CSV). O CSH consiste no centro o qual possui toda a tecnologia necessária para que a imagem holográfica de um paciente e de um médico, que conduz o atendimento presencialmente,seja projetada e, portanto, é o ponto em que um médico especialista está presente. O CSV consiste em um consultório localizado em uma região isolada geograficamente do CSH (portanto, remoto) onde estão presentes tanto um paciente quanto um médico, tais consultórios tem o intuito de possuir o mínimo de tecnologia necessária por motivos de replicabilidade. A tranmissão de informações de serviços multimídia, por exemplo informações de áudio, entre os centros geograficamente distantes (CSH e CSV) é baseada no na utilização do GStreamer. O GStreamer é um framework para desenvolvimento de aplicações que lidam streams multimídia, como áudio e vídeo. Foi escrito em linguagem C e é baseado em GObject. O GStreamer provê o serviço de multimídia dos aplicativos (software), como editores de vídeo, streaming de mídia e media players. É um framework multiplataforma, sendo possível utilizá-lo sobre Linux (x86, PowerPC e ARM), Solaris (x86 e SPARC), Mac OS X, Microsoft Windows e OS/400. GStreamer é software livre, licenciado sob GNU GPL [2]. De modo a contribuir com a liberdade para interação com hologramas girar, mover, marcar, medir, aumentar/diminuir, liberar ou bloquear áudio, propiciar efeitos de aproximação da imagem (zoom), entre outros, surge a ideia de criação de um Painel de Automação para controle de todo o centro holográfico. Da mesma maneira, com o intuito de gerenciar de forma mais eficiente os fluxos de áudio presentes no sistema e transmitidos pela aplicação GStreamer vê-se a necessidade do desenvolvimento de o móudlo de comutação de áudio.

15 1.1 Motivação 3 A preparação de todo o atendimento entre os Consultórios de saúde Virtuais (CSV) e o Centro de saúde Holográfico (CSH) é feita manualmente por técnicos, alunos e professores vinculados ao projeto e a Universidade. Com o crescimento do projeto e a crescente demanda por mais operabilidade e portabilidade, tal solução se torna impraticável. Desta forma, estudamos a possibilidade de criação de um framework que permitisse, mesmo a um usuário sem conhecimento técnico prévio, a total independência na operação dos cenários de consulta e atendimento no dia-a-dia do projeto. Tal solução permitiria, então, que a equipe médica pudesse operar o sistema a qualquer hora, de forma prática, fácil e sem a necessidade de auxílio externo. 1.2 Objetivos Este trabalho de conclusão de curso descreve o desenvolvimento de um Painel de Automação modular e um módulo para controle de áudio entre os ambientes do CSH e do CSV. O objetivo desse Painel consiste na automatização dos processos de operação e controle do ambiente holográfico e suas projeções. O módulo de áudio tem por objetivo facilitar e tornar mais segura a comunicação entre os profissionais distantes geograficamente, além da comunicação médico/paciente. Ao fim deste trabalho espera-se alcançar uma infra-estrutura funcional para o Painel de Automação e o módulo de áudio, além do estudo da modelagem teórica do desenvolvimento destes. 1.3 Roteiro dos próximos capítulos No capítulo 2, temos uma breve revisão bibliográfica onde será descrito o ferramental teórico através dos conhecimentos registrados na literatura abordada e pesquisada sobre o assunto. Desta forma, espera-se que essas referências de estudos possam apresentar o embasamento necessário para a realização e entendimento do que será apresentado nos capítulos seguintes deste trabalho. O capítulo 3 tem o objetivo de descrever o processo de desenvolvimento e otimização do Painel de Automação e do módulo de controle de áudio.

16 4 Por fim, no capítulo 4, apresentamos as conclusões a respeito do que foi desenvolvido, assim como algumas sugestões de aplicações e de projetos que podem ser realizados de forma contínua ao que está sendo apresentado.

17 Capítulo 2 Revisão Bibliográfica Neste capítulo, é feita uma revisão bibliográfica do ferramental teórico essencial para o entendimento do trabalho desenvolvido. Portanto, o capítulo é dividido em uma lógica programática que tem como objetivo apresentar ditas ferramentas na mesma ordem lógica de que a metodologia de desenvolvimento requer esses conhecimentos. 2.1 Desenvolvimento Web Em computação, aplicação web designa, de forma geral, sistemas de informática projetados para utilização de um navegador, através da Internet ou aplicativos desenvolvidos utilizando tecnologias web HTML, JavaScript e CSS. Pode ser executado a partir de um servidor HTTP (Web Host) ou localmente, no dispositivo do usuário [4] Modelo cliente-servidor O modelo cliente-servidor, em computação, é uma estrutura de aplicação distribuída que distribui as tarefas e cargas de trabalho entre os fornecedores de um recurso ou serviço, designados como servidores, e os requerentes dos serviços, designados como clientes [5] Font-end vs Back-end O front-end é tudo envolvido com o que o usuário vê, incluindo design e algumas linguagens como HTML, CSS e JavaScript. O back-end, ou o lado do servidor, é basicamente como o site funciona. Isso se refere a tudo o que o usuário não pode ver no navegador,

18 como bancos de dados e servidores. Os desenvolvedores de back-end estão preocupados principalmente com coisas como segurança, estrutura e gerenciamento de conteúdo [6] HTML O HTML (HyperText Markup Language ou, em português,linguagem de Marcação de HiperTexto) é uma linguagem essencial para o desenvolvimento de uma página web uma vez que constitui a estrutura dela. Uma linguagem de marcação, no sentido em que se relaciona com os navegadores, é uma linguagem com uma sintaxe específica que fornece instruções ao navegador sobre como exibir uma página. O HTML distingue e separa o conteúdo (palavras, imagens, áudio, vídeo, e assim por diante) de sua forma de apresentação (as instruções sobre como determinado tipo de conteúdo deve ser exibido). O HTML usa um conjunto pré-definido de elementos para identificar os diversos tipos de conteúdo. Os elementos, por sua vez, contém uma ou mais tags que contém ou expressam um determinado conteúdo [10]. As especificações e padrões do HTML são geridas pelo World Wide Web Consortium (W3C) e pelo Web Hypertext Application Technology Working Group (WHATWG). O WHATWG considera o HTML um padrão vivo, em constante evolução, ao passo que o W3C trabalha tanto com o padrão estabelecido quanto com a sua evolução. A versão mais atual do padrão HTML é o HTML5 e a sua evolução é o HTML 5.1 [10] CSS O CSS (Cascading Style Sheets ou em português: folhas de estilos em cascata) é uma linguagem de estilo usada para descrever a apresentação de um documento escrito em HTML ou em XML). O CSS descreve como elementos são mostrados na tela, no papel, no discurso ou em outras mídias, definindo o estilo da página web. CSS é uma das principais linguagens da open web e tem sido padronizado também pelo W3C [11] JavaScript JavaScript é uma linguagem de programação leve, interpretada e orientada a objetos com funções de primeira classe, conhecida como a linguagem de script para páginas Web, mas também utilizada em muitos ambientes fora dos navegadores. Ela é uma linguagem

19 7 de scripting baseada em protótipos, multi-paradigma e dinâmica, suportando os estilos orientado a objetos, imperativo e funcional [12]. JavaScript roda no client side da web, o que pode ser usado para projetar/programar o comportamento de uma página web a partir da ocorrência de um evento. JavaScript é uma linguagem fácil de se aprender mas que também é poderosa, sendo amplamente utilizada para controlar o comportamento de páginas web. JavaScript pode funcionar tanto como uma linguagem procedural como uma linguagem orientada a objetos [12]. As capacidades dinâmicas de JavaScript incluem a construção de objetos em tempo de execução, listas variáveis de parâmetros, variáveis de funções, criação dinâmica de scripts, introspecção de objetos e recuperação de código fonte [12]. 2.2 Django Django é um Web framework escrito em Python. Um Web framework é um software que auxilia o desenvolvimento de sites, aplicações e serviços web. Provendo uma série de ferramentas e funcionalidades que resolvem problemas comuns do desenvolvimento Web, tais como características de segurança, acesso a banco de dados, processamento de templates, direcionamento de URL, etc. Outra vantagem do Django, se deve ao fato de ser um projeto que está ativamente em desenvolvimento há mais de 12 anos e conta com uma grande comunidade e uma documentação bem detalhada para dar suporte aos seus usários. Devido ao longo tempo de atividade, o Django alcançou uma patamar sólido dentre as opções de Web framework disponíveis e é utilizado por grandes empresas como, por exemplo, Instagram, Disqus, Mozilla, Bitbucket, Last.fm, National Geographic [18]. 2.3 Python aplicado a web A programação para web ganha cada vez mais espaço nesse imenso mercado virtual. As linguagens de programação estão mais poderosas e ao mesmo tempo produtivas e com excelente desempenho. O Python surgiu em 1989 criado por Guido van Rossum. Esta, é uma linguagem de programação multiplataforma que permite desenvolver aplicações para games, desktops,

20 8 web e dispositivos móveis. Além disso, ela pode se comunicar com outras aplicações que foram desenvolvidas em outras linguagens como C, C++, Java e C# [7]. A programação Web em Python traz grandes benefícios para os desenvolvedores, porque é uma linguagem de livre distribuição e porque vem ganhando muitos adeptos desde sua criação por sua clareza e robustez. Empresas como Nokia, Google e Nasa acreditaram no seu potencial e incorporaram Python em seus produtos [7]. A escolha da linguagem Python hoje é devido a múltiplos fatores, tais como: é fácil de aprender e muito intuitiva; maior produtividade, ou seja, escreve-se menos linhas de código; é multi-plataforma (desde Mainframes até telefones celulares suportam a linguagem); mais robusta e segura que outras linguagens de script (como PHP) e tem código aberto [8]. Python conta hoje com ao menos quatro boas plataformas para desenvolvimento de aplicações web. Cada uma com suas características, mod python, Django, TurboGears e Zope são escolhas seguras para qualquer desenvolvedor [8]. 2.4 Shell Script Um script shell é um programa de computador desenvolvido para ser executado pelo Unix shell (o conhecido, Terminal). Trata-se de uma linguagem interpretada, ou seja não há a necessidade de compilar o arquivo para execução. O interpretador de comandos Unix shell (ou simplesmente shell) pode interpretar comandos em sequência armazenados dentro de um arquivo de texto, a esse arquivo atribuímos o nome de script shell. Atualmente, já foram desenvolvidas diferentes versões de script shell (Ex: Korn Shell - ksh, C Shell - cshl, etc). Nesse trabalho será utilizado o Born Shell - sh [20]. Os scripts shell podem desempenhar diversas operações como: manipulação de arquivos, execução de programas, impressão de texto, etc. Basicamente, tudo que pode ser feito através de comandos poderá ser feito por intermédio de scripts. A vantagem na utilização dessa linguagem durante o trabalho desenvolvido, é em função que a mesma proporciona uma camada de integração entre requisições de usuários e execução de diversas funcionalidades que dependem diretamente da ação do sistema operacional, eliminando a necessidade de inserção desses comandos linha a linha no interpretador (shell).

21 2.5 Protocolo SSH 9 O protocolo SSH (acrônomo para Secure Shell protocol) é um método seguro para acesso remoto ponto a ponto (de um computador a outro). O dito protocolo propociona diversas alternativas para uma autenticação forte, e garante a segurança e a integridade da comunicação com uma encriptação poderosa. É uma alternativa segura aos protocolos de acesso não protegidos (tal como telnet, rlogin) e metodos de inseguros de transferencia de arquivos (tal como o FTP) [14]. 2.6 Autenticação por chave pública Com a autenticação de chave pública, a entidade de autenticação possui uma chave pública e uma chave privada. Cada chave é um grande número com propriedades matemáticas especiais. A chave privada é mantida no computador do qual você efetua login, enquanto a chave pública está armazenada no arquivo.ssh / authorized keys em todos os computadores aos quais você deseja fazer login. Quando você efetua login em um computador, o servidor SSH usa a chave pública para codificar mensagens de uma forma que só pode ser decodificada por sua chave privada, significando que um invasor não irá interferir na sua sessão [15].

22 Capítulo 3 Desenvolvimento 3.1 Criação de um painel de automação O estado atual de operação do centro holográfico, para o projeto de Telessaúde, apresenta um certo nível de complexidade técnica. Uma vez que o sistema é operado manualmente, e é necessária a presença de um responsável com conhecimento técnico para que tal operação seja possível. Tendo em vista o problema descrito, uma solução através de um painel de automação foi proposta. O painel de automação proposto, tem por objetivo simplificar a operação do centro holográfico e, pensando em sua manutenção e escalabilidade, possibilitar uma inserção facilitada de recursos desenvolvidos para integrar o sistema. Portanto, para atender tais necessidades, seria necessária uma aplicação que fosse dotada de uma interface gráfica intuitiva que tornasse toda a complexidade técnica (comandos, scripts, etc) transparente ao usuário, assim como uma estrutura modular que tornasse a integração de módulos futuros um processo simples e direto. Tendo em vista a portabilidade da aplicação, foi decidido pelo desenvolvimento uma uma aplicação Web. A escolha pode ser justificada, uma vez que podemos citar como vantagens de uma aplicação web as seguintes características: Independência de plataforma - O usuário pode acessar a aplicação tanto de um computador, quanto de um smartphone, tablet, etc. Independência de sistema - O sistema operacional é transparente para um a aplicação web, uma vez que o acesso é feito via web browser.

23 11 A necessidade de manutenção e escalabilidade da aplicação, já citadas, são preocupações que estiveram presentes desde o início das discussões de planejamento do painel de automação. Assim, com o intuito de desenvolver uma aplicação estruturada de forma bem definida, de modo que fosse possível manter sua manutenção a longo prazo, e que apresentasse a estrutura modular requerida pelo mesmo, possibilitando a contribuição de diferentes integrantes envolvidos, foi decidido utilizar o Web Framework Django. 3.2 Web Framework Django Ao longo do desenvolvimento, ficará evidente diversas vantagens que a utilização do Django nos proporciona. Algumas delas se originam do fato que o Django foi desenvolvido para trabalhar de acordo com algumas estruturas pré-estabelecidas. Então, ao contrário de outros Web frameworks que proporcionam mais liberdade para o usuário estruturar seu projeto, muitas implementações do projeto deverão ser estruturadas através do padrão pré-esrabelecido pelo Django. Na maioria dos casos, principalmente para principiantes, o modo que o Django foi previamente estruturado será uma forma otimizada de desenvolvimento. Portanto, o Django nos possibilitará um desenvolvimento seguro e confiável com a padronização necessária ao nosso projeto, sem a necessidade de implementação de todas as funcionalidades do zero. O primeiro passo para começar a desenvolver nosso projeto é a preparação do ambiente de desenvolvimento através da instalação de todas as ferramentas necessárias. Além do Python e do Django, é recomendável a instalação de um ambiente virtual. Um ambiente virtual será útil, uma vez que que podemos ter diferentes versões do Django instaladas em nosssa máquina, assim como, em alguns projetos, podemos ter que instalar diferentes bibliotecas. Através de um ambiente virtual podemos isolar cada projeto em sua própria caixa, evitando, assim, possíveis conflitos. Para uma descrição detalhada da instalção de cada componente, leia o Apêndice A. Antes de começar com as linhas de código, alguns definições de elementos básicos se fazem necessárias: Um template contém as partes estáticas da saída HTML desejada, bem como alguma sintaxe especial descrevendo como o conteúdo dinâmico será inserido. Uma view, é simplesmente uma função Python que recebe uma requisição Web e

24 12 retorna uma resposta Web. Esta resposta pode ser um conteúdo HTML de uma página Web, um redirecionamento, um erro 404, um documento XML, uma imagem, ou realmente qualquer coisa. Um modelo contém todos os campos e comportamentos essenciais dos dados armazenados. Geralmente, cada modelo mapeia um única tabela e, além disso, cada atributo desse modelo representa um campo na dita tabela. Para definir URLs para um app, você cria um módulo Python informalmente chamado de URLconf (Configuração de URL). Este módulo refere-se a código Python puro e é um simples mapa entre padrões de formatos de URL (expressões regulares simples) para funções Python (suas Views ). Descrições mais detalhadas de alguns conceitos podem ser encontrados na documentação oficial do Django [9] ou em alguma das outras referências que serviram de base para esse trabalho [18] e [17]. O Django trabalha com o padrão de arquitetura MVT (Model-View-Template), que está ilustrado na Figura 3.1. De forma geral, o desenvolvedor fornece o modelo, a view, o template, faz o mapeamento através das urls e o Django se encarrega de entregar o resultado final ao usuário. Figura 3.1: Arquitetura MVT [28]. Finalmente, com nosso ambiente pronto, poderemos começar a desenvolver nossa aplicação web utilizando Django. Para começar, como descrito no Apêndice A, precisamos ativar nosso ambiente virtual, através do comando: source venv/ bin / a c t i v a t e O primeiro passo para o desenvolvimento de nosso Painel de Automação, será a criação de um projeto Django através do comando abaixo: django admin s t a r t p r o j e c t panel

25 13 Repare que na linha de código acima o nome panel foi escolha de projeto, esse comando criará um diretório principal estruturado, o qual conterá todos os arquivos do projeto, no caso, do Painel de automação. A Figura 3.2, ilustra um modelo simplificado que nos ajudará a entender importante conceitos da filosofia de trabalho do Django. Assim como, definir tais conceitos dentro da metodologia de desenvolvimento desse trabalho. Um app, é uma aplicação web que realiza alguma função. Um app geralmente pode ser composto por um conjunto de views, templates, models, etc. Um projeto é a coleção de configurações e aplicações. Um projeto pode ser composto por múltiplas aplicações, ou uma única aplicação. Figura 3.2: Modelo estrutura simplificada Django Portanto, neste caso, nosso Painel de Automação refere-se ao projeto que conterá diversos apps, ou seja, um app representa um módulo dentro da nossa metodologia. Esse conceito ficará ainda mais claro com a sequência de desenvolvimento apresentada no restante dessa seção. Após a execução do comando startproject, nosso diretório se apresenta da seguinte maneira:

26 14 panel / panel / panel / i n i t. py s e t t i n g s. py u r l s. py wsgi. py + manage. py + venv/ Onde, manage.py Utilitário de linha de comando que permite a interação com o projeto Django. É utilizado para executar comandos relacionados com o nosso projeto. init.py Arquivo vazio que indica ao Python que esse diretório deveria ser considerado um pacote Python. settings.py Arquivo que contém todas as configurações do projeto. urls.py - Arquivo responsável por mapear as rotas e caminhos em nosso projeto. wsgi.py Interface de integração (gateway) com servidores web compatíveis com WSGI (Web Server Gateway Interface) usado para servir seu projeto. Utilizado para o deployment do projeto. A essa altura, podemos observar que não houve a instalção de nenhum tipo de servidor web. Isso se deve ao fato, de que o Django acompanha um servidor web leve para desenvolvimento. Portanto, podemos executar nosso projeto localmente através do comando: python manage. py r u n s e r v e r

27 15 Figura 3.3: Servidor web Django executando Verificamos que nosso projeto está funcionando acessando o endereço em nosso web browser. Figura 3.4: Menssagem de sucesso do servidor O próximo passo será será a criação do nosso primeiro app, neste caso, o módulo de comutação de áudio: django admin startapp audio Após a execução do comando startapp, nosso diretório se apresenta da seguinte maneira:

28 16 panel / panel / audio/ migrations/ + init.py init.py admin.py apps.py models.py tests.py + views.py panel / init.py s e t t i n g s. py u r l s. py wsgi. py + manage. py + venv/ Após a criação do app, é necessário instala-lo. Para tal, navegamos até o diretório do nosso projeto, panel/, onde se encontra o arquivo de configurações settings.py. Basta adicionar o app criado na lista INSTALLED APPS, conforme demonstrado abaixo: # A p p l i c a t i o n d e f i n i t i o n INSTALLED APPS = [ django. c o n t r i b. admin, django. c o n t r i b. auth, django. c o n t r i b. contenttypes, django. c o n t r i b. s e s s i o n s, django. c o n t r i b. messages, django. c o n t r i b. s t a t i c f i l e s, audio, ]

29 17 Uma vez que criamos o módulo (app), pensando na arquitetura MVT citada anteriomente, precisamos adicionar um template e mapear a mesma para que seja entregue ao usuário final. Para isso vamos criar um diretório templates/ e um arquivo urls.py, conforme descrito a seguir: audio / migrations / + init.py templates/ panel/ + panel.html init.py admin. py apps. py models. py t e s t s. py views. py urls.py A documentação oficial do Django [9] recomenda a criação de um sub-diretório panel/ dentro do diretório templates/. Uma vez o Django realiza um acesso global a todos os templates disponíveis, ao fazer isso você não precisa se preocupar em nomear todos os templates do seu projeto com nomes diferentes para não haver conflito. O template para esse projeto é único e nomeado como panel.html. Maiores explicações sobre o código html podem ser obtidas na seção 3.5 deste capítulo, o mesmo pode ser visto na integra no Apêndice B. Assim sendo, podemos agora completar o modelo simplificado ilustrado anteriormente que exemplifica a estrutura utilizada pelo Django:

30 18 Figura 3.5: Modelo estrutura Django Onde, urls.py Controla o que é servido de acordo com os padrões url estabelecidos. views.py Gerencia o que é apresentado para visualização e interação do usuário final. models.py Estruturas de banco de dados e metadata. Para realizar o mapeamento, começamos no arquivo urls.py do diretório panel/ do nosso projeto. Primeiramente, devemos importar as bibliotecas necessárias. Em seguida adicionamos uma nova url, nesse caso panel/ apontando para o arquivo urls.py do diretório do nosso módulo de comutação de áudio, ou seja, audio/. from django. conf import s e t t i n g s from django. conf. u r l s import include, u r l from django. c o n t r i b import admin u r l p a t t e r n s = [ u r l ( r ˆ admin /, admin. s i t e. u r l s ), url(r ˆ panel/, include( audio.urls )), ]

31 19 Navegando até o diretório audio/ do nosso módulo, no recém criado urls.py copiamos o conteúdo do arquivo urls anterior e alteramos o conteúdo de urlpatterns. Devemos nos certificar que todas as bibliotecas necessárias foram importadas: from django. conf. u r l s import u r l from django. conf import s e t t i n g s from. import views u r l p a t t e r n s = [ u r l ( r ˆ audio /, views. panel, name= panel ), ] A estrutura de nosso aplicação está quase pronta, de acordo com a documentação oficial do Django [9]. Para melhor organizar arquivos como imagens, CSS e JavaScript é recomendável a criação de um diretório de arquivos Estáticos. Portanto, no diretório principal de nosso projeto criamos o sub-diretório static/ como descrito abaixo: panel / panel / audio / panel / static/ + css/ + images/ + js/ + shell/ + manage. py + venv/ Além dos diretórios css/, images/ e js/ também criamos o diretório shell/, apenas por motivos de organização. Definimos o diretório shell/ como o diretório padrão para armazenar todos o scripts shell utilizados para atribuir funcioinalidades à nossos módulos. Para o Django reconhecer o diretório static/, foi necessário adicionar o trecho de código {% load static%} no topo do código HTML. Conforme ilustrado na Figura 3.6 a seguir:

32 20 Figura 3.6: Load static Além disso, importamos a biblioteca static nos arquivos urls.py anteriormente citados: from django. conf. u r l s. s t a t i c import s t a t i c A estrutura do nosso webapp está concluída. Os próximos passos consistem em: desenvolver o código que será responsável por alterar parâmetros do sistema operacional a fim de obter a funcionalidade requerida pelo módulo de comutação de áudio, definir um design adequado para a interface com o usuário e desenvolver a integração que permitirá a comunicação da interface com o o nosso primeiro módulo. 3.3 O módulo de comutação de áudio Problema a ser resolvido O módulo de comutação de áudio foi desenvolvido com o objetivo de dar a possibilidade ao médico especialista do centro holográfico de se comunicar tanto de modo público quanto privado. O modo público refere-se ao cenário onde tanto o paciente quanto o médico no consultório remoto compartilhem a mensagem, portanto a voz do médico especialista é direcionada ao alto-falante instalado no consultório remoto. O modo privado, é representado pelo cenário no qual apenas o médico no consultório remoto receba a mensagem, uma vez equipado com um fone de ouvido bluetooth. Metodologia para solução Uma vez definido o problema, foi realizado um estudo para e encontrar uma solução eficiente que pudesse ser integrada ao painel de automação desenvolvido. Portanto, a

33 21 Figura 3.7: Modo público vs Modo privado solução, além de realizar essa comutação de áudio entre os componentes físicos (hardware) compreendidos pelo sistema, também deveria ser facilmente integrada ao nosso Web App. Um primeiro passo, foi entender a metodologia utilizada pelo sistema operacional para reproduzir um arquivo de áudio em um hardware do sistema. Uma vez que o projeto de Telessaúde tem como objetivo ser um projeto de baixo custo, as opções de software aberto/livre são amplamente incentivadas pelo mesmo e, assim, a solução foi desenvolvida em torno do sistema operacional Gnu/Linux. A partir disso, a arquiteura de áudio desse sistema foi brevemente estudada. Arquitetura de áudio Linux Para começar a entender o que é necessário para que um arquivo de áudio seja reproduzido pelo sistema operacional, aplicamos o conceito de Framework para este caso. Para que cada aplicação seja capaz de reproduzir o áudio em um componente de hardware a partir de um arquivo, são necessárias muitas linhas de código. Assim, para não haver a necessidade de cada aplicação implementar tal funcionalidade, o sistema operacional possui uma estrutura previamente definida para ser compartilhada entre todos as aplicações. A essa estrutura é dado o nome de Framework de áudio. O Framework de áudio do Linux, não se apresenta bem estruturado em camadas como se estivessemos estudando as camadas do modelo OSI em redes de computadores. Na verdade, há uma maior semelhança com um modelo da crosta terrestre, onde camadas mais inferiores podem emergir para a superficie. Por exemplo, ferramentas de camadas mais baixas, que estão em contato direto com o hardware, podem conter APIs (application

34 22 Figura 3.8: Ausência de Framework de áudio programming interface) para estabelcer comunicação diretamente com aplicações [23]. Com o passar dos anos, muitas aplicações optaram por dar preferência a certas ferramentas, e a arquitetura de áudio do Linux foi reduzindo em complexidade e se tornando cada vez mais homogênea. No estado atual [22], pode-se simplificar tal arquitetura conforme o mostrado na Figura 3.9 a seguir: Figura 3.9: Arquitetura de áudio Linux Além do Framework utilizado, para estabelecer a comunicação entre hardware e software é necessário um nível intermediário. Bem conhecido da literatura, esse nível

35 23 intermediário é chamado de driver. O ALSA é o lugar no Kernel do Linux (núcleo do sistema operacional) onde praticamente todos os drivers de áudio estão embutidos. Como ilustrado na Figura 3.9, apesar de estar em contato diretamente com o hardware, o ALSA também possui software e API (application programming interface) para comunicação com aplicações em níveis superiores. O PulseAudio é o servidor de audio que dará suporte a maioria das aplicações 1 utilizadas pelo sistema operacional. Portanto, se comunica diretamente com os drivers de áudio do ALSA e realiza todas as operações necessárias ao sistema operacional, como, por exemplo: Mixar saídas de áudio de diferentes aplicações para serem reproduzidas ao mesmo tempo, converter taxas de amostragem, etc. Algoritmo - Script Shell Entendendo como a arquitetura de áudio funciona, foi possível implementar em um algoritmo para resolver o problema de comutação de áudio proposto. Uma vez que nossa solução se baseia no sistema operacional Gnu/Linux, a linguagem de implementação escolhida para o dito algortimo foi o shell script Para descrever o funcionamento desse algoritmo, é necessário a definição de alguns elementos envolvidos no processo: ALSA sound cards (sinks) Cada dispositvo físico, responsável por reproduzir o áudio em um computador, é identificado pelo ALSA como uma interface de áudio (sound card) distinta. Portanto, podemos entender tais dispisitivos como saídas de nosso sistema, ou também chamados de sinks. Sink-input Para o Pulseaudio, nosso servidor de som (sound server), cada aplicação que está reproduzindo algum áudio é identificada como uma entrada, ou também chamadas de sink-input. No caso desse projeto, temos como saídas a interface de áudio PCI padrão do sistema e a interface de áudio de um dispositivo Bluetooth. A aplicação Gstreamer, fará a função da entrada descrita. De forma geral, nosso algoritmo deve executar as seguintes etapas: Identificar a entrada correspondente ao aplicativo alvo que se deseja comutar o canal 1 O JACK não será abordado nesse trabalho. Geralmente, é utilizado para aplicações de áudio profissionais que necessitam de baixa latência.

36 24 de áudio (Gstreamer); Identificar qual a saída correspondente a interface de áudio PCI (modo público); Identificar qual a saída correspondente a interface de áudio Bluetoooth (modo privado); Comutar a entrada alvo entre as saídas previamente identificadas, de acordo com a requisição do usuário; A Figura 3.10 abaixo, ilustra a lógica de operação de nosso algoritmo. O mesmo pode ser entendio como um Multiplexador 2x1, o qual irá comutar uma entrada de áudio entre duas saídas distintas. Figura 3.10: Diagrama de funcionamento do algoritmo Para a explicação acima, com o intuito de maior clareza, abstraimos a linguagem de programação e alguns problemas práticos enfrentados, assim, a complexidade do algoritmo foi reduzida. Uma explicação detalhada do funcionamento do código é apresentada no Apêndice E. 3.4 Aplicação do script em um servidor remoto Com a finalidade de possibilitar o controle de diversas máquinas remotas por scripts armazenados em um único servidor, a solução implementada consiste na exexecução desses scripts através do protocolo SSH (secure shell protocol). A arquitetura dessa solução, para o nosso sistema, está ilustrada na Figura Para possibilitar a total automatização da execução dos scripts em uma máquina remota, o modelo de autenticação padrão através da inserção de uma senha alfa-numérica é um limitador. Deste modo, foi configurado o modelo de autenticação por chave pública

37 25 Figura 3.11: Arquitetura de execução remota (criptografia assimétrica). O código para execução remota de um, nomeado como ssh.sh no dito projeto script, segue descrito abaixo: #!/ bin / bash USER= csv IP= s s h $USER@$IP < comutacao audio. sh Detalhes sobre a configuração do acesso remoto através da autenticação por chave pública, sem a utilização de uma senha alfa-númerica, são apresentados no Apêndice F. 3.5 Montando o HTML Depois de trabalharmos na configuração do Django e termos desenvolvido o Script Shell para comutação de áudio, começamos então a elaborar como seria a apresentação da página e a sua integração com o back-end. Para isso, começamos a montar o nosso código HTML. O código HTML foi dividido em Head (cabeçalho), que representa um grupo de suporte introdutório ou navegacional, contendo alguns elementos do cabeçalho da página mas também links referenciando alguns estilos da página que serão adotados; Body (corpo), que vai definir o corpo do site, sendo lá que estarão as informações visíveis para o usuário como o botão, as mensagens na tela, entre outros. Além da tag Head e Body temos também a tag script que simboliza o JavaScript que falaremos mais a frente. Para melhor organização, dividimos os elementos utilizados na parte de front-end numa pasta static (estática) e, ao longo do desenvolvimento, sempre

38 26 nos referenciarmos a mesma. A fim de termos um layout mais limpo, adaptável e fácil de interagir em qualquer dispositivo, utilizamos o Bootstrap. Este, é o mais popular framework HTML, CSS e JS para desenvolvimento de projetos responsivos e focados para dispositivos móveis na web. A partir disso, criamos a nossa página com o título sugerido de Painel de Automação, colocamos links no fundo da mesma para referenciar mais informações sobre o Projeto Telessaúde e, dividimos em duas janelas de controle Médico e Técnico. Tal divisão, se deve ao fato de estarmos criando uma arquitetura modular que proporciona o futuro desenvolvimento de diversos módulos que agregam valor ao Painel de Automação. Após o desenvolvimento do Painel, começamos então a trabalhar com o módulo de áudio. Para tal, criamos um botão interativo na nossa página HTML no ícone de Médicos que pudesse chamar o nosso Shell Script que faz comutar o áudio. No código HTML, apenas desenvolvemos o botão, toda parte interativa ficará por conta do JavaScript. Com o intuito de alertar o usuário em qual saída de áudio ele se encontra, criamos também mensagens de alertas que aparecem para cada opção selecionada. 3.6 Montando o estilo da página com o CSS O último tópico a ser desenvolvido para o Painel de automação é o estilo da página. O Cascading Style Sheets (CSS) é uma folha de estilo composta por camadas e utilizada para definir a apresentação (aparência) em páginas da internet. O CSS define como serão exibidos os elementos contidos no código de uma página da internet e sua maior vantagem é efetuar a separação entre o formato e o conteúdo de um documento [13]. Com o objetivo de facilitar o desenvolvimento do layout da página, utilizamos o Bootstrap já citado anteriormente. Bootstrap é um framework que provê componentes front-end (css e js) prontos para utilizarmos no desenvolvimento da aplicação. O Bootstrap depende, basicamente, de dois arquivos: bootstrap.min.css bootstrap.min.js O bootstrap.min.js é baseado em jquery, então para seu funcionamento precisa-se ter o jquery incluído no projeto. A partir desses arquivos dentro da nossa pasta static do

39 projeto, começamos a desenvolver o estilo do nosso Painel linkando eles no nosso código html (Figura 3.12). 27 Figura 3.12: Linkando os arquivos bootstrap.min.css e bootstrap.min.js no código HTML O Bootstrap possui muitas classes CSS que tornam a estilização de componentes HTML (botões, tipografia, formulários, ícones, etc) muito mais rápido. Além disso, ele já contém alguns plugins JavaScript (modal, dropdown, popover, etc) que ajudarão no desenvolvimento dos módulos futuros do Painel. Logo, no nosso código HTML, ao criarmos qualquer componente, apenas referenciamos a classe que a partir disso ela importava o respectivo estilo já estabelecido no Bootstrap (Figura 3.13).

40 28 Figura 3.13: Referenciando a classe do Bootstrap Para o estilo do botão, utilizamos um CSS separado (Apêndice C on-off-switch.css) que define o tamanho, cores e texto do botão. Além disso, definimos mensagens de alertas para cada opção de comutação do áudio e, para isso, utilizamos também o Bootstrap para caixa de alerta e o animate.css [21] para definir a animação dessas caixas (Figuras 3.14 e 3.15). Figura 3.14: Classes Botão e Alertas

41 29 Figura 3.15: Animação das caixas de Alerta referenciando o animate.css 3.7 Integração Módulo-Painel: Escrevendo o código JavaScript Após montarmos a estrutura do nosso Painel e do módulo de áudio, começamos então a desenvolver a parte interativa que representa o JavaScript. Na interface do módulo de áudio, criamos um botão que pudesse ser fácil para o usuário interagir e que também apresentasse algum tipo de informação. Logo, para isso desenvolvemos um botão on-offswitch (Figura 3.16). Figura 3.16: On-off-switch No código JavaScript, configuramos a animação do botão. Apesar de agora o nosso botão apresentar algum tipo de informação para o usuário, vimos a necessidade de alertá-lo de outra forma devido ao fato de se tratar de uma comutação de áudio de uma conversa sigilosa. A partir disso, desenvolvemos caixas de alerta interativas que contém informação sobre a opção escolhida pelo usuário que apenas aparecem na tela quando o botão é pressionado. Para a comutação do áudio, tivemos que fazer o nosso botão chamar

42 30 o script Shell. Porém, para o front-end se comunicar com o back-end foram necessários alguns mapeamentos. O front-end e back-end são termos generalizados que se referem às etapas inicial e final de um processo. O front-end é responsável por coletar a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o back-end possa utilizar. Tais partes se comunicam através do web framework Django como pode ser na Figura 3.17 abaixo. Figura 3.17: Comunicação Front-End e Back-End A fim de chamarmos o script de comutação de áudio, que faz parte do nosso desenvolvimento back-end, no momento em que o usuário clicar no botão (front-end) foi necessário criarmos uma view no Django (Figura 3.18). Figura 3.18: Criação da VIEW no Django Depois da view criada, mapeamos um endereço URL dentro também do Framework Django que a chamasse (Figura 3.19). Logo, a partir de agora, ao criarmos uma função AJAX dentro do nosso código JavaScript, já conseguimos a comunicação back-end e front-end. A função AJAX é

43 31 Figura 3.19: Mapeamento da URL que chama a VIEW no Django necessária para fazermos requisições assíncronas na web, pois o que queremos é que a ação do usuário de apertar o botão tenha essa informação processada sem que seja necessário a atualização da tela, o refresh (Figura 3.20). O JavaScript então, assume o papel de navegador acessando uma determinada url e fornecendo como retorno o conteúdo HTML gerado pela URL acessada. Figura 3.20: Função AJAX chamando a URL criada

44 32 Por fim, por motivos de segurança, definimos o modo default do áudio como Privado. Para isso, fizemos uma função que define que assim que o usuário acessar a página, o botão automaticamente vira para Privado comutando o áudio então para essa saída, para mais detalhes sobre os códigos envolvidos consulte os Apêndices E (shell script) e D (JavaScript).

45 Capítulo 4 Conclusão e Trabalhos Futuros 4.1 Conclusão Levando-se em consideração os tópicos apresentados durante o desenvolvimento deste trabalho, este capítulo fornece uma análise final quanto aos aspectos positivos proporcionados pela aplicação desenvolvida ao sistema do projeto Telessaúde. Com o intuito de facilitar o entendimento, o capítulo está organizado através de uma abordagem que decorrerá sobre os seguintes pontos: Vantagens das ferramentas utilizadas; Usabilidade do sistema e interação com o usurário; Perspectiva de escalabilidade do sistema; Custo da ferramenta; Primeiramente, dentre as vantagens das ferramentas utilizadas, podemos destacar a portabilidade proporcionada pela escolha do desenvolvimento web. Tal portabilidade é resultado do acesso via browser da aplicação, resultando numa independência de sistema operacional. A Figura4.1, para fins de ilustração, apresenta a interface do módulo de comutação de áudio desenvolvida para nossa ferramenta.

46 34 Figura 4.1: Interface Painel de Automação O desenvolvimento baseado no Framework Django e na linguagem Python foi escolhido de modo a simplificar os trabalhos futuros no Painel, uma vez que estas proporcionam uma abordagem modular robusta. Por sua vez, a linguagem Python tem sido fortemente adotada nos atuais cenários de desenvolvimento, sendo também ministrada no curso de Engenharia de Telecomunicações, o que a torna a favorita para desenvolvimento do Projeto, conforme ilustrado na Figura Figura 4.2: Ranking linguagens mais utilizadas [29]. 1 O Python continuou sua trajetória ascendente e saltou dois lugares para o slot número 1, embora os quatro maiores - Python, C, Java e C ++ - permanecem muito próximos de popularidade.

47 35 Conforme o descrito na Seção 3.2, a estrutura de projeto estabelecida pelo Django, o torna uma ferramenta de grande áuxilio para manutenção e e escalabilidade do sistema. Uma vez, que tal estruturação resulta em uma linha de desenvolvimento clara e bem definidade, simplificando a disseminação do conhecimento e tornando possível que a contribuição de futuros colaboradores. O projeto, descrito neste trabalho, propiciou uma maior usabilidade do sistema, em termos gerais, uma vez que a complexidade técnica antes existente foi convertida em uma tecnologia transparente e simplificada. Além disso, a interação com o usuário foi significativamente impactada através do desenvolvimento de uma interface gráfica intuitiva, o que torna o uso da aplicação evidente para o usuário final. A operação diária dentro do centro holográfico envolve uma forte preparação técnica, pois todos os pontos devem estar alinhados antes da consulta médica. De modo a simplificar essa operação, o painel traz em único lugar a possibilidade de controlar toda a parte técnica, seja ela feita pelos técnicos e até mesmo módulos executados pelos próprios médicos, como o módulo de áudio, possibilitando a independência objetivada pelo projeto. Além de simplificar a operação e trazer maior independência para os usuários, o desenvolvimento do Painel Web possibilita uma enorme portabilidade, uma vez que o usuário poderá se conectar de qualquer dispositivo que acesse a internet. A Figura4.3, para fins de ilustração, apresenta a interface do módulo de comutação de áudio tanto para módo público (em vermelho) quanto para modo privado (em verde). Figura 4.3: Visualização da interface: Desktop vs Tablet A funcionalidade de executar scripts remotamente (via ssh), de maneira segura, sem a utlização de senhas alfa-numéricas proporciona uma maior praticidade na operabil-

48 36 idade do sistema. Uma vez que, acompanhada de uma interface de usário, pode executar qualquer uma das diversas funções do sistema em diferentes máquinas distribuídas pela rede. O custo é um aspecto vantajoso do projeto desenvolvido. Devido a iniciativa de utilização de ferramentas de código aberto e/ou sob a licença de software livre, não há custo agregado ao Projeto Telessaúde através da implementação da solução aqui apresentada. Além das vantagens descritas por esse trabalho, a implementação do Painel de Automação proporciona muitas outras possibilidades de otimização do sistema. Algumas delas, serão descritas na seção seguir na seção de trabalhos futuros. 4.2 Sugestões para trabalhos futuros A partir do discutido ao longo deste trabalho, pode-se sugerir algumas abordagens posteriores, referentes ao infra-estrutura proporcionada pelo Painel de Automação. Primeiramente, um passo adiante para a interface desenvolvida, seria a implementação de uma atribuição dinâmica para o nome de usário e o endereço IP da máquina remota de destino, para que através uma única interface seja possível indicar ao protocolo ssh para qual destino a comunicação deve ser estabelecida. Uma abordagem interessante, seria o desenvolvimento de um menu dropdown conectado à um banco de dados alimentado com todas as informações dos consultórios remotos disponíveis. Para o maior controle de acesso ao painel, sugerimos a criação de uma interface de autenticação (login e senha). A mesma consultaria um banco de dados, facilmente integrável ao Django através do conceito de models [27]. Este banco de dados conteria as informações necessárias dos participantes do projeto (técnicos, alunos, médicos, professores, etc) e, com isso, resultando em um maior controle sobre o painel e sua operação, elevando a segurança do sistema Além disso, a fim de melhorar a gestão do áudio, sugerimos a criação de um módulo de controle de ganho e/ou volume das interfaces utilizadas. Tal módulo, pode começar a ser desenvolvido seguindo a mesma linha de scripts utilizadas neste trabalho mas com a tulização do comando amixer [26], que faz esse tipo de controle para as interfaces de áudio do sistema. Com isso, o desenvolvimento deste trabalho de conclusão de curso se ecerra, porém

49 tendo a pretenção de servir como base para contribuições futuras ao projeto de Telessaúde. 37

50 Apêndice A Preparando o ambiente de desenvolvimento O objetivo desse apêndice, é mostrar o passo a passo da instalação 1 de cada elemento requerido para a criar o ambiente de desenvolvimento necessário para começar o desenvolvimento do Painel de Automação utilizando o Web framework Django. Instalação Python Para o desenvolvimento desse projeto, foi utilizada a versão mais atual do python, que no momento de elaboração do trabalho era a versão Para verificar se já há versões do Python instaladas, pode-se executar os seguintes comandos no terminal: python v e r s i o n python3 v e r s i o n python3. 6 v e r s i o n Figura A.1: Versões do Python instaladas 1 Deve-se notar que o passo a passo de instalção está exemplificado para a distribuição Linux Ubuntu, especificamente foi utilizada a versão

51 39 Caso a última versão do Python não esteja instalada, você pode realizar os seguinte procedimentos: Se você estiver utilizando o Ubuntu ou uma versão anterior, adicione o seguinte repositório: sudo add apt r e p o s i t o r y ppa : deadsnakes /ppa No caso da utilização da versão Ubuntu ou uma versão mais atual, siga para o próximo passo. Através da execução dos comandos a seguir, será instalada a versão mais atual do Python 3, Python no momento de desenvolvimento desse trabalho: sudo apt g e t update sudo apt get i n s t a l l python3. 6 Lembre-se que a nova versão estará disponível pela referência de pyhton3.6, como pode ser visto na figura abaixo: Figura A.2: Referência python3.6 Instalação Virtualenv Essa é a etapa referente a instalção do ambiente virtual que nos ajudará a separar diferentes projetos, evitando possíveis conflitos entre versões e pacotes instaladados. Primeiramente, para a instalçao do virtualenv, será necessária a instalação do gerenciador de ferramentas pip. Para instalar o pip para nossa versão Python 3.6.3: wget https : / / bootstrap. pypa. i o / get pip. py sudo python3. 6 get pi p. py Para instalar o virtualenv: sudo pip3. 6 i n s t a l l v i r t u a l e n v

52 40 Uma vez instalado com sucesso, o virtualenv possibilita a criação de um ambiente virtual para cada projeto. A fim de deixar a estrutura mais organizada, foi seguido o conselho de A Complete Beginner s Guide to Django [18], criando um diretório principal para conter o projeto atual e possíveis projetos futuros de maneira organizada. Neste exemplo, o diretório se chama Development. mkdir Development cd Development Através do comando change directory (cd) navegamos até o diretório Development e criamos o diretório do projeto do Painel de Automação, vamos chama-lo de panel. mkdir panel cd panel Esse é o diretório que irá conter todos os arquivos relacionados com nosso projeto Django. Figura A.3: Estrutura de diretórios para ambiente virtual o comando: Para criação de nosso primeiro ambiente virtual, dentro do diretório panel execute v i r t u a l e n v venv p python3. 6 Figura A.4: Instalação virtualenv Caso nenhum erro ocorra, a figura abaixo mostra a estrutura dos diretórios que você deverá conter a partir do diretório panel do projeto:

53 41 Figura A.5: Organização dos diretórios ambiente virtual Uma vez criado nosso ambiente virtual, agora devemos ativá-lo: source venv/ bin / a c t i v a t e Figura A.6: Ativação ambiente virtual Para entender o que está acontecendo na Figura A.6 acima, basta entender o motivo da criação do diretório venv. Trata-se de um diretório especial que contém uma cópia do Python (veja Figura A.5). Após ativar o ambiente venv, quando um comando python for executado, a cópia local do Python será utilizada. Para o próximo passo, a instalação do Django, será importante observar que a ferramenta pip também já se encontra instalada. Portanto, quando for utilizada para a instalação do Django, instalará o mesmo dentro do ambiente venv. Nota-se, que após a ativação do ambiente venv o comando python (ao invés de python 3.6.3) será a referência usada para o Python e pip (ao invés de pip3.6) será a referência para a instalção de pacotes. Para desativar o ambiente venv, execute o comando: d e a c t i v a t e Instalação Django Uma vez que todo o ambiente foi preparado, a instalação do Django é simples e direta. Com o ambiente venv ativado, execute:

54 42 pip i n s t a l l django Figura A.7: Instalação Django Tudo pronto, agora podemos começar a criação do nosso Painel de Automação. Retorne ao capítulo 3.

Curso online de. Formação em Front-End. Plano de Estudo

Curso online de. Formação em Front-End. Plano de Estudo Curso online de Formação em Front-End Plano de Estudo Descrição do programa O Programa de Desenvolvimento Web lhe oferece conhecimentos para desenvolver habilidades necessárias para se tornar um Desenvolvedor

Leia mais

Curso Online de E-commerce. Plano de Estudo

Curso Online de E-commerce. Plano de Estudo Curso Online de E-commerce Plano de Estudo Descrição do programa O programa oferece metodologias e técnicas necessárias para a implementação de soluções web baseadas no CMS para o suporte, estratégias

Leia mais

10º ENTEC Encontro de Tecnologia: 28 de novembro a 3 de dezembro de 2016 ESTUDO VIRTUAL: AMBIENTE DE ENSINO E APRENDIZAGEM ONLINE

10º ENTEC Encontro de Tecnologia: 28 de novembro a 3 de dezembro de 2016 ESTUDO VIRTUAL: AMBIENTE DE ENSINO E APRENDIZAGEM ONLINE ESTUDO VIRTUAL: AMBIENTE DE ENSINO E APRENDIZAGEM ONLINE Paulo Eduardo Ap. M. dos Santos 1 ; Vitor Panuci 2 ; José Roberto Almeida 3 1,2,3 UNIVERSIDADE DE UBERABA vitorpanuci@gmail.com; jose.almeida@uniube.br

Leia mais

Aula 17 Introdução ao jquery

Aula 17 Introdução ao jquery Aula 17 Introdução ao jquery jquery é uma biblioteca JavaScript criada por John Resig e disponibilizada como software livre e aberto, ou seja, de emprego e uso regido segundo licença conforme as regras

Leia mais

Programação para Web

Programação para Web Colégio Estadual João Manoel Mondrone Ensino Fundamental, Médio, Profissional e Norm Técnico em Informática Programação para Web Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com O que é a COMUNICAÇÃO?

Leia mais

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP Introdução Nesta disciplina aprenderemos HTML CSS JavaScript Jquery PHP HTML é a abreviatura de HyperText Mark-up Language. O HTML foi inventado em 1990, por um cientista chamado Tim Berners-Lee. A finalidade

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação

Leia mais

Globo Photo Documentation

Globo Photo Documentation Globo Photo Documentation Versão 0.0.1 Gilson Filho 09/06/2014 Sumário 1 Documentação: 3 1.1 Arquitetura................................................ 3 1.2 Instalação.................................................

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA

Leia mais

Tutorial Ambiente, instalação e começando um novo projeto Django

Tutorial Ambiente, instalação e começando um novo projeto Django Tutorial Ambiente, instalação e começando um novo projeto Django Vamos começar com Python Primeiro, vamos falar um pouco sobre o que o Python é. Python é uma linguagem de programação muito popular que

Leia mais

INTRODUÇÃO A SISTEMAS OPERACIONAIS

INTRODUÇÃO A SISTEMAS OPERACIONAIS INTRODUÇÃO A SISTEMAS OPERACIONAIS Prof. Me. Hélio Esperidião DEFINIÇÃO DE SISTEMA OPERACIONAL. O sistema operacional é uma camada de software colocada sobre o hardware para gerenciar todos os componentes

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB INTRODUÇÃO A PROGRAMAÇÃO PARA WEB PROF. ME. HÉLIO ESPERIDIÃO Navegador O navegador também conhecido como web browser é um programa que habilita seus usuários a interagirem com documentos hospedados em

Leia mais

Desenvolvedor Android: Avançado. Plano de Estudo

Desenvolvedor Android: Avançado. Plano de Estudo Desenvolvedor Android: Avançado Plano de Estudo Descrição do programa A Certificação Android fornece as ferramentas necessárias para projetar e implementar aplicativos para dispositivos Android, com base

Leia mais

Aula 11 Introdução ao Java Script

Aula 11 Introdução ao Java Script Aula 11 Introdução ao Java Script Java Script é uma linguagem que permite trabalhar com a Lógica em páginas escritas em HTML (HiperText Mark-up Language). As páginas HTML podem ser escritas utilizando-se

Leia mais

O CMS JOOMLA! UM GUIA PARA INICIANTES

O CMS JOOMLA! UM GUIA PARA INICIANTES O CMS JOOMLA! UM GUIA PARA INICIANTES 25/04/2016 Daniel Picon dpicon@sc.usp.br 1 INTRODUÇÃO REDE DE COMPUTADORES E INTERNET O que acontece quando tentamos acessar um site da internet? Computadores se comunicam

Leia mais

Integração com o Ambiente Virtual de Aprendizagem Moodle

Integração com o Ambiente Virtual de Aprendizagem Moodle Integração com o Ambiente Virtual de Aprendizagem Moodle Sumário 1. Apresentação... 3 1.1. O Moodle... 3 1.2. Objetivo da integração... 3 1.3. Recursos da integração... 3 2. plugins de integração no Moodle...

Leia mais

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

Leia mais

Programação para Internet I

Programação para Internet I Programação para Internet I Aula 04 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Unidade I - Conceitos básicos sobre

Leia mais

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior Introdução a Web Programação para a Internet Prof. Vilson Heck Junior Introdução Quer ter idéias? Quer vender algo? Talvez comprar? A Web é uma forma universal de comunicação, na qual você pode participar.

Leia mais

AULA EXPOSITIVA SOBRE: CONCEITOS E IMPLEMENTAÇÃO DE FIREWALL, VPN E SSH (REDES PRIVADAS E SERVIÇOS DE ACESSO REMOTO)

AULA EXPOSITIVA SOBRE: CONCEITOS E IMPLEMENTAÇÃO DE FIREWALL, VPN E SSH (REDES PRIVADAS E SERVIÇOS DE ACESSO REMOTO) AULA EXPOSITIVA SOBRE: CONCEITOS E IMPLEMENTAÇÃO DE FIREWALL, VPN E SSH (REDES PRIVADAS E SERVIÇOS DE ACESSO REMOTO) Wanderléa Teixeira Gnoato Lodi gnoatow@yahoo.com.br 10 de Outubro de 2011 Roteiro de

Leia mais

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli Técnico em Informática Web JavaScript Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

INTRODUÇÃO ÀS APLICAÇÕES PARA WEB

INTRODUÇÃO ÀS APLICAÇÕES PARA WEB INTRODUÇÃO ÀS APLICAÇÕES PARA WEB Material cedido pelo prof. Francisco Dantas Nobre Neto Professor: Rhavy Maia Guedes E-mail: rhavy.maia@gmail.com, rhavymg.wordpress.com Sites vs Aplicativos Web Aplicativos

Leia mais

Dreamweaver CC_15x21.indd 1 06/04/ :04:22

Dreamweaver CC_15x21.indd 1 06/04/ :04:22 Dreamweaver CC_15x21.indd 1 06/04/2015 11:04:22 SUMÁRIO INTRODUÇÃO... 3 CAPÍTULO 1 Iniciando e conhecendo o Dreamweaver... 8 Interfaces... 21 Criando e configurando sites... 22 CAPÍTULO 2 Criando arquivos...

Leia mais

Introdução ao Zend Framework 2

Introdução ao Zend Framework 2 Introdução ao Zend Framework 2 #laryssa-muniz Graduada em Telemática - Estácio de Sá Especialista em Engenharia de Software - UECE Mestranda em Ciências da Computação - UECE Analista de Sistemas - Brain

Leia mais

Pré-requisitos: Conhecimentos de informática gerencial e lógica de programação.

Pré-requisitos: Conhecimentos de informática gerencial e lógica de programação. CURSO DESENVOLVEDOR FRONT-END HTML5/CSS3/JavaScript Objetivo: Este curso visa introduzir o aluno do mundo do desenvolvimento Web, com aplicabilidade, ensino e capacitação nas principais linguagens de diagramação

Leia mais

Protocolos e Serviços de Redes

Protocolos e Serviços de Redes Protocolos e Serviços de Redes Redes de Computadores Charles Tim Batista Garrocho Instituto Federal de São Paulo IFSP Campus Campos do Jordão garrocho.ifspcjo.edu.br/rdc charles.garrocho@ifsp.edu.br Técnico

Leia mais

Ciências da Computação Disciplina:Computação Gráfica

Ciências da Computação Disciplina:Computação Gráfica Ciências da Computação Disciplina:Computação Gráfica Professora Andréia Freitas 2013 7 semestre Aula 06 MEMORIA, F. Design para a Internet. 1ª Edição. Rio de Janeiro: Campus, 2005. ALVES, W. P. Crie, anime

Leia mais

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo Introdução Geral Prof. Vicente Paulo de Camargo Web e Internet A Internet é uma rede de computadores que conecta milhões de computadores Se comunicam através do protocolos específicos A Web é uma forma

Leia mais

Tecnologias de Desenvolvimento de Páginas web

Tecnologias de Desenvolvimento de Páginas web Tecnologias de Desenvolvimento de Páginas web HTML DHTML CSS Javascript Visual Basic Script Java HTML Hypertext Markup Language HTML Hypertext Markup Language Linguagem com a qual se definem as páginas

Leia mais

Recomenda-se a leitura completa deste documento antes de iniciar o desenvolvimento do website.

Recomenda-se a leitura completa deste documento antes de iniciar o desenvolvimento do website. Universidade Federal de Uberlândia Faculdade de Computação Curso de Sistemas de Informação Projeto de Programação para Internet Prof. Daniel A Furtado Descrição Geral Desenvolver um website para uma imobiliária

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com BENEFÍCIOS MODELO OSI Menor complexidade; Interfaces padronizadas; Interoperabilidade entre

Leia mais

Curso online de Fundamentos em Android. Plano de Estudo

Curso online de Fundamentos em Android. Plano de Estudo Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos

Leia mais

Protocolos e Serviços de Redes

Protocolos e Serviços de Redes Protocolos e Serviços de Redes Redes de Computadores Charles Tim Batista Garrocho Instituto Federal de Minas Gerais IFMG Campus Ouro Branco garrocho.github.io charles.garrocho@ifmg.edu.br Sistemas de Informação

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator Ederson Evaristo Jantsch Orientador: Marcel Hugo 09/07/2002 Roteiro Introdução Aplicação multicamadas Tecnologias

Leia mais

ATENÇÃO O TCP/IP não é um protocolo. TCP/IP é um conjunto de diversos protocolos em 04 camadas próprias que se relaciona com o modelo OSI.

ATENÇÃO O TCP/IP não é um protocolo. TCP/IP é um conjunto de diversos protocolos em 04 camadas próprias que se relaciona com o modelo OSI. PROTOCOLOS DE TRANSMISSÃO DE DADOS PROTOCOLO TCP/IP Trata-se da sigla da palavra inglesa Transmission Control Protocol / Internet Protocol ou, simplesmente Protocolo de Controle de Transmissão / Protocolo

Leia mais

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Especificação da Projeto de Laboratório de Programação Parte 1 Salvador, 2009 Universidade Federal da Bahia Instituto

Leia mais

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Desenvolvimento Web Quais os ambientes operacionais? Servidor Web Servidor de Aplicações Navegador Desenvolvimento

Leia mais

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 3 4 5 Conceito das RIA Desafios Atuais Características das RIA Considerações e Benefícios Situação

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Escola Maria Eduarda Ramos de Barros Curso técnico em redes de computadores Carpina - PE Roteiro Aplicações de Rede Transporte

Leia mais

5 Infraestrutura de TI

5 Infraestrutura de TI Hardware consiste na tecnologia para processamento computacional, armazenamento, entrada e saída de dados. Ex: grandes mainframes, servidores, computadores pessoais, laptops e dispositivos móveis. 1 2

Leia mais

A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br

A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br Surgimento da WEB e HTML Início da década de 90 HTML (acrônimo para a expressão HyperText Markup Language, que significa

Leia mais

Apps na prática 1 Aviso Legal: Este material foi produzido e desenvolvido pela Fábrica de Aplicativos S.A para o curso presencial e online.

Apps na prática 1 Aviso Legal: Este material foi produzido e desenvolvido pela Fábrica de Aplicativos S.A para o curso presencial e online. Apps na prática 1 Índice O que é um app? 03 Sistemas operacionais 09 O que precisa para fazer um aplicativo? 12 Inspirações e casos de sucesso da Fábrica 15 Apresentação da Fábrica 19 Como estruturar o

Leia mais

Preparação AV3 Fundamentos de Redes de Computadores

Preparação AV3 Fundamentos de Redes de Computadores Preparação AV3 Fundamentos de Redes de Computadores 1 - Em uma rede de computadores existem dispositivos responsáveis por distribuir as informações por toda a rede. Quando falamos de dispositivos que atuam

Leia mais

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML 1 INTRODUÇÃO TECNOLOGIA WEB Começaremos desvendando o poder do desenvolvimento de aplicações baseadas na Web com a XHTML (Extensible HyperText Markup

Leia mais

Capítulo 7. A camada de aplicação

Capítulo 7. A camada de aplicação Capítulo 7 A camada de aplicação slide 1 2011 Pearson Prentice Hall. Todos os direitos reservados. Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, Pearson Education-Prentice Hall,

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML Prof. Msc. Hélio Esperidião NAVEGADOR O navegador também conhecido como web browseré um programa que habilita seus usuários a interagirem com documentos

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

Modelo de Camadas. Redes de Computadores

Modelo de Camadas. Redes de Computadores Modelo de Camadas Redes de Computadores Sumário Visão Geral de uma Rede de Computadores Protocolos Modelo de Camadas Porque utilizar Tipos de Modelos de Referência Modelo de Referência ISO/OSI Histórico

Leia mais

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 104/360

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 104/360 1 DEMAIS SIMULADOS NO LINK ABAIXO CLIQUE AQUI REDE SOCIAL SIMULADO 104/360 INFORMÁTICA INSTRUÇÕES TEMPO: 30 MINUTOS MODALIDADE: CERTO OU ERRADO 30 QUESTÕES CURTA NOSSA PÁGINA MATERIAL LIVRE Este material

Leia mais

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP Prof. M.e Helber Wagner da Silva helber.silva@ifrn.edu.br 1 Arquiteturas de Protocolos de Redes de Computadores Rede de computadores Sistema

Leia mais

PARA QUEM É ESTE CURSO?

PARA QUEM É ESTE CURSO? PARA QUEM É ESTE CURSO? Este curso é destinado para pessoas com pouco ou nenhum conhecimento na área de desenvolvimento web, e que querem aprender a criar sites otimizados e sistemas web. VOCÊ QUER APRENDER

Leia mais

Tutorial da ferramenta de prototipação Pencil Project (Versão resumida) Prof. Moacyr Franco Neto

Tutorial da ferramenta de prototipação Pencil Project (Versão resumida) Prof. Moacyr Franco Neto Tutorial da ferramenta de prototipação Pencil Project (Versão resumida) Prof. Moacyr Franco Neto Versão 1.0.0 1 ÍNDICE Sumário INTRODUÇÃO... 3 PRINCIPAIS CARACTERÍSTICA DO PENCIL PROJECT... 3 COMO BAIXAR...

Leia mais

Redes de Computadores

Redes de Computadores Instituto Superior Politécnico de Ciências e Tecnologia Redes de Computadores Prof Pedro Vunge I Semestre de 2017 SUMÁRIO I - Introdução às Redes de Computadores 1.4 Principais componentes de uma rede

Leia mais

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE Fagner Jefferson de Araújo Silva; Whasley Sousa Cardoso; Marcelo Portela Sousa. Instituto Federal de Educação, Ciência e Tecnologia da Paraíba

Leia mais

Usando VNC para instalar o CallManager da Cisco em um servidor remoto

Usando VNC para instalar o CallManager da Cisco em um servidor remoto Usando VNC 3.3.7 para instalar o CallManager da Cisco em um servidor remoto Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Use o VNC com CallManager da Cisco Preparação do

Leia mais

Redes de Computadores I Seminário Novas Tecnologias em Redes HTML5. Jessica da Silva Hahn Letícia Aparecida Coelho

Redes de Computadores I Seminário Novas Tecnologias em Redes HTML5. Jessica da Silva Hahn Letícia Aparecida Coelho Redes de Computadores I Seminário Novas Tecnologias em Redes HTML5 Jessica da Silva Hahn Letícia Aparecida Coelho Internet HTTP Dois métodos de requisição HTTP são os mais utilizados: GET e POST Outros

Leia mais

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS Prof. Dr. Daniel Caetano 2013-1 Objetivos Apresentar o que é uma Aplicação Rica para Internet Contextualizar tais aplicações na Web e os desafios

Leia mais

Programação para Internet

Programação para Internet Universidade Federal de Uberlândia Faculdade de Computação Programação para Internet Curso de Sistemas de Informação Prof. Dr. Daniel A. Furtado Módulo 1 Introdução à Programação para Internet 2 Conteúdo

Leia mais

AULA 1 INTRODUÇÃO AO JAVA

AULA 1 INTRODUÇÃO AO JAVA AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede

Leia mais

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM Rafael Marisco Bertei 2, Vinícius Maciel 3, Josué Toebe 4 1 Projeto

Leia mais

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19 ÍNDICE GERAL SOBRE O LIVRO XI 1 INTRODUÇÃO 1 1.1 GERAÇÃO DIGITAL NATIVE 2 1.2 ALGORITMIA E PROGRAMAÇÃO DE COMPUTADORES 2 1.3 COMPUTAÇÃO EM NUVEM 4 1.4 PROGRAMAÇÃO DE DISPOSITIVOS MÓVEIS 6 1.5 PROGRAMAÇÃO

Leia mais

Programação Shell Script: como dominar seu terminal

Programação Shell Script: como dominar seu terminal Programação Shell Script: como dominar seu terminal 14 de Outubro de 2008 1 2 Sistemas Operacionais Shell 3 4 5 O que é Shell? Programa interpretador de instruções Por que utilizar o Shell? Facilidade

Leia mais

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias 1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo

Leia mais

Assunto 2 - Software. Prof. Miguel Damasco

Assunto 2 - Software. Prof. Miguel Damasco Assunto 2 - Software UD 1 - FUNDAMENTOS DE INFORMÁTICA Prof. Miguel Damasco a. Gerações dos Softwares 1ª Geração: Linguagem de máquina notação numérica binária ou hexadecimal, linguagem de baixo nível,

Leia mais

Lista de exercícios - 1º bimestre 2016 REDES

Lista de exercícios - 1º bimestre 2016 REDES Lista de exercícios - 1º bimestre 2016 REDES Jean Nicandros Stragalinos Neto. Prontuário: 1616251. Curso: ADS 2º Módulo. 1) Desenhe duas redes com 7 e 8 computadores e defina a configuração IP de cada

Leia mais

Scopia Desktop Client do CFN

Scopia Desktop Client do CFN Scopia Desktop Client do CFN Este manual explica como preparar seu cliente Scopia Desktop para usá-lo pela primeira vez. O Scopia Desktop Client não precisa de configurações para ser usado, mas existem

Leia mais

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB INTRODUÇÃO À INTERNET E À WORLD WIDE WEB CURSO TÉCNICO DE INFORMÁTICA MODALIDADE SUBSEQÜENTE DESENVOLVIMENTO WEB I PROF. ALEXANDRO DOS SANTOS SILVA 1 1 SUMÁRIO Conceitos básicos Histórico Principais modelos

Leia mais

Curso online de Aplicações. Híbridas. Plano de Estudo

Curso online de Aplicações. Híbridas. Plano de Estudo Curso online de Aplicações Híbridas Plano de Estudo Descrição do programa O programa de aplicações híbridas tem um enfoque em desenvolvimento para dispositivos móveis que combina os pontos fortes do desenvolvimento

Leia mais

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016 Frankley Gustavo F. Mesquita Tamiris Souza Fonseca 27 de junho de 2016 Sumário 1 2 3 4 5 6 7 8 O padrão Web foi desenvolvido pelo Laboratório Europeu de Física de Partículas (CERN - European Particle Physics

Leia mais

Informática básica. Professor: Francisco Ary

Informática básica. Professor: Francisco Ary Informática básica Professor: Francisco Ary O que vimos na ultima aula: O que é informática? O que é um computador? Evolução; Computadores eletrônicos: Válvulas; Transistor; Circuito integrado;e Microprocessador;

Leia mais

UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues

UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues 0793 Scripts CGI e folhas de estilo Objectivos da UFCD: Desenvolver páginas para a Web, através de scripts CGI e folhas de estilo. UFCD

Leia mais

Sistema de Informação e Coordenação - SIC

Sistema de Informação e Coordenação - SIC Sistema de Informação e Coordenação - SIC Tópicos 1- Sistema de Informação e Coordenação - SIC 2- Modelo 3- Tecnologias Usadas 4- Projeto Estrutura 5- Fluxo de Atividades 1- Sistema de Informação e Coordenação

Leia mais

STD SERVIÇO DE BACKUP EM NUVEM

STD SERVIÇO DE BACKUP EM NUVEM Select Soluções Manual de Instalação Windows SBackup STD SERVIÇO DE BACKUP EM NUVEM Sumário 1. REQUERIMENTOS DE HARDWARE E SOFTWARE... 3 1.1. SOFTWARE... 3 2. PRIMEIROS PASSOS... 4 3. DOWNLOAD E INSTALAÇÃO

Leia mais

Fundamentos de Lógica e Algoritmos. Aula 3.1 Introdução a Programação. Prof. Dr. Bruno Moreno

Fundamentos de Lógica e Algoritmos. Aula 3.1 Introdução a Programação. Prof. Dr. Bruno Moreno Fundamentos de Lógica e Algoritmos Aula 3.1 Introdução a Programação Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br O objetivo dessa disciplina é aprender uma linguagem de programação?? 2 Objetivo da

Leia mais

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Ementa do Curso Conceitos básicos de programação Orientação a objetos Linguagem Python Simulação com o NS-3 Programação

Leia mais

Apostila - Desenvolvimento web com PHP

Apostila - Desenvolvimento web com PHP José Roberto Madureira Junior Adaní Cusin Sacilotti Reginaldo Sacilotti Apostila - Desenvolvimento web com PHP Primeira Edição São Paulo 2017 Sumário 1 INTRODUÇÃO AO PHP... 1 1.1 PREPARAÇÃO DO AMBIENTE

Leia mais

Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E.

Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E. Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E. J O S É A N TÔ N I O D A C U N H A Web Page HTTP No início a web, era

Leia mais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT v1.1 INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT AULA 7 CRIANDO INTERAÇÕES COM JAVASCRIPT (PARTE 2) Eder Franco @ FPF Tech The road so far... JavaScript Desenvolvida para criar interações

Leia mais

Facilitando sua vida com

Facilitando sua vida com Facilitando sua vida com Larissa Carvalho Estudante de Sistemas para Internet. AGENDA Apresentação Front-End X Back-End, quais as diferenças? Introdução básica sobre HTML e CSS O que são Pré-Processadores

Leia mais

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores Fundamentos de Sistemas Operacionais de Arquitetura Aberta CST em Redes de Computadores Introdução Computadores Computadores são compostos, basicamente, de CPU, memória e dispositivos de entrada e saída

Leia mais

Informática para Concursos

Informática para Concursos Informática para Concursos Professor: Thiago Waltz Ferramentas Multimídia a) Ferramentas Multimídia Multimídia: Multimídia é a combinação, controlada por computador, de pelo menos um tipo de mídia estática

Leia mais

web marketing 2.0 Publicidade e Marketing Aula 2

web marketing 2.0 Publicidade e Marketing Aula 2 web marketing 2.0 Publicidade e Marketing Aula 2 hoje no menu requisitos para ter um site tipos de ficheiros indispensáveis introdução ao wordpress hoje no menu requisitos para ter um site tipos de ficheiros

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Aplicações Móveis Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Browser é um programa desenvolvido para permitir a navegação pela web, capaz de processar diversas linguagens, como HTML, ASP, PHP.

Browser é um programa desenvolvido para permitir a navegação pela web, capaz de processar diversas linguagens, como HTML, ASP, PHP. Browser é um programa desenvolvido para permitir a navegação pela web, capaz de processar diversas linguagens, como HTML, ASP, PHP. Sua interface vai variar de acordo com a marca, onde quem escolhe é o

Leia mais

Dreamweaver CS5 -5- CAPÍTULO 1... Iniciando e conhecendo o dreamweaver...8 Interfaces...23 Criando e confi gurando sites...24 Exercícios...

Dreamweaver CS5 -5- CAPÍTULO 1... Iniciando e conhecendo o dreamweaver...8 Interfaces...23 Criando e confi gurando sites...24 Exercícios... DREAMWEAVER CS5 INTRODUÇÃO O Dreamweaver CS5 é um editor avançado de páginas para Internet, pois possui ferramentas para usuários que não são familiarizados com as linguagens HTML, Java e PHP. Com o Dreamweaver

Leia mais

Sérgio Koch Van-Dall

Sérgio Koch Van-Dall PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS

Leia mais

Com esse novo menu será possível suportar o novo padrão de aplicações desenvolvidas em HTML5 através do Framework HTML.

Com esse novo menu será possível suportar o novo padrão de aplicações desenvolvidas em HTML5 através do Framework HTML. Menu HTML Objetivo O menu HTML tem como principal objetivo atender os requisitos de evolução tecnológica dos softwares da linha Datasul em alternativa ao Flex, sobretudo a redução da dependência de complementos

Leia mais

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O A P L I C A Ç Õ E S M O N O L Í T I C A S Na época dos computares independentes um aplicativo era desenvolvido para ser usado em uma única

Leia mais

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO Edilene de Fátima Vetorato 1, Osvaldo Cesar Pinheiro de Almeida 2 1 Fatec, Botucatu, SP, Brasil. E-mail: edilenefv@hotmail.com

Leia mais

Modelo OSI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação

Modelo OSI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação Modelo OSI Marcelo Assunção 10º13 Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos Disciplina: Redes de Comunicação 2013/2014 Índice Modelo OSI Open System Interconnection (OSI)

Leia mais

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID Roteiro Introdução Fundamentação teórica Desenvolvimento Conclusões Introdução Plataformas

Leia mais

Nota de Aplicação: Utilização do Servidor Web MS IIS com BlueWave. Sumário

Nota de Aplicação: Utilização do Servidor Web MS IIS com BlueWave. Sumário Nota de Aplicação NAP161 Utilização do Servidor Web MS IIS com BlueWave Sumário 1. Introdução... 2 2. Descrição... 3 3. Definição da Arquitetura de Referência... 4 3.1 Material Utilizado no Exemplo...

Leia mais

Introdução a Computação em Nuvem

Introdução a Computação em Nuvem Introdução a Computação em Nuvem Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia

Leia mais

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 32/360

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 32/360 1 DEMAIS SIMULADOS NO LINK ABAIXO CLIQUE AQUI REDE SOCIAL SIMULADO 32/360 INFORMÁTICA INSTRUÇÕES TEMPO: 30 MINUTOS MODALIDADE: CERTO OU ERRADO 30 QUESTÕES CURTA NOSSA PÁGINA MATERIAL LIVRE Este material

Leia mais