Mudanças entre as edições de "Criação de interface web para o Netkit"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
= Resumo estendido =
+
= Resumo =  
 
 
O Netkit2 é um aplicativo que possibilita criar e realizar experimentos com redes de computadores virtuais. Essas redes podem ser compostas de computadores, switches ethernet e roteadores, os quais são implementados com máquinas virtuais Linux. As funcionalidades de rede existentes no Linux, assim como os aplicativos de rede disponíveis nessa plataforma, podem ser utilizadas nos experimentos criados no Netkit2. Com isso, o Netkit2 se apresenta como um laboratório virtual criado para facilitar o estudo sobre redes de computadores.
 
 
 
Com a atual maneira de se utilizar a ferramenta Netkit2 tem a necessidade de estar utilizando sistema operacional Linux, e ter a ferramenta instalada, fazendo com que muitas vezes dificulte o usuário utilizar tal ferramenta. Em outros sistemas operacionais não é possível usar o Netkit2 diretamente. Como a ferramenta é um software que necessita de instalação na máquina local, o usuário se limita para dar continuidade ao experimento, pois todos os arquivos de configuração, estão somente naquela máquina. Tanto a ferramenta original Netkit quanto a ferramenta na qual o trabalho se baseia que é a Netkit2 são ferramentas de uso restrito para Linux, o que dificulta mais ainda a continuidade do experimento pois não são todos os lugares que você consegue ter acesso a uma máquina Linux.
 
 
 
Uma possível solução para superar as limitações é executar o Netkit2 remotamente em um ou mais servidores de aplicação. Desta maneira você conseguiria utilizar o Netkit2 em outros sistemas operacionais e desta maneira não precisando amarrar a ferramenta com o sistema operacional. Com o acesso remoto as informações não serão armazenadas localmente, pois nenhuma das informações será processada localmente, desta maneira resolveria o problema da continuidade dos experimentos iniciados em uma máquina local. Um outro uso para o Netkit2 seria na utilização de aulas pois conseguiria ter um acesso mais prático aos arquivos de configuração dos alunos, os professores poderiam estar disponibilizando alguns tipos de laboratórios e experimentos, de maneira mais pratica.
 
 
 
Atualmente foi estudado e desenvolvido uma infraestrutura para rodar em um servidor de aplicações, no qual foi o tema do [[Criação_de_uma_infraestrutura_para_execução_remota_do_Netkit|TCC de Ricardo Martins (''Criação de uma infraestrutura para execução remota do Netkit2'')]], defendido no final de 2014. Esse trabalho propôs "''uma extensão para o Netkit2 capaz de executar, controlar e oferecer uma interface de acesso remoto para experimentos com redes de computadores virtuais, denominadas instâncias do Netkit''", chamada de controlador de instâncias. Esse controlador tornou possível executar remotamente experimentos do Netkit2, visualizando-os como se estivessem sendo executados localmente. A interface de acesso ao controlador foi especificada como um serviço web no estilo REST, de forma que clientes interajam com o controlador por meio de requisições HTTP.
 
 
 
Baseado no trabalho do Ricardo e na interface RESTful, o objetivo deste trabalho é desenvolver uma interface web para acesso ao controlador de instâncias. Essa interface deve possibilitar o uso de um navegador web para enviar comandos ao controlador de instâncias, e acessar os terminais das máquinas virtuais que compõem uma rede virtual do Netkit2. Essa interface deve oferecer os mesmos recursos gráficos que o Netkit2 possui localmente, ou seja é necessário que possua além do terminal, widgets e apresentação da topologia da rede, reiniciar o laboratório dentre outras funções mais. Por fim, a interface web deve envolver tecnologias Ajax(Asynchronous Javascript and XML) e HTML5(HyperText Markup Language 5).
 
 
 
Ao concluir o trabalho se espera ter uma aplicação web com que seja possível utilização em qualquer tipo de navegador. Após todo o desenvolvimento do trabalho será possível realizar os experimentos através da ferramenta Netkit2 sem a instalação de seu software local, podendo assim ser utilizado em qualquer lugar e em qualquer sistema operacional.
 
 
 
