tcc - mÉtodo de virtualizaÇÃo para disponibilizaÇÃo de softwares em laboratÓrios remotos...

54
SERVIÇO PÚBLICO FEDERAL MEC-SETEC INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO DEPARTAMENTO DA ÁREA DE INFORMÁTICA CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES WILLDSON GONÇALVES DE ALMEIDA MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS Cuiabá MT 2011

Upload: willdson-almeida

Post on 29-Jul-2015

2.548 views

Category:

Documents


2 download

DESCRIPTION

Este trabalho descreve um método de disponibilização de softwares em laboratórios remotos interativos, no contexto do Ensino a Distância. Laboratórios remotos são amplamente utilizados em instituições de ensino, pesquisa e tecnologia. Um dos desafios na implantação desses ambientes de aprendizagem é a disponibilização de programas aplicativos com segurança, escalabilidade e gerenciabilidade. O objetivo deste trabalho é a elaboração de um método para disponibilizar programas da área de laboratório para usuários geograficamente distribuídos. O método utiliza máquinas virtuais para hospedagem dos softwares utilizando serviços de terminais remotos para prover o acesso. Permitindo uma melhor gestão dos usuários e dos recursos a serem disponibilizados bem como do hardware que hospedará essa infraestrutura.

TRANSCRIPT

Page 1: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

SERVIÇO PÚBLICO FEDERAL

MEC-SETEC INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO

GROSSO DEPARTAMENTO DA ÁREA DE INFORMÁTICA

CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES

WILLDSON GONÇALVES DE ALMEIDA

MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE

SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

Cuiabá – MT 2011

Page 2: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO

DEPARTAMENTO DA ÁREA DE INFORMÁTICA CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES

WILLDSON GONÇALVES DE ALMEIDA

MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE

SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

Cuiabá – MT 2011

Page 3: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

Ficha Catalográfica ALMEIDA, Willdson Gonçalves de “MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS”

Cuiabá – MT, 2011 Total de folhas do TCC: 54 SANTOS, Reginaldo Hugo Szezupior dos Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso. Trabalho de Conclusão do Curso de Tecnologia em Redes de Computadores.

Page 4: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

WILLDSON GONÇALVES DE ALMEIDA

MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE

SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

Trabalho de Conclusão de Curso apresentado ao Departamento da Área de Informática do Curso Superior de Tecnologia em Redes de Computadores do Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso – Campus Cuiabá, como requisito para obtenção do título de Tecnólogo em Redes de Computadores.

Orientador: Prof. Msc. Reginaldo Hugo Szezupior dos Santos

Cuiabá - MT 2011

Page 5: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

WILLDSON GONÇALVES DE ALMEIDA

MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE

SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

Trabalho de Conclusão de Curso em Redes de Computadores, submetido à Banca Examinadora composta pelos Professores do Departamento da Área de Informática do Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso, como parte dos requisitos necessários à obtenção do título de tecnólogo.

Aprovado em 30 de dezembro de 2011 às 13:30 horas.

Cuiabá – MT 2011

Page 6: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

DEDICATÓRIA

Dedico aos meus familiares, amigos, e aos

professores que contribuíram para este

trabalho.

Page 7: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

AGRADECIMENTOS

Agradeço primeiramente a Deus por me guiar em todos os momentos.

Aos meus pais, Delgado e Aparecida, por seu amor e carinho, e por me ensinarem o

valor da honestidade e do estudo, incentivando sempre a perseguir meus objetivos, ainda

que sonhadores demais.

Aos meus irmãos, Willkson, Willverson e Raianny, por sua amizade e por sempre

me ouvirem, além de todo o incentivo.

Às minhas avós Clara (in memoriam), que com certeza está muito feliz por esta

conquista e avó Guanira, por todo o ânimo e amor depositado.

Aos não mais colegas, mas sim amigos, da minha turma na faculdade, Maryel

Juliane, Jean Carlos, Catiane Nascimento, Júlio Mário, Carlos Kempa, Taisy Barros, Vania

Lourenço, Rafael Leão, Thiago Nabor, Renan Susuki, Héliton Ponce, Wanderlei Leão, João

Carlos, Carolina Galante, Felipe Galdino, Bruno Vitali e Ibrahin Baraúna.

Ao amigo Lucas Ramalho, pelas contribuições.

Ao meu orientador, Reginaldo Hugo, pelo tempo disponibilizado entre suas tantas

atividades, contribuindo para a elaboração deste trabalho.

Aos demais professores do Departamento da Área de Informática, em especial

André Valente, Guilherme Pires, Juliana Saragiotto, Sônia Regina e Jacira Soares.

A Silvana e a Laura do Departamento da Área de Informática do IFMT, pelo

atendimento sempre cordial.

A todos os outros que passaram por minha vida, colaborando direta ou

indiretamente na realização deste.

A todos estes, meus mais sinceros agradecimentos.

Page 8: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

“A vida sem ciência é uma espécie de morte.” (Sócrates)

Page 9: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

RESUMO

Este trabalho descreve um método de disponibilização de softwares em

laboratórios remotos interativos, no contexto do Ensino a Distância. Laboratórios

remotos são amplamente utilizados em instituições de ensino, pesquisa e tecnologia.

Um dos desafios na implantação desses ambientes de aprendizagem é a

disponibilização de programas aplicativos com segurança, escalabilidade e

gerenciabilidade. O objetivo deste trabalho é a elaboração de um método para

disponibilizar programas da área de laboratório para usuários geograficamente

distribuídos. O método utiliza máquinas virtuais para hospedagem dos softwares

utilizando serviços de terminais remotos para prover o acesso. Permitindo uma

melhor gestão dos usuários e dos recursos a serem disponibilizados bem como do

hardware que hospedará essa infraestrutura.

Palavras-chave: EaD, Laboratório Remoto, Sistemas Operacionais, Virtualização,

Xen.

Page 10: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

ABSTRACT

This work describes a method of providing remote interactive laboratory

software in the context of e-learning. Remote laboratories are widely used in

educational institutions, research and technology. One of the challenges in the

implementation of these learning environments is the availability of software

applications with security, scalability and manageability. The objective of this work is

to develop a method to provide programs in the area of laboratory for geographically

distributed users. The method uses virtual machines for hosting the software using

terminal services to provide remote access. Allowing better management of users

and resources to be available and the hardware that will host this infrastructure.

Keywords: E-learning, Remote Laboratory, Operating Systems, Virtualization, Xen.

Page 11: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

LISTA DE ILUSTRAÇÕES

Figura 1 – Comparações entre os modelos de ensino .............................................. 17

Figura 2 – Sistema computacional ............................................................................ 19

Figura 3 – Funcionamento do sistema operacional ................................................... 20

Figura 4 – Cronologia da família de sistemas operacionais Windows (1985-2010) .. 24

Figura 5 – Área de trabalho do sistema operacional Windows Server 2008 R2 ....... 24

Figura 6 – Área de trabalho da distribuição Ubuntu Linux v.10.04 ............................ 27

Figura 7 – Modelo conceitual de máquinas virtuais ................................................... 28

Figura 8 – Visão dos serviços na consolidação de servidores .................................. 30

Figura 9 – Diminuição do número de servidores com a virtualização ....................... 31

Figura 10 – Máquina virtual de processo .................................................................. 33

Figura 11 – Monitor de máquina virtual ..................................................................... 34

Figura 12 – Funcionamento da técnica de virtualização total .................................... 35

Figura 13 – Funcionamento da técnica de paravirtualização .................................... 36

Figura 14 – Modelo de laboratório remoto interativo ................................................. 38

Figura 15 – Esquema de virtualização e acesso dos usuários às VMs ..................... 39

Figura 16 – Estrutura de camadas do paravirtualizador Xen Server ......................... 40

Figura 17 – Interface de gerenciamento do Xen Center ............................................ 41

Figura 18 – Hospedagem dos serviços no servidor Xen ........................................... 42

Figura 19 – Acesso ao software Microsoft Office Visio via RemoteApp .................... 43

Figura 20 – Acesso ao software Microsoft Paint via RemoteApp .............................. 44

Figura 21 – Acesso ao software de eletrônica Fritizing via NX Server ...................... 45

