• Nenhum resultado encontrado

Orientador Informal. Co-orientador(es) Informal(is)

N/A
N/A
Protected

Academic year: 2021

Share "Orientador Informal. Co-orientador(es) Informal(is)"

Copied!
8
0
0

Texto

(1)

RELAT ´ORIO FINAL DE TRABALHO DE CONCLUS ˜AO DE CURSO Discente: Lu´ıs Gustavo Spern Barreto

Curso: An´alise e Desenvolvimento de Sistemas E-mail: gustavosbarreto@gmail.com Enderec¸o: Rua Trˆes, 490 - Pestano - Pelotas - RS

CEP: 96071-310 Fone(s): (53) 9139-7171

T´ıtulo

StandaloneApp - Uma distribuic¸˜ao Linux para Sistemas Embarcados

Orientador Informal

Prof. Me. Angelo Gonc¸alves da Luz

Co-orientador(es) Informal(is)

Prof. Esp. Gladimir Ceroni Catarino

INTRODUC¸ ˜AO

A maioria das aplicac¸˜oes para sistemas embarcados existentes hoje em dia funcionam em ambientes baseados no sistema operacional Windows, da Microsoft, que ´e um software propriet´ario onde ´e necess´ario adquirir uma licenc¸a para utiliza-lo, aumentando assim o custo final da soluc¸˜ao a ser empregada.

Al´em disso, o Windows ´e um sistema operacional voltado para uso em computadores pessoais com diversos aplicativos para uso cotidiano do computador como editor de texto, editor de imagem, reprodutor de m´usica e v´ıdeo, entre outros. Tal gama de aplicativos tem um empacto significativo no uso dos recursos computacionais como armazenamento em disco e uso de mem´oria RAM, aumentando ainda mais o custo da soluc¸˜ao, j´a que esses aplicativos n˜ao s˜ao necess´arios na maioria das soluc¸˜oes para sistemas embarcados.

Um sistema operacional embarcado tem como principal caracter´ıstica a execuc¸˜ao de uma ´unica aplicac¸˜ao em um ambiente restrito, aonde o usu´ario n˜ao consegue acessar outras func¸˜oes b´asicas contidas em um sistema operacional baseado em Windows, como executar outros aplicativos, navegar no sistema de arquivos, fechar ou minimizar aplicativos.

Este presente trabalho tem como objetivo desenvolver uma distribuic¸˜ao Linux para sistemas embarcados e uma plataforma de gerenciamento remoto e implantac¸˜ao de aplicativos nos dispositivos instalados com a distribuic¸˜ao StandaloneApp.

(2)

Os objetivos espec´ıficos deste trabalho s˜ao: • Analisar os requisitos;

• Verificar a existˆencia de sistemas similares;

• Pesquisar as diferentes partes que comp˜oem um sistema operacional Linux; • Identificar o protocolo de comunicac¸˜ao entre processos mais adequado a soluc¸˜ao; • Elaborar o banco de dados para a plataforma de gerenciamento remoto;

• Desenvolver o instalador para a distribuic¸˜ao;

• Construir a distribuic¸˜ao utilizando a ferramenta Live Build;

• Incluir na distribuic¸˜ao o servic¸o de comunic¸˜ao entre o sistema operacional e a plataforma de gerenciamento remoto;

• Desenvolver um browser baseado em WebKit para carregar aplicac¸˜oes feitas em HTML; • Desenvolver o Web Service da plataforma de gerenciamento remoto;

• Criar a interface Web para a plataforma de gerenciamento remoto; • Gerar uma imagem ISO de instalac¸˜ao da distribuic¸˜ao.

REFERENCIAL TE ´ORICO / ESTADO DA ARTE

Durante a concepc¸˜ao e desenvolvimento deste trabalho foi realizada uma pesquisa para descobrir sistemas si-milares a proposta do mesmo. Concluiu-se que o sistema que mais assemelha-se a proposta ´e o Resion.io que ´e um sistema operacional para placas embarcadas como Raspberry Pi e Beaglebone que s˜ao arquiteturas ARM, enquanto o trabalho proposto visa suportar somente a plataforma x86.

(3)

Figura 1: Vis˜ao geral da plataforma Resion.io [Team 2014].

Enquanto a plataforma do Resion.io utiliza-se da integrac¸˜ao com um servidor de controle de vers˜ao (GIT) para gerenciar a implantac¸˜ao de aplicativos nos dispositivos, a plataforma do StandaloneApp faz uso de uma interface Web para esta finalidade, tornando assim esse processo menos complicado de ser executado. A figura 2 apresenta uma vis˜ao geral da plataforma do StandaloneApp.

Figura 2: Vis˜ao Geral da Plataforma.

Os seguintes temas e tecnologias est˜ao envolvidos no desenvolvimento deste trabalho: Linux, que ´e base da distruic¸˜ao StandaloneApp, Live Build que foi utilizado para gerar a distribuic¸˜ao, conceitos de Sistemas Embar-cados, arquitetura baseada em Microservices na plataforma Web utilizando JSON-RPC transportado por meio de Websockets para comunicac¸˜ao dos servic¸os.