{{collapse top|Resumo original}}
 
  
 
O [[Netkit]] é uma ferramenta de experimentação com redes compostas por máquinas virtuais UML – User Mode Linux. Atualmente, a execução de uma rede virtual com o Netkit em um determinado computador implica a instalação do respectivo software. Existe um projeto para que a execução seja realizada em um servidor de aplicação, ou mesmo em nuvem, sendo o controle e visualização feitos em um computador via web. Isso evita a necessidade de instalação de software do Netkit e abre diversas possibilidade para os experimentos (ex: catálogo de experimentos, interligação de diferentes experimentos, criação de uma Internet virtual). A especificação e implementação da infraestrutura para execução remota de experimentos foi desenvolvida no [[Cria%C3%A7%C3%A3o_de_uma_infraestrutura_para_execu%C3%A7%C3%A3o_remota_do_Netkit|TCC de Ricardo Martins]]. O acesso a essa infraestrutura foi especificado como um Web Service, por meio de uma [http://en.wikipedia.org/wiki/Representational_State_Transfer API RESTful]. Desta forma, falta implementar a interface web para o acesso a essa infraestrutura e execução dos experimentos.
 
O [[Netkit]] é uma ferramenta de experimentação com redes compostas por máquinas virtuais UML – User Mode Linux. Atualmente, a execução de uma rede virtual com o Netkit em um determinado computador implica a instalação do respectivo software. Existe um projeto para que a execução seja realizada em um servidor de aplicação, ou mesmo em nuvem, sendo o controle e visualização feitos em um computador via web. Isso evita a necessidade de instalação de software do Netkit e abre diversas possibilidade para os experimentos (ex: catálogo de experimentos, interligação de diferentes experimentos, criação de uma Internet virtual). A especificação e implementação da infraestrutura para execução remota de experimentos foi desenvolvida no [[Cria%C3%A7%C3%A3o_de_uma_infraestrutura_para_execu%C3%A7%C3%A3o_remota_do_Netkit|TCC de Ricardo Martins]]. O acesso a essa infraestrutura foi especificado como um Web Service, por meio de uma [http://en.wikipedia.org/wiki/Representational_State_Transfer API RESTful]. Desta forma, falta implementar a interface web para o acesso a essa infraestrutura e execução dos experimentos.
Linha 20: Linha 6:
 
Este TCC propõe criar uma interface web para execução remota de instâncias do Netkit. O trabalho envolve o controle e visualização de experimentos usando um navegador. Isso implica basicamente:
 
Este TCC propõe criar uma interface web para execução remota de instâncias do Netkit. O trabalho envolve o controle e visualização de experimentos usando um navegador. Isso implica basicamente:
 
# Desenvolver uma aplicação web a ser executada em um servidor, a qual deve ser acessada pelos navegadores. Essa aplicação é responsável por i) fornecer a interface web a ser executada nos navegadores, e ii) traduzir as ações enviadas a partir do navegador para chamadas ao controlador de instâncias do Netkit por meio da API RESTful (ver [[Cria%C3%A7%C3%A3o_de_uma_infraestrutura_para_execu%C3%A7%C3%A3o_remota_do_Netkit|TCC do Ricardo Martins]]).
 
# Desenvolver uma aplicação web a ser executada em um servidor, a qual deve ser acessada pelos navegadores. Essa aplicação é responsável por i) fornecer a interface web a ser executada nos navegadores, e ii) traduzir as ações enviadas a partir do navegador para chamadas ao controlador de instâncias do Netkit por meio da API RESTful (ver [[Cria%C3%A7%C3%A3o_de_uma_infraestrutura_para_execu%C3%A7%C3%A3o_remota_do_Netkit|TCC do Ricardo Martins]]).
# Usar [http://en.wikipedia.org/wiki/Ajax_%28programming%29 Ajax] para implementar a interface visível no navegador. Essa interface deve oferecer os widgets (elementos gráficos) para controle de instâncias, e o terminal para acesso às máquinas virtuais do experimento em execução. Esse terminal deve ser funcionalmente similar a um terminal local (ex: gnome-terminal ou xterm).
+
# Usar [http://en.wikipedia.org/wiki/Ajax_%28programming%29 Ajax] para implementar a interface visível no navegador. Essa interface deve oferecer os widgets (elementos gráficos) para controle de instâncias, e o terminal para acesso às máquinas virtuais do experimento em execução. Esse terminal deve ser funcionalmente similar a um terminal local (similar ao projeto [https://github.com/shellinabox/shellinabox shellinabox]).
{{collapse bottom}}
 
 
 
== Cronograma ==
 
 
 
[[imagem:TCC1-Cronograma-giovani.png|800px]]
 
 
 
== Referências bibliográficas ==
 
 
 
GNOME-NETKIT. Gnome-Netkit. Brasil, 2014. Acessado em 24-04-2015. Disponível em:<http://wiki.sj.ifsc.edu.br/index.php/Netkit2>
 
 
 
NETKIT. Netkit. Itália, 2011. Acessado em 24-04-2015. Disponível em:<http://wiki.netkit.org/index.php>.
 
  
WEBBER, J.; PARASTATIDIS, S.; ROBINSON, I.REST In Practice. EUA: O’Reilly Media, Inc., 2010. 16–20 p.
+
= Cronograma =
  
<!--
 
 
= Bibliografia =
 
= Bibliografia =
  
Linha 46: Linha 20:
 
* [http://blog.killtheradio.net/how-tos/a-simple-but-long-winded-guide-to-rest-web-services/ A simple (but long-winded) guide to REST web services]
 
* [http://blog.killtheradio.net/how-tos/a-simple-but-long-winded-guide-to-rest-web-services/ A simple (but long-winded) guide to REST web services]
 
* [http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm Architectural Styles and the Design of Network-based Software Architectures]
 
* [http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm Architectural Styles and the Design of Network-based Software Architectures]
-->
 

Edição atual tal como às 15h43min de 23 de fevereiro de 2018

Resumo

O Netkit é uma ferramenta de experimentação com redes compostas por máquinas virtuais UML – User Mode Linux. Atualmente, a execução de uma rede virtual com o Netkit em um determinado computador implica a instalação do respectivo software. Existe um projeto para que a execução seja realizada em um servidor de aplicação, ou mesmo em nuvem, sendo o controle e visualização feitos em um computador via web. Isso evita a necessidade de instalação de software do Netkit e abre diversas possibilidade para os experimentos (ex: catálogo de experimentos, interligação de diferentes experimentos, criação de uma Internet virtual). A especificação e implementação da infraestrutura para execução remota de experimentos foi desenvolvida no TCC de Ricardo Martins. O acesso a essa infraestrutura foi especificado como um Web Service, por meio de uma API RESTful. Desta forma, falta implementar a interface web para o acesso a essa infraestrutura e execução dos experimentos.


Este TCC propõe criar uma interface web para execução remota de instâncias do Netkit. O trabalho envolve o controle e visualização de experimentos usando um navegador. Isso implica basicamente:

  1. Desenvolver uma aplicação web a ser executada em um servidor, a qual deve ser acessada pelos navegadores. Essa aplicação é responsável por i) fornecer a interface web a ser executada nos navegadores, e ii) traduzir as ações enviadas a partir do navegador para chamadas ao controlador de instâncias do Netkit por meio da API RESTful (ver TCC do Ricardo Martins).
  2. Usar Ajax para implementar a interface visível no navegador. Essa interface deve oferecer os widgets (elementos gráficos) para controle de instâncias, e o terminal para acesso às máquinas virtuais do experimento em execução. Esse terminal deve ser funcionalmente similar a um terminal local (similar ao projeto shellinabox).

Cronograma

Bibliografia