Figura 22 – Acesso ao Navegador Web Firefox via NX Server ................................. 46

Figura 23 – Interface Web do Laboratório Remoto ................................................... 47

Page 12: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

LISTA DE ABREVIATURAS

API – Application Programming Interface

APP – Aplicativo

COM - Communication

E/S – Entrada e Saída

EaD – Educação à Distância

GNU – GNU is Not Unix

GPL – General Public License

IEEE – Institute of Electrical and Electronics Engineers

IIS – Internet Information Services

IP – Internet Protocol

JVM – Java Virtual Machine

LPT – Line Print Terminal

LR – Laboratório Remoto

NetBIOS – Network Basic Input/Output System

POSIX – Portable Operating System Interface

RDC – Remote Desktop Connection

RDP – Remote Desktop Protocol

S.O. – Sistema Operacional

SSH – Secure Shell

SSL – Secure Sockets Layer

TCP – Transmission Control Protocol

TI – Tecnologia da Informação

TS – Terminal Service

VM – Virtual Machine

VMM – Virtual Machine Monitor

W.S.2008 – Windows Server 2008

Web – World Wide Web

Page 13: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

SUMÁRIO

INTRODUÇÃO .......................................................................................................... 14

1. FUNDAMENTAÇÃO TEÓRICA ............................................................................ 16

1.1 EDUCAÇÃO À DISTÂNCIA ............................................................................ 16

1.2 LABORATÓRIO REMOTO ............................................................................. 17

2. SISTEMAS OPERACIONAIS ............................................................................... 19

2.1 PRINCIPAIS COMPONENTES DE UM SISTEMA OPERACIONAL .............. 20

2.2 CLASSIFICAÇÃO DE SISTEMAS OPERACIONAIS ...................................... 21

2.3 WINDOWS ...................................................................................................... 23

2.4 LINUX ............................................................................................................. 25

3. VIRTUALIZAÇÃO ................................................................................................. 28

3.1 CONTEXTO HISTÓRICO ............................................................................... 29

3.2 CONSOLIDAÇÃO DE SERVIDORES............................................................. 30

3.3 SUPORTE DE HARDWARE PARA VIRTUALIZAÇÃO................................... 31

3.4 TÉCNICAS DE VIRTUALIZAÇÃO .................................................................. 32

3.4.1 Máquina Virtual de Processo ................................................................. 32

3.4.2 Monitor de Máquina Virtual .................................................................... 34

3.4.2.1 Virtualização Total ........................................................................... 35

3.4.2.2 Paravirtualização ............................................................................. 36

3.5 FERRAMENTAS DE VIRTUALIZAÇÃO ......................................................... 37

4. FERRAMENTAS METODOLÓGICAS .................................................................. 38

4.1 CITRIX XEN SERVER .................................................................................... 40

4.2 TS REMOTE APP ........................................................................................... 42

4.3 NX SERVER ................................................................................................... 44

4.4 POLÍTICAS PARA GESTÃO DO LABORATÓRIO ......................................... 46

CONCLUSÕES ......................................................................................................... 48

REFERÊNCIAS ......................................................................................................... 49

ANEXOS ................................................................................................................... 51

ANEXO A – Código-fonte do pacote RDP utilizado no RemoteApp ...................... 51

ANEXO B – Código-fonte do script de conexão utilizando o NX Server ................ 52

Page 14: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

14

INTRODUÇÃO

A Educação a Distância (EaD) é a modalidade de ensino em que professor e

aluno não compartilham do mesmo ambiente físico de aprendizagem, além de

possibilitar a separação cronológica ou espacial entre eles. A comunicação ocorre

por meio das tecnologias, tais como rádio, televisão, vídeo, telefone, e

principalmente a internet. Na EaD o aluno gerencia seu próprio aprendizado,

desenvolvendo sua autonomia e criticidade.

Neste contexto, uma ferramenta muito utilizada são os laboratórios remotos

(LR), ambientes virtuais baseados na web que oferecem acesso a recursos de um

laboratório físico para usuários geograficamente distribuídos. Em geral os recursos

disponibilizados nesses laboratórios são experimentos reais e softwares específicos

da área do conhecimento da qual o LR está inserido, exemplo disso são os

laboratórios de engenharia e computação que disponibilizam softwares simuladores,

compiladores diversos, ambientes integrados de desenvolvimento (IDEs), entre

outros.

A gerência e a hospedagem destes softwares, assim como o controle de

acesso dos usuários, são alguns dos desafios encontrados na implantação deste

tipo de ambiente virtual de ensino, pois fatores importantes devem ser considerados,

como segurança, escalabilidade e gerenciabilidade. Portanto neste trabalho o

problema discutido foi “como gerenciar e hospedar os softwares em laboratórios

remotos interativos?”.

Para tanto, se estabeleceu como objetivo a elaboração de um novo método

de disponibilização de softwares em ambientes virtuais de ensino.

Realizou-se neste trabalho a descrição de um método que utiliza sistemas

operacionais (S.O.) virtualizados para hospedagem de softwares em laboratórios

remotos interativos.

Esta pesquisa é do tipo qualitativa com aspecto exploratório descritivo e

como técnica utilizou-se o estudo de caso.

No primeiro capítulo é apresentado o referencial teórico do trabalho, no qual

foi abordado alguns conceitos de Educação a Distância e Laboratórios Remotos.

No capítulo seguinte foram citados conceitos de Sistemas Operacionais de

modo geral, e de maneira especifica os sistemas operacionais Windows e Linux.

Page 15: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

15

No terceiro capítulo o foco é a Virtualização em seus aspectos gerais e

específicos, em diferentes cenários e técnicas.

No quarto capítulo descreveram-se os experimentos realizados e o método

desenvolvido para a resolução do problema do trabalho, bem como as vantagens na

adoção do modelo.

Na sequência, apresentam-se as conclusões sobre o método desenvolvido.

Page 16: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

16

1. FUNDAMENTAÇÃO TEÓRICA

Os conceitos apresentados abaixo são essenciais para a compreensão da

motivação e do problema do trabalho.

1.1 EDUCAÇÃO À DISTÂNCIA

Nas últimas décadas, as perspectivas pós-positivistas desenvolveram uma

nova visão do que é o conhecimento, levando a novas estratégias de produção,

validação e transmissão. Nessa perspectiva, o conhecimento não é mais visto como

fato intocável, mas como “produto da interação humana com o mundo através de

sistemas simbólicos, meios técnicos, estilos relacionais e cognitivos que se dão

sempre em um contexto multidimensional que inclui tanto a estética como a ética e

os afetos” (NAJMANIVICH, 2001 apud OGIBOSKI, 2007).

Existe uma forte tendência da conversão de cursos antes oferecidos na

forma tradicional e na modalidade presencial, para a forma eletrônica, a fim de

serem usados a distância, utilizando-se como método a exposição do conteúdo por

meio de textos em páginas utilizando a Internet. Em outras palavras: a prática

presencial de exposição oral é substituída pela textual, por isso consideramos

fundamental a elaboração de novos modelos pedagógicos diferenciados para cursos

na Web (COUTINHO, 2003 apud CAMPOS, 2005).

Atualmente a educação a distância é o instrumento mais promissor em

educação, além de abrir inúmeras possibilidades de aplicação nos negócios e no

comércio (KIRSCHNER, 2001 apud OGIBOSKI, 2007). Seus objetivos e

expectativas são:

Aumento do acesso ao ensino;

Ensino mais personalizado e mais individualizado;

Estímulo à colaboração e à cooperação em todos os níveis educacionais;

Maior poder aos educadores;

Aumento da responsabilidade;

Aumento da eficiência da educação;

Page 17: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

17

Redução de custos com estrutura física;

Redução do tempo de capacitação do educador;

Adoção rápida de novas informações e de novos programas.

Para reforçar as características e implicações do novo modelo de ensino em

comparação com o modelo antigo (tradicional), na Figura 1 são apresentadas as

diferenças entre elas bem como as implicações técnicas do ponto de vista dos

recursos tecnológicos utilizados.

Figura 1 – Comparações entre os modelos de ensino

Fonte: Ogiboski, 2007.