(4)

Linux

O Linux ´e um sistema operacional de c´odigo aberto [Organization 2015] criado por Linus Torvalds [Torvalds 1991]. Atualmente ´e mantido por milhares de programadores de todo o mundo e grandes empresas de tecnologia como IBM, HP, Google e Oracle.

Live Build

O Live Build ´e uma ferramenta criada pelo Projeto Debian para gerac¸˜ao de distribuic¸˜oes Linux [Project 2013]. Essa ferramenta cont´em uma s´erie de scripts que utilizam configurac¸˜oes para automatizar e configurar todos os aspectos da construc¸˜ao de uma distribuic¸˜ao.

Sistemas Embarcados

Sistemas operacionais embarcados s˜ao sistemas dedicados a tarefas espec´ıficas [White 2011], o que os difere dos sistemas operacionais convencionais para computadores pessoais, podendo assim reduzir custos com recursos computacionais. [Ganssle 2012]

Microservices

Microservices ´e um estilo de arquitetura de software [Fowler 2014]. Diferentemente de um software monol´ıtico onde toda a aplicac¸˜ao ´e executada em ´unico processo, a arquitetura baseada em Microservices tem como prin-cipal caracter´ıstica a separac¸˜ao da aplicac¸˜ao em v´arios processos separados, trocando informac¸˜oes entre s´ı utili-zando um mecanismo leve de comunicac¸˜ao entre processos como JSON-RPC.

JSON-RPC

JSON-RPC ´e um protocolo similar ao XML-RPC para chamada de procedimento remoto codificado em JSON (JavaScript Object Notation). Sua principal diferenc¸a do XML-RPC/SOAP ´e que ele permite comunicac¸˜ao bidirecional entre o servidor e cliente, onde cada um pode chamar procedimentos da outra ponta ou enviar notificac¸˜oes. [JSON-RPC.org 2012]

Websocket

O Websocket ´e um protocolo para comunicac¸˜ao bidirecional sobre um socket do tipo Transmission Control Protocol (TCP) [Foundation 2011], ou seja, ´e apenas uma camada sobre um socket TCP, ficando na camada de aplicac¸˜ao a responsabilidade de organizar as informac¸˜oes que s˜ao trocadas entre o cliente e o servidor, assim como o HTTP ´e utilizado sobre o protocolo TCP. Originalmente concebido para comunicac¸˜ao entre o servidor e cliente em aplicac¸˜oes Web, seu uso estendeu-se para as mais variadas aplicac¸˜oes que necessitam de um protocolo para comunicac¸˜ao entre processos.

PROJETO DE SISTEMA

O Projeto de Sistema apresenta o diagrama de Caso de Uso gerado a partir da observac¸˜ao dos requisitos funcio-nais e n˜ao funciofuncio-nais, bem como algumas telas da plataforma Web.

Diagrama de Caso de Uso

O Diagrama de Caso de Uso (Figura 3) detalha a interac¸˜ao do Usu´ario e o Administrador com a plataforma Web e a distribuic¸˜ao.

(5)

Figura 3: Diagrama de Caso de Uso.

Tela de login da plataforma Web

A Figura 4 mostra a tela de login da plataforma Web. O login ´e necess´ario para gerenciar os dispositivos e implantar aplicac¸˜oes.

(6)

Tela de aplicac¸˜oes da plataforma Web

A Figura 5 mostra a tela das aplicac¸˜oes dispon´ıveis para implantac¸˜ao nos dispositivos. Uma nova aplicac¸˜ao pode ser enviada atrav´es do bot˜ao Upload New Application.

Figura 5: Tela de aplicac¸˜oes da plataforma Web.

LEVANTAMENTO DE REQUISITOS

A t´ecnica utilizada para fazer o levantamento de requisitos do sistema foi a observac¸˜ao.

REQUISITOS FUNCIONAIS / N ˜AO FUNCIONAIS

Os requisitos funcionais e n˜ao funcionais do presente trabalho s˜ao: • A distribuic¸˜ao deve suportar a instalac¸˜ao por USB ou CD-ROM

• A distruibuic¸˜ao deve executar uma ´unica aplicac¸˜ao definida pela plataforma de gerenciamento remoto; • A distribuic¸˜ao deve oferecer um ambiente gr´afico que n˜ao permita que o usu´ario execute outra aplicac¸˜ao a

n˜ao ser a definida pela plataforma de gerenciamento remoto;

• O ambiente gr´afico da distribuic¸˜ao n˜ao deve permitir que o usu´ario altere qualquer configurac¸˜ao do sistema operacional instalado, como configurac¸˜oes de rede, volume de som, mapa de teclas, acelerac¸˜ao do mouse, entre outros;

• A distruic¸˜ao deve suportar a execuc¸˜ao de aplicac¸˜oes feitas em Java ou HTML

• A interface Web da plataforma de gerenciamento remoto deve ser compat´ıvel com os navegadores Chrome e Firefox;

(7)

• O instalador da distribuic¸˜ao deve funcionar de forma automatizada, ou seja, sem intervenc¸˜ao do usu´ario; • A comunicac¸˜ao entre o servic¸o de comunicac¸˜ao do sistema operacional e plataforma de gerenciamento