1.2 LABORATÓRIO REMOTO

Os termos laboratório virtual e remoto podem gerar confusão entre si, mas

basicamente, um laboratório virtual trata de um software de computador com

capacidade de realizar ou de simular leituras de dados em instrumentos. Por outro

lado, um laboratório remoto é constituído por uma estrutura de hardware e software

para aquisição de dados em instrumentos reais, com experimentos também reais,

Page 18: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

18

sendo a manipulação do instrumento realizada necessariamente através de uma

rede de computadores (NEDIC et al., 2003 apud OGIBOSKI, 2007).

O uso da Internet e da tecnologia Web em laboratório interativo de medidas

é realizado com o propósito de fornecer flexibilidade no controle de processos

industriais e na educação de alunos em localidades distantes da sala de aula ou da

universidade (ALTPETER et al., 1995 apud OGIBOSKI, 2007).

Os laboratórios remotos, descritos na literatura acadêmica, demonstram a

união de técnicas de instrumentação virtual com tecnologias de hardware e de

software para controle de experimentos à distância. Os testes e ensaios são

desenvolvidos com base na instrumentação virtual para que o controle de

experimentos possa ser realizado através de um computador conectado diretamente

aos recursos físicos (OGIBOSKI, 2007).

Page 19: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

19

2. SISTEMAS OPERACIONAIS

Sistema operacional é um programa que atua como intermediário entre

usuário e o hardware de um computador, controlando e coordenando o uso do

hardware entre os vários programas aplicativos para os vários usuários. Pode ser

compreendido como um alocador de recursos, que são: hardware, software e dados.

O sistema controla a execução de programas do usuário para evitar a ocorrência de

erros ou o uso inadequado do computador, além de ocupar-se em especial da

operação e do controle dos dispositivos de entrada e saída (E/S) (SILBERSCHATZ,

2000 e TANEMBAUM, 2010).

Seu propósito é fornecer um ambiente no qual seus usuários possam

executar seus programas. Os principais objetivos de um sistema operacional são:

Tornar conveniente o uso de um sistema computacional;

Usar o hardware do computador de maneira eficiente.

Um sistema computacional pode ser dividido de maneira geral em quatro

componentes, conforme figura 2:

Hardware;

Sistema operacional;

Programas aplicativos;

Usuários.

Figura 2 – Sistema computacional

Nota: Construção do Autor.

Page 20: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

20

Os sistemas operacionais existem porque constituem uma forma racional de

criar um sistema computacional cujo uso seja fácil e proveitoso para os usuários, e

que possam executar seus programas e tornar mais fácil a solução de seus

problemas.

O sistema operacional é a peça mais básica de software e opera em modo

núcleo, também chamado modo supervisor. Nesse modo ele tem acesso completo a

todo o hardware e pode inserir qualquer instrução que a máquina pode executar. O

programa de interface com o usuário, que pode ser um interpretador de comandos

(shell) ou uma Interface gráfica com o usuário (GUI), é o nível mais inferior do

software de modo usuário e permite que este inicie outros programas, como o

navegador web, leitor de email ou reprodutor de música (TANEMBAUM, 2010). Na

figura 3 é mostrado ciclo de funcionamento do sistema operacional.

Figura 3 – Funcionamento do sistema operacional

Nota: Construção do Autor.

2.1 PRINCIPAIS COMPONENTES DE UM SISTEMA OPERACIONAL

A grande maioria dos sistemas operacionais possui pontos comuns quanto

às abstrações básicas, como: processos, espaços de endereçamento, sistema de

arquivos, sistema de entrada e saída (E/S), segurança, etc. Pois estes são

Page 21: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

21

fundamentais para seu funcionamento. Abaixo serão descritos os principais

mecanismos do S.O, (SILBERSCHATZ, 2000 e TANEMBAUM, 2010).

Processo: É basicamente uma abstração de um programa em execução.

Fundamentalmente um processo é uma caixa que armazena todas as

informações necessárias para executar um programa. Um processo pode

criar um ou mais processos auxiliares, denominados filhos.

Espaços de endereçamento: Cada processo tem um conjunto de

endereços que pode utilizar, geralmente indo de 0 até alguma quantidade

máxima. Estes espaços de endereços permitem que múltiplos processos

tenham acesso a memória, sem que um interfira no outro.

Sistema de arquivos: É onde por meio de chamadas de sistema (system

calls) é criada a estrutura hierárquica de diretórios. Essencial na organização

dos arquivos.

Gerenciador de E/S: É um subsistema do sistema operacional, utilizado na

gerência dos dispositivos de E/S.

Auditoria e segurança: Cria e gerencia um ambiente de confidencialidade

ao usuário e aos procedimentos do sistema.

Interpretador de comandos (Shell): O Shell não é propriamente um

programa do sistema operacional, pois executa em modo usuário. Criando

uma interface entre o usuário e os recursos do sistema operacional.

Chamadas de sistema (system calls): Interação entre processos dos

usuários e o núcleo do sistema operacional (Kernel).

2.2 CLASSIFICAÇÃO DE SISTEMAS OPERACIONAIS

A evolução dos sistemas operacionais no decorrer do tempo esteve sempre

ligado a evolução dos computadores (TANEMBAUM, 2010), e este processo

continua acelerado com o desenvolvimento de tecnologias para novos dispositivos

computacionais, para que se tenha uma compreensão mais aprofundada desta

evolução, na tabela 1 serão apresentadas as gerações dos computadores:

Page 22: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

22

Tabela 1 – Gerações dos computadores

Fonte: Tanembaum, 2010.

GERAÇÃO PERÍODO COMPONENTES

1ª Geração 1945 - 1955 Válvulas

2ª Geração 1955 - 1965 Transístores

3ª Geração 1965 – 1980 Circuitos Integrados

4ª Geração 1980 - Presente Computadores Pessoais

Existem diversos tipos de sistemas operacionais, que se diferenciam

principalmente pelo tipo de hardware suportado, serão listados os mais importantes

deles. Porém não os estudaremos a fundo, por não ser o foco do trabalho.

Existem 05 (cinco) tipos de sistemas operacionais (SILBERSCHATZ, 2000):

Sistemas operacionais de batch multiprogramados

Sistemas operacionais de batch simples

Sistemas operacionais de compartilhamento de tempo

Sistemas operacionais distribuídos

Sistemas operacionais paralelos

No entanto, a classificação encontra-se desatualizada por não contemplar os

sistemas desenvolvidos para os dispositivos desenvolvidos na última década. Com

isso, corroborando (TANEMBAUM, 2010):

Sistemas operacionais de cartões inteligentes (smart cards)

Sistemas operacionais de computadores de grande porte (mainframes)

Sistemas operacionais de computadores pessoais

Sistemas operacionais de computadores portáteis

Sistemas operacionais de multiprocessadores

Sistemas operacionais de nós sensores (sensor node)

Sistemas operacionais de servidores

Page 23: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

23

Sistemas operacionais de tempo real

Sistemas operacionais embarcados

2.3 WINDOWS

O Windows é uma coleção de sistemas operacionais desenvolvidos pela

empresa Microsoft, possui licença proprietária e diversas versões diferenciadas

pelas funcionalidades direcionadas a um determinado público. O sistema

operacional mais utilizado em computadores pessoais no mundo, sua mais recente

versão para desktops é o Windows 7, lançado em 2009. Para servidores o Windows

Server 2008 R2 é a versão mais recente e estável, já para dispositivos móveis a

versão mais recente é o Windows Phone 7 (MICROSOFT TECHNET, 2011). Abaixo

serão descritas algumas das principais características das recentes versões dos

sistemas operacionais da família Windows:

Código-fonte das várias versões do S.O. foi desenvolvido na liguagem de

programação C e algumas partes com C++ e Assembly;

Multitarefa;

Multiusuário;

Suporte a Plug and Play;

Sistema de arquivos NTFS (New Tecnology File System);

Neste trabalho optou-se pela utilização do Windows Server 2008 R2, por

possuir a última versão do Terminal Service (RemoteApp), o detalhamento da

implementação utilizando o Server 2008 será descrita na seção 4.2. Na figura 4 é

apresentada uma cronologia dos S.O.s Windows, na figura 5 a área de trabalho do

W.S.2008.

Page 24: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

24

Figura 4 – Cronologia da família de sistemas operacionais Windows (1985-2010)

Fonte: Wikipedia <http://en.wikipedia.org/wiki/microsoft_windows>.

Figura 5 – Área de trabalho do sistema operacional Windows Server 2008 R2

Nota: Construção do autor.

Page 25: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

25

2.4 LINUX

O Linux é um sistema operacional criado em 1991 por Linus Torvalds, na

Universidade de Helsinki – Finlândia. É um sistema Operacional de código aberto

(open source) distribuído gratuitamente pela internet. Seu código-fonte é liberado na

licença GPL (General Public License). O sistema segue o padrão POSIX que é o

mesmo usado por sistemas UNIX e suas variantes. Assim, com a utilização do Linux

não se encontram grandes dificuldades em operar um sistema do tipo UNIX,

FreeBSD, HPUX, SunOS, etc., diferenciados por algumas particularidades de cada

sistema. O Linux é desenvolvido por uma comunidade com milhares de pessoas

espalhadas pelo mundo, cada uma fazendo sua contribuição ou mantendo alguma

parte do kernel gratuitamente. Os requisitos mínimos do Linux é de um computador

386 SX com 2 MB de memória (para um kernel até a série 2.2.x) ou 4 MB (para

kernels 2.4 e 2.6) e 100 MB disponíveis em seu disco rígido para uma instalação

básica e funcional (GUIA FOCA LINUX, 2011).

Descreve-se abaixo as principais características do S.O. GNU/Linux:

É livre e desenvolvido voluntariamente por programadores experientes,

hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a

contribuição para a melhoria e crescimento deste sistema operacional;

Recebe apoio de grandes empresas como IBM, Sun, HP, etc. para seu

desenvolvimento;

Convive1 sem nenhum tipo de conflito com outros sistemas operacionais

(com o DOS, Windows, OS/2) no mesmo computador;

Multitarefa real;

Multiusuário;

Suporte a nomes extensos de arquivos e diretórios (255 caracteres);

Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh,

Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc;

Utiliza permissões de acesso a arquivos, diretórios e programas em

execução na memória RAM;

Proteção entre processos executados na memória RAM;

1 Pode ser instalado no mesmo dispositivo de armazenamento com outros sistemas operacionais.

Page 26: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

26

Suporte a mais de 63 terminais virtuais (consoles);

Modularização - O Linux somente carrega para a memória o que é usado

durante o processamento, liberando totalmente a memória assim que o

programa/dispositivo é finalizado;

Não precisa de um processador potente para funcionar. O sistema roda bem

em computadores 386Sx 25 com 4 MB de memória RAM (sem rodar o sistema

gráfico X, que é recomendado 32MB de RAM);

Suporte nativo a múltiplas CPUs, assim processadores como Dual Core

Athlon Duo, Quad Core tem seu poder de processamento integralmente aproveitado;

Suporte nativo a dispositivos SATA, PATA, Fiber Channel;

Suporte nativo a virtualização, onde o Linux se destaca como plataforma

preferida para execução de outros sistemas operacionais;

Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2,

NTFS, SunOS, Mac, etc;

Os sistemas de arquivos usados pelo GNU/Linux (Ext2, Ext3, Ext4, reiserfs,

xfs, jfs) organiza os arquivos de forma inteligente evitando a fragmentação e

fazendo-o um poderoso sistema para aplicações multi-usuárias exigentes e

gravações intensivas;

Pode ser executado em 16 arquiteturas diferentes (Intel, Macintosh, Alpha,

Arm, etc.) e diversas outras sub-arquiteturas;

Uma Distribuição Linux (ou simplesmente Distro), é a combinação do kernel

Linux com softwares livres e não-livres. São sistemas completos, prontos para

instalação e uso. Criadas e mantidas por indivíduos, grupos e organizações de todo

o mundo, bem como projetos de comunidades de desenvolvimento.

Algumas das distribuições mais utilizadas: Debian, Fedora, Red Hat,

Slackware, Gentoo, CentOS, OpenSuse, Mandriva, Backtrack, Android (dispositivos

móveis), etc.

Page 27: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

27

A distribuição Linux escolhida para a implementação do método foi o Ubuntu

v.10.04, por possuir uma grande comunidade de usuários, maturidade, estabilidade

do sistema e facilidade de uso por usuários comuns. Na figura 6 é apresentada a

interface de área de trabalho do Ubuntu 10.04.

Figura 6 – Área de trabalho da distribuição Ubuntu Linux v.10.04

Nota: Construção do autor.

Page 28: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

28

3. VIRTUALIZAÇÃO

Virtualização é a técnica que permite particionar um único sistema

computacional em vários outros denominados de máquinas virtuais. Uma máquina

virtual nada mais é que uma camada de software que oferece um ambiente

completo muito similar a uma máquina física. Com isso, cada máquina virtual pode

ter seu próprio sistema operacional, aplicativos e serviços de rede (CARISSIMI,

2008).

As máquinas virtuais, por emularem um ambiente computacional sobre outro

impõem algumas restrições de implementação e de desempenho. É aqui que entra o

desenvolvimento dos produtos de software para a virtualização. Basicamente, as

máquinas virtuais podem ser implementadas como uma aplicação de um sistema

operacional e executarem em modo usuário, ou uma camada de software

posicionada entre o hardware da máquina e o sistema operacional. A primeira opção

é o que se denomina de máquina virtual de processo e a segunda de monitor de

máquina virtual ou hypervisor (SMITH e NAIR, 2005).

Figura 7 – Modelo conceitual de máquinas virtuais

Fonte: Carissimi, 2008.

Page 29: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

29

3.1 CONTEXTO HISTÓRICO

A virtualização não é uma técnica nova, vem sendo utilizada há muitos anos

e para diversos fins, e está novamente em plena evidência elevada pela

virtualização de sistemas operacionais e de servidores em datacenters. Mas, para

que se entenda como ocorreu essa cadeia de eventos é necessário voltar um pouco

na cronologia.

O tema virtualização têm se destacado no mundo da tecnologia da

informação (TI), apesar de não ser exatamente uma novidade. A introdução da

linguagem de programação Java trouxe consigo a noção de máquina virtual, mas a

origem das máquinas virtuais remonta ao início dos anos 70. Nessa época, era

comum que cada computador (mainframe), mesmo de um único fabricante, tivesse

seu próprio sistema operacional, e isso se tornou uma das principais razões para o

aparecimento das máquinas virtuais: permitir que software legado executasse nos

caros mainframes. Na prática, o software não incluía apenas a aplicação, mas sim

todo o ambiente operacional sobre o qual ele executava. Essa abordagem foi usada

com sucesso pela IBM que, na linha de mainframes 370 e seus sucessores, oferecia

uma máquina virtual, portada para várias de suas plataformas, sobre a qual as

aplicações executavam. Dessa forma era possível executar, ou migrar, uma

aplicação de uma plataforma para outra desde que houvesse uma versão de

máquina virtual para a plataforma alvo (CARISSIMI, 2008).

Com a popularização dos computadores pessoais, o mercado dos sistemas

operacionais afunilou-se para apenas três arquiteturas: Microsoft, Unix e Macintosh.

Cada qual possuía um conjunto de softwares aplicativos e um público-alvo bem

definido, tornando-se desnecessário a utilização da virtualização de sistemas,

estagnando por muito tempo a prática da virtualização, que foi resgatada pelos

projetos de datacenters, inserindo o contexto de consolidação de servidores, que

será detalhado do na seção 3.2.

Page 30: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

30

3.2 CONSOLIDAÇÃO DE SERVIDORES

Ao se executar múltiplas instâncias de máquinas virtuais em um mesmo

hardware, também se está proporcionando um uso eficiente de seu poder de

processamento. Essa situação é comumente denominada de consolidação de

servidores e é especialmente interessante em datacenters devido à heterogeneidade

de plataformas inerente ao próprio negócio. Além disso, a diminuição de máquinas

físicas implica na redução de custos de infraestrutura física como espaço, energia

elétrica, cabeamento, refrigeração, suporte e manutenção a vários sistemas