remoto deve ser criptografado;

• O sistema operacional deve funcionar em modo live, ou seja, alterac¸˜oes feitas em arquivos do sistema devem ser descartadas ao desligar ou reiniciar o computador;

• A distribuic¸˜ao deve tentar obter um enderec¸o de IP na rede automaticamente;

• O sistema de gerac¸˜ao da distribuic¸˜ao deve ser executado em um ambiente paravirtualizado, evitando assim a contaminac¸˜ao do sistema host com bibliotecas de compilac¸˜ao;

• O acesso a interface Web da plataforma de gerenciamento remoto deve ser protegido com login; • A interface Web da plataforma de gerenciamento remoto deve exibir uma lista com os computadores

instalados com a distribuic¸˜ao StandaloneApp;

• A interface Web da platforma de gerenciamento remoto deve suportar o upload de aplicac¸˜oes para serem implantadas automaticamente nos computadores instalados com a distribuic¸˜ao StandaloneApp;

• A interface Web da plataforma de gerenciamento remoto deve permitir a configurac¸˜ao o desligamento programado de um ou mais computadores instalados com a distribuic¸˜ao StandaloneApp;

• A interface Web da plataforma de gerenciamento remoto deve permitir travar o acesso a um ou mais computadores instalados com a distribuic¸˜ao StandaloneApp.

CRONOGRAMA

Mar Abr Mai Jun Jul Ago Set Out Nov Dez

Elaborar proposta

Levantar requisitos

Modelar banco de dados

Elaborar telas

Criar um container de compilac¸˜ao

Desenvolver o servic¸o de comunicac¸˜ao do SO

Desenvolver o Web Service

Escrever Relat´orio Final

Desenvolver a interface Web da plataforma

Construir a distribuic¸˜ao

Desenvolver o instalador

Gerar o ISO de instalac¸˜ao

Escrever Artigo

Correc¸˜ao e testes

(8)

Referˆencias

[Foundation 2011] Foundation, M. (2011). Websockets - mdn. Dispon´ıvel em: https://developer.mozilla.org/en/WebSockets. Acesso em: 19/06/2015. [Fowler 2014] Fowler, M. (2014). Microservices. Dispon´ıvel em:

http://martinfowler.com/articles/microservices.html. Acesso em: 22/06/2015.

[Ganssle 2012] Ganssle, J. (2012). The Art of Programming Embedded Systems. Elsevier, 1st edition. [JSON-RPC.org 2012] JSON-RPC.org (2012). specification - json-rpc - trac. Dispon´ıvel em:

http://json-rpc.org/wiki/specification. Acesso em: 21/06/2015.

[Organization 2015] Organization, L. K. (2015). Is linux kernel free software? Dispon´ıvel em: https://www.kernel.org/category/faq.html. Acesso em: 20/06/2015.

[Project 2013] Project, D. L. (2013). Debian live manual. Dispon´ıvel em:

http://live.debian.net/manual/3.x/html/live-manual/toc.en.html. Acesso em: 22/06/2015.

[Team 2014] Team, R. (2014). How it works? — resin.io. Dispon´ıvel em: https://resin.io/how-it-works/. Acesso em: 20/06/2015.

[Torvalds 1991] Torvalds, L. B. (1991). What would you like to see most in minix? Dispon´ıvel em: https://groups.google.com/forum/#!msg/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ. Acesso em: 18/06/2015.

[White 2011] White, E. (2011). Making Embedded Systems: Design Patterns for Great Software. O’Reilly Media, Inc., 1st edition.

Referências

Documentos relacionados

As imagens transferidas para o computador podem ser transferidas de volta ao Cartão SD ou à memória interna da câmera. A visualização das imagens no LCD da câmera só será

(omissis) II – Encontrava-se pacificado o entendimento nesta Corte, no sentido de que a lei acidentária, quando mais benéfica, retroagia apenas para alcançar

In: VI SEMINÁRIO NACIONAL DE PESQUISADORES DA HISTÓRIA DAS COMUNIDADES TEUTO-BRASILEIRAS (6: 2002: Santa Cruz do Sul).. BARROSO, Véra Lúcia

(1976b) mostra que a luminosidade também estimula a exposição da massa cefalopodal do molusco no meio aquático, o que, sem dúvida, favoreceria o processo de infecção, já que

• Não há inflação de alimentos, há inflação, causada por choques cambiais, auxílio emergencial, problemas fiscais e má gestão de estoques públicos;. • O Brasil precisa

Para que isso ocorra, ´e necess´aria a modernizac¸˜ao das redes de transmiss˜ao e distribuic¸˜ao, atrav´es da implantac¸˜ao de sistemas de comunicac¸˜ao bidirecional entre

O estágio de Medicina Interna ficou ligeiramente aquém das minhas expectativas, na medida em que ao ter sido realizado num hospital privado, o grau de autonomia que me

O Plano Municipal de Gestão Integrada de Resíduos Sólidos do município de Pongaí - SP tem como objetivo geral, avaliar os diferentes aspectos do atual sistema de gestão da limpeza