(CARISSIMI, 2008).

A consolidação de servidores consiste em centralizar e/ou diminuir o número

de equipamentos e de aplicações instaladas em cada um dos servidores da

organização, com o objetivo de aumentar a produtividade da infraestrutura, melhorar

o gerenciamento do ambiente, aumentar a segurança, diminuir a manutenção e

economizar em recursos humanos, físicos e financeiros (OLIVEIRA, 2004). A Figura

8 mostra que a diminuição do número de servidores não implica na diminuição de

serviços operantes.

Figura 8 – Visão dos serviços na consolidação de servidores

Nota: Construção do Autor.

No modelo tradicional utilizava-se um servidor para cada serviço, fazendo

com que o custo de implantação e manutenção fosse elevado.

Page 31: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

31

Com a consolidação de servidores é possível elevar a utilização do

hardware, diminuindo a quantidade de máquinas para manter os mesmos serviços

operantes. Além de haver um alto nível de segurança, os sistemas não ficariam

presos ao hardware. Uma máquina virtual pode ser copiada e transferida sem que

os serviços sejam parados, e se por acaso o hardware apresentar defeito, a cópia

poderá ser colocada em outro servidor e rapidamente o serviço voltará a operar.

Os conceitos da TI Verde2 e a necessidade de redução de custos

operacionais de TI impulsionaram a adoção da consolidação de servidores, pois

seria gasto menos espaço físico, com isso menos gastos com eletricidade,

refrigeração, manutenção e demais itens já citados.

Figura 9 – Diminuição do número de servidores com a virtualização

Nota: Construção do Autor.

3.3 SUPORTE DE HARDWARE PARA VIRTUALIZAÇÃO

Gigantes do mercado de processadores, AMD e Intel, possuem tecnologia

de suporte a virtualização. As extensões da AMD, denominada de AMD-V (AMD-

Virtualization), codinome Pacífica, se aplica às arquiteturas x86 de 64 bits como o

Athlon, Turion, Phenom e as linhas mais recentes. A Intel apresenta suas extensões

para as arquiteturas x86 de 32 e 64 bits. Essas extensões são conhecidas por IVT

(Intel Virtualization Technology) ou pelo seu codinome, Vanderpool. As soluções da

AMD e da Intel foram desenvolvidas independentemente uma da outra e são 2 Consiste na soma da gestão da economia de energia, com a de recursos desde a extração da

matéria-prima até o final da vida útil do equipamento (SILVA et. al, 2009).

Page 32: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

32

incompatíveis, embora sirvam para o mesmo propósito. A AMD implementa funções

especiais no processador que são executadas por um hypervisor e que podem

controlar, em seu nome, acessos de um sistema hóspede ao hardware hospedeiro.

A Intel introduziu mecanismos similares (virtual machines extensions) que

complementam a idéia do conceito de anéis de proteção com dois novos modos:

root e não-root. Esses modos são controlados pelo hypervisor (que executa em

modo root) e que pode transferir a execução de um sistema operacional hóspede

para o modo não-root no qual instruções do anel zero são executadas sem risco

para o sistema (CARISSIMI, 2008).

3.4 TÉCNICAS DE VIRTUALIZAÇÃO

A virtualização é utilizada para diversas finalidades, neste trabalho será

abordada no âmbito da virtualização de sistemas operacionais em servidores.

Neste contexto, existem basicamente dois tipos de virtualização:

Máquina Virtual de Processo

Monitor de Máquina Virtual

o Virtualização Total

o Paravirtualização

3.4.1 Máquina Virtual de Processo

Uma máquina virtual de processo nada mais é que uma aplicação que

executa sobre um sistema operacional A e que emula o comportamento de um

sistema operacional B. Assim, aplicações desenvolvidas para o sistema B podem

executar sobre um sistema A. É importante salientar que essa técnica de

implementação permite que binários de um processador sejam interpretados e

substituídos por código equivalente de outro processador. Portanto, além de emular

sistema operacional é possível emular processadores. As desvantagens dessa

técnica são basicamente duas: desempenho e desperdício de capacidades do

hardware físico. O desempenho é sacrificado já que há uma tradução de um sistema

Page 33: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

33

a outro, além de executarem em modo de usuário. O desperdício de capacidades

físicas do hardware vem do fato que as máquinas virtuais de processo oferecem

dispositivos de E/S genéricos e simples. O exemplo típico são placas de vídeo. Por

executarem como uma aplicação, ao terminar o processo máquina virtual, nenhum

rastro permanece no sistema (CARISSIMI, 2008).

Máquina Virtual de Processo cria um ambiente de execução para outras

aplicações, e pode gerar um conjunto de instruções que são interpretadas para

criação de instruções não-privilegiadas, chamadas de sistemas e APIs de bibliotecas

que correspondem à ação abstrata desejada. Pode-se defini-la como uma aplicação

de um Sistema Operacional executando em modo usuário, ou seja, as instruções

são executadas no modo não-privilegiado a partir de instruções abstratas que

representam a ação desejada (VIEIRA, 2008).

Figura 10 – Máquina virtual de processo

Fonte: Carissimi, 2008.

Considerando essas interfaces, a implementação de máquinas virtuais pode

ser feita de dois modos. Primeiro é possível fazer um programa de aplicação que

forneça um ambiente de execução para outras aplicações. Esse ambiente pode

possuir um conjunto de instruções abstratas que são interpretadas para gerar as

Page 34: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

34

instruções de máquinas não privilegiadas, as chamadas de sistema e de API de

bibliotecas que correspondem a ação abstrata desejada. É o caso da máquina virtual

Java (JVM). Ainda é possível que esse programa de aplicação emule chamadas de

sistemas de outro sistema operacional, como ocorre quando se executa Linux em

sistemas Windows com a ferramenta VMware player. Esse tipo de virtualização é o

que se denomina de máquina virtual de processo (SMITH e NAIR, 2005).

3.4.2 Monitor de Máquina Virtual

VMM (Virtual Machine Monitor – Monitor de Máquina Virtual) ou hypervisor

pode ser compreendida como uma camada de software entre o hardware e as

máquinas virtuais.

O processo ou sistema que executa sobre uma máquina virtual é chamado

de hóspede, enquanto o ambiente sobre o qual ele executa é chamado de

hospedeiro (CARISSIMI, 2008).

Figura 11 – Monitor de máquina virtual

Fonte: Carissimi, 2008.

Pode ser implementando por dois métodos distintos: a virtualização total e a

paravirtualização, que serão abordados a seguir:

Page 35: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

35

3.4.2.1 Virtualização Total

Esta técnica de virtualização cria uma réplica virtual do hardware hospedeiro

e oferece total acesso ao sistema hóspede. Com isso diversos inconvenientes

surgem, pois para que o hardware tenha que ser simulado torna-se necessário a

utilização de drivers genéricos pelo VMM, causando subutilização dos componentes

de hardware e consequentemente queda de desempenho. Os sistemas operacionais

hóspedes neste caso não são alterados. Outro inconveniente da virtualização total é

o fato de o sistema operacional visitante não ter conhecimento de que está sendo

executado sobre o VMM, então as instruções executadas pelo sistema operacional

visitante devem ser testadas pelo VMM para que depois sejam executadas

diretamente no hardware, ou executadas pelo VMM e simulada a execução para o

sistema visitante (CARISSIMI, 2008).

Figura 12 – Funcionamento da técnica de virtualização total

Fonte: Carissimi, 2008.

Page 36: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

36

3.4.2.2 Paravirtualização

A paravirtualização é uma alternativa de contorno dos problemas que a

técnica de virtualização total possui. Com este método, é possível apresentar ao

sistema operacional hóspede uma arquitetura virtual que é muito similar, mas não

idêntica ao hardware real. Essa solução aumenta o desempenho das máquinas

virtuais que as utilizam (BARHAM, 2003).

Entretanto, são necessárias modificações nos sistemas operacionais

convidados, que executam na atual arquitetura x86. Ainda assim, as mudanças

necessárias nos sistemas convidados devem ser passíveis de implementação, o que

já é implementado nas versões mais recentes do Linux (versão 2.6). Isso mostra que

a modificação do sistema operacional convidado é possível de ser feita com um

esforço não tão grande a ponto de impactar substancialmente na evolução de

sistemas operacionais já consolidados no mercado.

Figura 13 – Funcionamento da técnica de paravirtualização

Fonte: Carissimi, 2008.

Page 37: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

37

3.5 FERRAMENTAS DE VIRTUALIZAÇÃO

Existem diversas soluções de mercado para virtualização de servidores, que

utilizam as técnicas de virtualização mencionadas nas seções anteriores. Dentre

elas, listadas na tabela abaixo as mais populares:

Tabela 2 – Ferramentas de virtualização

Nota: Construção do Autor.

PROJETO TÉCNICA LICENÇA

VMWare ESXi Virtualização total Proprietária

VMWare Workstation Máquina virtual de processo Proprietária

Citrix Xen Server Paravirtualização Proprietária

Xen Source Paravirtualização GPL

Virtual Box Virtualização total Módulos do kernel GPL. RDP e suporte a USB são proprietários.

Page 38: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

38

4. FERRAMENTAS METODOLÓGICAS

Existem diversos tipos de laboratórios baseados na web, diferenciados pelos

recursos disponibilizados. Para a criação do método, foi elaborado um modelo de

laboratório remoto interativo, constituído por uma estrutura de hardware e software

para manipulação de instrumentos e experimentos reais, sendo realizada

obrigatoriamente através de uma rede de comunicação, conforme figura 14.

Figura 14 – Modelo de laboratório remoto interativo

Adaptado de: Murray et. al, 2008.

Adotou-se como ferramenta de virtualização, o paravirtualizador Citrix Xen

Server, nele são hospedadas e gerenciadas as máquinas virtuais onde os softwares

do laboratório remoto serão instalados.

Para o acesso dos usuários aos softwares instalados nas máquinas virtuais

do Xen Server serão utilizados serviços de terminais do Windows e Linux, conforme

figura 15.

Page 39: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

39

Figura 15 – Esquema de virtualização e acesso dos usuários às VMs

Nota: Construção do Autor.

O objetivo disto é tornar a plataforma do laboratório remoto compatível com

clientes utilizando sistemas operacionais Windows e Linux, ou seja, independente de

qual desses sistemas a máquina do usuário estiver rodando ele consiga facilmente

acessar as máquinas virtuais e consequentemente os aplicativos dela. O laboratório

tem de suportar esses processos de forma transparente para o usuário, para que a

navegação seja leve e tranquila.

Se o usuário utiliza o S.O. Windows, possui suporte nativo aos arquivos de

Área de Trabalho Remota do Windows (RDP – Remote Desktop Protocol) e com o

cliente NX instalado ele poderá acessar as máquinas virtuais Linux e seus

aplicativos.

Mas, se o usuário utilizar o sistema operacional Linux, para utilizar softwares

hospedados em máquinas virtuais Linux, é necessário à instalação do cliente NX.

Porém se for necessário o acesso a máquinas virtuais Windows, por não possuir

suporte nativo aos arquivos de área de trabalho remota do Windows será utilizado o

software rdesktop, aplicativo para conexão remota a máquinas Windows a partir de

máquinas Linux. De acordo com o site da comunidade rdesktop, além da conexão

Page 40: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

40

remota você também pode: redirecionar portas LPT e COM, redirecionar o áudio,

criar disco virtual mapeado e redirecionar o drive de CD/DVD, entre outros.

Para a aplicação do método de virtualização em nível de teste, foi utilizado

uma máquina com processador Intel Core I5, disco rígido de 2 Terabytes e memória

RAM de 8 Gigabytes como servidor Xen e um notebook com processador Intel Core

2 Duo, disco rígido de 320 Gigabytes e memória RAM de 4 Gigabytes como cliente

para acesso às VMs.

4.1 CITRIX XEN SERVER

Com intuito de criar um ambiente de execução para as máquinas virtuais,

optou-se pela utilização de um monitor de máquinas virtuais com a técnica de

paravirtualização, por utilizar toda a capacidade do hardware hospedeiro, elevando o

desempenho das máquinas virtuais.

Para tanto, foi escolhido como paravirtualizador o Xen Server. Baseado na

distribuição CentOS Linux, sistema operacional livre, possui algumas melhorias

realizadas por sua atual mantenedora Citrix. Este funciona como um gerenciador de

máquinas virtuais, como mostra a Figura 16.

Figura 16 – Estrutura de camadas do paravirtualizador Xen Server

Nota: Construção do Autor.

A gerência do servidor Xen Server é feita pelo software Xen Center, que

deve ser instalado em uma máquina cliente que pode possuir sistema operacional

Windows ou Linux, nele é possível fazer todas as configurações do servidor, como

Page 41: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

41

criação de grupos de servidores Xen (New Pool), adição de servidores Xen (Add

New Server), criação de máquinas virtuais (New VM), alterar o estado de uma

máquina virtual (Start, Shutdown, Reboot e Suspend), configuração de recursos da

máquina virtual como processador, memória, placas de rede, entre outros. A Figura

17 apresenta a tela inicial do Xen Center.

Figura 17 – Interface de gerenciamento do Xen Center

Nota: Construção do Autor.

Todos os serviços do laboratório remoto foram hospedados no servidor Xen

(Figura 18), utilizando os conceitos de consolidação de servidores, apresentado na

seção 3.2.

Page 42: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

42

Figura 18 – Hospedagem dos serviços no servidor Xen

Nota: Construção do Autor.

4.2 TS REMOTE APP

O TS RemoteApp é uma ferramenta que faz parte do pacote Terminal

Services presente no Microsoft Windows Server 2008. Permite acesso a programas

compatíveis com a plataforma Windows de praticamente qualquer lugar para

usuários de qualquer computador, desde que tenham o cliente da Conexão de Área

de Trabalho Remota (RDC – Remote Desktop Connection) instalado. Os usuários

podem executar programas RemoteApp lado a lado com seus programas locais. Um

usuário pode minimizar, maximizar e redimensionar a janela do programa e pode

facilmente iniciar vários programas ao mesmo tempo. Se um usuário estiver

executando mais de um programa RemoteApp no mesmo servidor de terminal, os

programas RemoteApp compartilharão a mesma sessão (sessão 0) dos Serviços de

Terminal. Por padrão utiliza a porta TCP 3389, que pode ser alterada. (MICROSOFT

TECHNET, 2011). Os usuários podem executar programas RemoteApp de várias

maneiras:

Clicar duas vezes no arquivo do protocolo RDP (Remote Desktop

Protocol);

Acessar um link para o programa em um site usando o TS Web Access;

Clicar duas vezes em um ícone de programa na área de trabalho ou no

menu Iniciar criado e distribuído em pacote do Windows Installer (.msi).

Page 43: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

43

Neste modelo optou-se pela utilização de arquivos com extensão RDP para

todos os programas RemoteApp e chamados no servidor web do laboratório remoto,

o código do arquivo RDP pode ser visto no Anexo A.

Na Figura 19 e Figura 20, é apresentada a execução remota dos softwares

Microsoft Office Visio e o Microsoft Paint, respectivamente.

Figura 19 – Acesso ao software Microsoft Office Visio via RemoteApp

Nota: Construção do Autor.

Page 44: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

44

Figura 20 – Acesso ao software Microsoft Paint via RemoteApp

Nota: Construção do Autor.

4.3 NX SERVER

O NX Server é um aplicativo baseado na linguagem CGI perl, que permite o

acesso remoto a servidores com o NX instalado, independente da localização

geográfica do usuário.

Mantido pela empresa NoMachine, possui versões com licença proprietária

e também versões gratuitas, existe também a opção de usar o FreeNX, versão

totalmente open-source do servidor NX, que combina as bibliotecas de código aberto

distribuídas pela NoMachine e um conjunto de scripts desenvolvidos pela

comunidade. Atualmente, não existe muita vantagem no uso do FreeNX, já que

temos a versão gratuita do NX Server, mas ele já foi a versão mais usada.

Page 45: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

45

O servidor NX utiliza o SSH (Secure Shell) como meio de transporte, por

isso, para utilizá-lo é necessário que o servidor SSH esteja ativo. É justamente

devido à necessidade do servidor SSH e do servidor de terminal X que o servidor NX

roda apenas sobre o Linux e Solaris. Você pode se conectar ao servidor a partir das

estações Windows, mas não rodar o servidor NX sobre elas.

A ferramenta foi adotada por ser uma excelente alternativa para o acesso a

máquinas Linux via SSH Forwarding, que utiliza a porta TCP 22. O Anexo B mostra

um script para conexão via NX.

A Figura 21 mostra a execução remota do software Fritzing e a Figura 22 a

execução remota do Navegador Web Mozilla Firefox.

Figura 21 – Acesso ao software de eletrônica Fritizing via NX Server

Nota: Construção do Autor.

Page 46: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

46

Figura 22 – Acesso ao Navegador Web Firefox via NX Server

Nota: Construção do Autor.

4.4 POLÍTICAS PARA GESTÃO DO LABORATÓRIO

Os laboratórios remotos são amplamente utilizados por instituições de

ensino, pesquisa e tecnologia, que necessitam gerenciar a utilização dos

experimentos pelos usuários, bem como o uso de softwares essenciais ao ensino. O

método de virtualização de S.O. possibilitará o gerenciamento de:

Máquinas virtuais;

Licenças de software;

Tempo de uso do software por cada usuário;

Recursos de hardware do servidor.

A disponibilização de softwares em laboratório remoto traz desafios como a

utilização simultânea de uma mesma chave por múltiplos usuários, violando assim

as leis de direitos autorais. Como solução, este método prevê o agendamento de

Page 47: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

47

uso do software por meio da divisão flexível do tempo para todos os usuários. Esta

flexibilidade permite que a expiração do tempo possa ser prorrogada, caso haja

disponibilidade de horário. Assim, cada software não poderá ser utilizado

simultaneamente pelos usuários. O agendamento de software pode ser visto na

Figura 23, o ícone “Meus Softwares” apresenta ao usuário os aplicativos agendados.

Figura 23 – Interface Web do Laboratório Remoto

Nota: Construção do autor.

Page 48: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

48

CONCLUSÕES

Com o modelo de virtualização proposto espera-se contribuir com

instituições interessadas na criação de ambientes virtuais de ensino, potencializando

suas atividades de pesquisa.

Conclui-se que a disponibilização de softwares através de máquinas virtuais

traz diversos benefícios como a centralização da gerência dos softwares bem como

do controle de acesso dos usuários. Além de prover escalabilidade, confiabilidade,

flexibilidade e independência de plataformas por parte dos usuários.

Espera-se ainda permitir a racionalização dos recursos no estabelecimento

dos critérios de agendamento obedecendo às leis vigentes de licenciamento de

software.

A implementação do método apresentado neste trabalho proporcionou

resultados satisfatórios, demonstrando a viabilidade no desenvolvimento de uma

infraestrutura de instrumentação remota utilizando a virtualização de sistemas

operacionais para a hospedagem e disponibilização de softwares que possam ser

utilizados em laboratórios remotos.

Contudo, o método ainda poderá sofrer modificações no decorrer do tempo.

Pois, em trabalhos futuros novas ferramentas de virtualização e de acesso aos

aplicativos remotos poderão ser testados e possivelmente possibilitarão novas

funcionalidades e perspectivas na utilização, como o suporte a conexão USB para

máquinas hóspedes e substituição de ferramentas proprietárias por livres, desde que

se mantenha a qualidade.

Page 49: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

49

REFERÊNCIAS

ALTPETER, F., S. CH., et al. A General Instrument for Real-Time Control and Data Acquisition. 3rd IFAC/IFIP Workshop on Algorithms and Architecture for Real Time Control. Ostend, Belgica. Junho, 1995. 323-327 p. BARHAM, P.; DRAGOVIC, B.; FRASER, K.; HAND, S.; HARRIS, T.; Ho, A.; NEUGEBAUER, R.; PRATT, I.; WARFIELD, A. Xen and the Art of Visualization. In Proc. 19th ACM Symp. On Operating System Principles (SOSPí03), 2003. CARISSIMI, A. Virtualização: da teoria a soluções. In Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos, 2008, Rio de Janeiro. Livro texto dos minicursos. Rio de Janeiro: SBC, 2008. p. 174-199. CAMPOS, G. H. B.; COUTINHO, L.; ROQUE, G. O. B. Design didático: O desafio de um Metacurso. PUC-RJ, 2005. COUTINHO, L. Web Didática: um modelo para auxílio na elaboração de cursos baseados na Web, Dissertação de mestrado, Programa de Pós-graduação do Instituto de Matemática, Núcleo de Computação Eletrônica, UFRJ, 2003. GUIA DO HARDWARE, Documentação sobre a instalação do NX Server, 2011. <http://www.hardware.com.br/artigos/instalando-nx-server-versao-gratuita/ > Acesso em: 01/11/2011. GUIA FOCA GNU/LINUX, Documentação Completa sobre o GNU/Linux. <http://www.guiafoca.org> Acesso em: 22/11/2011. KIRSCHNER, P. A. e F. PAAS. Web-enhanced higher education: a tower of Babel. Computers in Human Behavior, v.17, n.4, p.347-353. 2001. MICROSOFT TECHNET, RemoteApp Serviços de Terminal (TS RemoteApp). <http://technet.microsoft.com/pt-br/library/cc753844(WS.10,printer).aspx> Acesso em: 14/11/2011. MURRAY, S.; LOWE, D.; LINDSAY, E.; LASKY, V.; and LIU, D. Experiences with a Hybrid Architecture for Remote Laboratories, IEEE. NY USA, 2008. NAJMANOVICH, D. O sujeito encarnado – questões para pesquisa no/do cotidiano. Rio de Janeiro: DP&A, 2001 NEDIC, Z., J. MACHOTKD, et al. Remote Laboratories versus Virtual and Real Laboratories. 33rd ASEE/IEEE Frontiers in Education Conference. Boulder, Colorado, USA: IEEE, 2003. T3E p. NOMACHINE. Documentação sobre o servidor NX Server. <http://www.nomachine.com/documents.php> Acesso em: 01/11/2011.

Page 50: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

50

OGIBOSKI,L. ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO. Laboratório remoto baseado em software livre para realização de experimentos didáticos. São Paulo, 2007. Dissertação de Mestrado. OLIVEIRA, G. INSTITUTO SUPERIOR TUPY. Estudo comparativo de metodologias de consolidação de servidores para a elaboração de uma proposta de implementação, 2004. RDESKTOP, Conexão remota de máquinas Linux a máquinas Windows. <www.rdesktop.org/> Acesso em: 17/11/2011. SILBERCHATZ, A.; GALVIN, P. Sistemas Operacionais: Conceitos. 5ª Edição. Prentice Hall, São Paulo, 2000. SILVA, M. R. P.; ZANETI, G. B.; ZAGO, M. G e SOUZA A. N. TI Verde – Princípios e Práticas Sustentáveis para Aplicação em Universidades, 2009. SMITH, J.E; NAIR, R. The architecture of virtual machines. IEEE Computer, v.38, n.5, pp. 32-38, 2005. TANEMBAUM, A. S. Sistemas Operacionais Modernos, 3ª Edição. Pearson Prentice Hall, São Paulo, 2010. VIEIRA, W. V. CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO ESPÍRITO SANTO. Virtualização. Mostra Tecnológica do CEFET-ES, 2008. WIKIPEDIA, Documentação sobre o sistema operacional Windows. < http://en.wikipedia.org/wiki/microsoft_windows > Acessado: 24/11/2011.

Page 51: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

51

ANEXOS

ANEXO A – Código-fonte do pacote RDP utilizado no RemoteApp

1. redirectclipboard:i:1 2. redirectposdevices:i:0 3. redirectprinters:i:1 4. redirectcomports:i:1 5. redirectsmartcards:i:1 6. devicestoredirect:s:* 7. drivestoredirect:s:* 8. redirectdrives:i:1 9. session bpp:i:32 10. span monitors:i:1 11. prompt for credentials on client:i:1 12. remoteapplicationmode:i:1 13. server port:i:3389 14. allow font smoothing:i:1 15. promptcredentialonce:i:1 16. authentication level:i:0 17. gatewayusagemethod:i:2 18. gatewayprofileusagemethod:i:0 19. gatewaycredentialssource:i:0 20. full address:s:SRV-REMOTE 21. alternate shell:s:||VISIO 22. remoteapplicationprogram:s:||VISIO 23. gatewayhostname:s: 24. remoteapplicationname:s:VISIO.EXE 25. remoteapplicationcmdline:s: 26. signscope:s:Full Address,Server

Port,GatewayHostname,GatewayUsageMethod,GatewayProfileUsageMethod,Gat

ewayCredentialsSource,PromptCredentialOnce,Alternate

Shell,RemoteApplicationProgram,RemoteApplicationMode,RemoteApplicatio

nName,RemoteApplicationCmdLine,Authentication

Level,RedirectDrives,RedirectPrinters,RedirectCOMPorts,RedirectSmartC

ards,RedirectPOSDevices,RedirectClipboard,DevicesToRedirect,DrivesToR

edirect

27. signature:s:AQABAAEAAACgCwAAMIILnAYJKoZIhvcNAQcCoIILjTCCC4kCAQExCzAJBgUrDgMC [...]

Comentários do autor: Linha 13 – Porta do servidor Terminal Services (RemoteApp). Linha 20 – Nome NetBIOS completo do servidor. Linha 21 – Nome do aplicativo para chamada via prompt do comandos do Windows. Linha 22 – Nome do aplicativo para conexão remota. Linha 22 – Parâmetros de configuração da conexão entre cliente e servidor. Linha 27 a [...] – Resposta aos parâmetros de configuração da conexão entre cliente e servidor. Este campo é criptografado para a segurança da comunicação.

Page 52: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

52

ANEXO B – Código-fonte do script de conexão utilizando o NX Server

1. <!DOCTYPE NXClientSettings> 2. <NXClientSettings application="nxclient" version="1.3" > 3. <group name="Advanced" > 4. <option key="Cache size" value="16" /> 5. <option key="Cache size on disk" value="64" /> 6. <option key="Current keyboard" value="true" /> 7. <option key="Custom keyboard layout" value="" /> 8. <option key="Disable DirectDraw" value="false" /> 9. <option key="Disable ZLIB stream compression" value="false" /> 10. <option key="Disable deferred updates" value="false" /> 11. <option key="Enable HTTP proxy" value="false" /> 12. <option key="Enable SSL encryption" value="true" /> 13. <option key="Enable response time optimisations" value="false" /> 14. <option key="Grab keyboard" value="false" /> 15. <option key="HTTP proxy host" value="" /> 16. <option key="HTTP proxy port" value="8080" /> 17. <option key="HTTP proxy username" value="" /> 18. <option key="Remember HTTP proxy password" value="false" /> 19. <option key="Restore cache" value="true" /> 20. <option key="StreamCompression" value="" /> 21. </group> 22. <group name="Environment" > 23. <option key="Font server host" value="" /> 24. <option key="Font server port" value="7100" /> 25. <option key="Use font server" value="false" /> 26. </group> 27. <group name="General" > 28. <option key="Automatic reconnect" value="true" /> 29. <option key="Command line"

value="/home/fritzing.2011.08.18.linux.i386/Fritzing.sh" />

30. <option key="Custom Unix Desktop" value="application" /> 31. <option key="Desktop" value="console" /> 32. <option key="Disable SHM" value="false" /> 33. <option key="Disable emulate shared pixmaps" value="false" /> 34. <option key="Link speed" value="adsl" /> 35. <option key="Remember password" value="true" /> 36. <option key="Resolution" value="available" /> 37. <option key="Resolution height" value="600" /> 38. <option key="Resolution width" value="800" /> 39. <option key="Server host" value="000.000.000.000" /> 40. <option key="Server port" value="22" /> 41. <option key="Session" value="unix" /> 42. <option key="Spread over monitors" value="false" /> 43. <option key="Use default image encoding" value="0" /> 44. <option key="Use render" value="true" /> 45. <option key="Use taint" value="true" /> 46. <option key="Virtual desktop" value="false" /> 47. <option key="XAgent encoding" value="true" /> 48. <option key="displaySaveOnExit" value="true" /> 49. <option key="xdm broadcast port" value="177" /> 50. <option key="xdm list host" value="localhost" /> 51. <option key="xdm list port" value="177" /> 52. <option key="xdm mode" value="server decide" /> 53. <option key="xdm query host" value="localhost" /> 54. <option key="xdm query port" value="177" /> 55. </group> 56. <group name="Images" >

Page 53: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

53

57. <option key="Disable JPEG Compression" value="0" /> 58. <option key="Disable all image optimisations" value="false" /> 59. <option key="Disable backingstore" value="false" /> 60. <option key="Disable composite" value="false" /> 61. <option key="Image Compression Type" value="3" /> 62. <option key="Image Encoding Type" value="0" /> 63. <option key="Image JPEG Encoding" value="false" /> 64. <option key="JPEG Quality" value="6" /> 65. <option key="RDP Image Encoding" value="3" /> 66. <option key="RDP JPEG Quality" value="6" /> 67. <option key="RDP optimization for low-bandwidth link" value="false"

/>

68. <option key="Reduce colors to" value="" /> 69. <option key="Use PNG Compression" value="true" /> 70. <option key="VNC JPEG Quality" value="6" /> 71. <option key="VNC images compression" value="3" /> 72. </group> 73. <group name="Login" > 74. <option key="Auth" value="(]N@1;%oaYB3!yjQC>+qc[G4${[email protected]_*" /> 75. <option key="Guest Mode" value="false" /> 76. <option key="Guest password" value="" /> 77. <option key="Guest username" value="" /> 78. <option key="Login Method" value="nx" /> 79. <option key="Public Key" value="-----BEGIN DSA PRIVATE KEY----- 80. MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9 81. C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF 82. aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi 83. xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z 84. 5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG 85. fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY 86. +Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa 87. QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3 88. mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf 89. 8xAPsSKs6yZ6j1FNklfu 90. -----END DSA PRIVATE KEY----- 91. " /> 92. <option key="User" value="usuario" /> 93. </group> 94. <group name="Services" > 95. <option key="Audio" value="false" /> 96. <option key="IPPPort" value="631" /> 97. <option key="IPPPrinting" value="false" /> 98. <option key="Shares" value="false" /> 99. </group> 100. <group name="VNC Session" > 101. <option key="Display" value="0" /> 102. <option key="Remember" value="false" /> 103. <option key="Server" value="" /> 104. </group> 105. <group name="Windows Session" > 106. <option key="Application" value="" /> 107. <option key="Authentication" value="2" /> 108. <option key="Color Depth" value="8" /> 109. <option key="Domain" value="" /> 110. <option key="Image Cache" value="true" /> 111. <option key="Password" value="senha" /> 112. <option key="Remember" value="true" /> 113. <option key="Run application" value="true" /> 114. <option key="Server" value="" /> 115. <option key="User" value="" /> 116. </group>

Page 54: TCC - MÉTODO DE VIRTUALIZAÇÃO PARA DISPONIBILIZAÇÃO DE SOFTWARES EM LABORATÓRIOS REMOTOS INTERATIVOS

54

117. <group name="share chosen" > 118. <option key="Share number" value="0" /> 119. </group> 120. </NXClientSettings>

Comentários do autor:

Linha 12 – Opção de encriptação da conexão com protocolo SSL. Linha 16 – Número da porta HTTP a ser utilizada. Linha 29 – Local onde é inserido o comando que chama o aplicativo, ou seja, o endereço do arquivo executável do software remoto. No exemplo está sendo executado software Fritzing. Linhas 37 e 38 – São configuradas a altura e largura da janela do aplicativo que será executado, que pode ser configurada livremente. A resolução utilizada no exemplo é 800x600. Linha 39 – IP do servidor NX. Linha 40 – Porta do protocolo da conexão, no caso porta 22, protocolo SSH. Linhas de 79 a 90 – Chave pública compartilhada na conexão. Linha 29 – Usuário a ser conectado no servidor NX. Linha 29 – Senha para o usuário a ser conectado no servidor NX.