SlideShare a Scribd company logo
1 of 12
A Integração do Serviço de Distribuição de Software num
      Ambiente de TI Corporativo em Plataforma Livre
           Mauro Tapajós Santos, Renata Abadia Rodrigues de Oliveira

         Centro de Excelência em Servidores de Missão Crítica (CESMIC) -
        Universidade Católica de Brasília (UCB) – Q.S. 07 – Lote 01 – EPCT –
                       71966-700 – Taguatinga – DF - Brasil

                tapajos@abordo.com.br, renatarodrigues@ucb.br

    Abstract. For the enterprise, the first thing to consider in a migration process
    towards a free software platform is mainly the essential network services.
    However, there is a lack of administration tools for IT environments that work
    together as a solution for network services infraestructure, making easier the
    way for a complete integration. In this context, is proposed a software
    package distribution service as the first in a series of network services that
    will compose a centralized IT administration architecture, free software based
    and suited for corporate IT environments.

    Resumo. Dentro de uma organização, a primeira questão a ser tratada num
    processo de migração para plataforma livre é a manutenção de serviços
    essenciais. Entretanto, faltam ferramentas de administração de ambientes de
    TI que propiciem uma gerência não só eficiente, mas também integrada
    desses serviços básicos, permitindo não só administrá-los isoladamente, mas
    também integrá-los de forma facilitada. Neste contexto, propõe-se um serviço
    de distribuição automática de pacotes de software como o primeiro de uma
    série de serviços que irão compor uma arquitetura de gerência de TI, baseada
    em software livre e capaz de atender a ambientes corporativos.



1. Introdução

O ambiente de TI atual exige determinados serviços de rede que garantem a operação
normal de redes corporativas. No mundo das plataformas livres, se observa que estes
serviços estão disponíveis, porém de forma desagregada, como os serviços que
envolvem autenticação de usuários e aplicações, serviços que permitem acesso à
recursos de rede (arquivos, impressoras, etc), e serviços diversos como os que realizam
backup de dados ou distribuem software via rede para estações de usuários. A
integração destes serviços é fundamental para a adoção da plataforma livre em redes
corporativas.

       Apresenta-se então o mecanismo de distribuição de software como serviço
básico de rede. Este serviço é extremamente importante para o correto funcionamento de
uma arquitetura de TI corporativa e serve de base para muitos dos demais a serem
comentados adiante.
Neste artigo será feita uma contextualização do ambiente de TI corporativo,
descrevendo uma arquitetura integrada de gerenciamento. Em seguida serão colocados
os conceitos básicos que envolvem o serviço de distribuição de software para apresentar
sua importância e seu funcionamento numa arquitetura integrada para gerenciamento de
ambiente de TI livre.



2. O Ambiente de TI Atual

Um ambiente de TI operacional exige, atualmente, serviços básicos como:

   •   Autenticação de usuários na rede (através dos processos de login) para que estes
       possam utilizar os recursos de rede disponíveis;

   •   Personalizações no processo de login do usuário (uso de scripts de inicialização,
       avisos e alertas) para automatizar processos internos;

   •   Impressão via rede, de acordo com regras e quotas pré-definidas;

   •   Acesso a arquivos em servidores em rede, com controle de acesso adequado;

   •   Execução controlada e agendada de cópias de redundância de arquivos – backup;

   •   Disponibilização de softwares anti-vírus e suas atualizações;

   •   Instalações e atualizações automáticas de aplicações nas estações de trabalho;

   •   Geração automática de inventário do parque de TI para gerenciamento de
       configuração;

   •   Geração e tratamento de arquivos de logs dos sistemas.

        O gerenciamento integrado de um ambiente como este deve ser feito através de
mecanismos de controle que dependam da integração de todos os serviços de rede,
principalmente em ambientes UNIX ou derivados. Esta integração é possível quando os
comandos e configurações são aplicados de forma global no sistema como um todo.
Assim, as operações dos serviços sobre o ambiente são antecedidas por consultas de
informações sobre sistemas e usuários, e suas realizações são traduzidas em informações
registradas e mantidas por uma entidade centralizada [RFC2307]. Neste contexto é
inserido um servidor de diretórios cuja função é centralizar as informações necessárias à
operação integrada.

       O servidor de diretórios armazena dados como senhas de usuários, privilégios de
impressão, sistemas de arquivos disponíveis em rede, servidores em operação, controle
de acesso aos recursos de rede e permissões de execução de softwares. O servidor de
diretórios é um banco de dados cujo objetivo é atender, da forma mais eficaz e rápida, a
consultas de aplicações externas, ou seja, é um banco de dados otimizado para
operações de leitura.

        O serviço de diretórios aparece então como componente essencial dentro de uma
arquitetura integrada de TI. Em vista de sua importância, o serviço de diretórios
normalmente é implementado em soluções redundantes e, em alguns casos, distribuídas
[CRUZ, SANTOS E MEDEIROS 2004] de forma a atender melhor às requisições de
clientes em rede.

        O acesso a um servidor de diretórios também é um elemento importante que
pode influir diretamente no tempo de resposta que as aplicações terão ao questionar o
diretório. O protocolo LDAP [RFC3377] é um padrão IETF para acesso a servidores de
diretórios. É leve e funcional. Além disso, possui um número razoável de
implementações operacionais em plataforma livre, como o OpenLDAP [OpenLDAP].
Por estas razões, o LDAP é apresentado aqui como o protocolo de uso na arquitetura
integrada de gerenciamento de TI aqui descrita.



3. Operação Integrada de Serviços de TI

Existem algumas alternativas para um ambiente totalmente integrado tais como as
soluções disponibilizadas por fabricantes como Novell e Microsoft. Em ambas estão
presentes as características do mundo proprietário: dependência de um único fabricante,
opções de suporte restritas e caras, polarização para um conjunto limitados de
plataformas ou tecnologias, custos de licenciamento altos, nenhuma liberdade de
atuação no código fonte e uma evolução ditada apenas por diretrizes de negócio dos
fabricantes.

        Em ambientes livres, muitas das características de desenvolvimento dos sistemas
UNIX são herdadas, sendo considerada aqui, principalmente, a estratégia de se
desenvolver funcionalidades, de modo atômico, para depois integrá-las. Esta abordagem
é válida também para os serviços de rede em discussão.

        Dentro da proposta de um ambiente de TI livre e integrado, deve existir no seu
núcleo, um serviço de diretórios único e saudável acessado por serviços e aplicações
externas, via protocolo LDAP [CRUZ, SANTOS E MEDEIROS 2004]. Isto garante que
toda a informação de administração usada pelos serviços de rede será coerente e única,
armazenada no serviço de diretórios.

        Adotada a solução com serviço de diretórios centralizando as informações de
serviços de rede, pode-se então definir os serviços básicos do ambiente. O serviço de
distribuição de software automatiza a instalação e atualização de softwares em estações
e servidores em rede. Muitos dos outros serviços de rede podem fazer uso desta
facilidade para a execução de seus próprios mecanismos.

       A distribuição de software trabalha com unidades chamadas de pacotes de
software. A seção a seguir detalha com são montados estes pacotes.



4. Pacotes de Software

Usuários em workstations necessitam de aplicações para realizar seus trabalhos tais
como editores de texto, navegadores WEB, compiladores, etc. Um dos serviços de rede
primordiais num ambiente de TI é a distribuição de aplicações para tais usuários em
workstations [KIRZNER 2003].

        Esta tarefa não é simples por que atua no âmago do sistema computacional: seus
programas e os arquivos que o implementam. Nos ambientes mais simples, a estratégia
é manter uma equipe que percorra fisicamente cada estação e realiza o trabalho de
instalação, atualização e desinstalação de componentes e aplicações de software.
Obviamente, esta não é a solução desejada diante do custo de se manter tal equipe e das
dificuldades de gerenciamento (controle de quais alterações foram feitas, quando e por
quem).

        Numa arquitetura de administração integrada para plataforma livre, o processo
de distribuição de software deve ser automatizado, para permitir um controle total de
quais aplicações estão sendo instaladas e atualizadas, mantendo as informações
relacionadas no serviço de diretórios. Os detalhes deste serviço são apresentados na
seção 5.

       Uma aplicação é constituída por alguns ou todos os seguintes elementos:

   •   Arquivos executáveis binários para uma determinada plataforma computacional
       (i386, AMD, Palmtops, Mainframe, etc);

   •   Arquivos de instrução em linguagens compiladas (código fonte a ser compilado
       previamente para execução);

   •   Arquivos de instrução em linguagens interpretadas (como por exemplo scripts);

   •   Ambiente de interpretação (como uma máquina virtual JAVA ou interpretador
       PERL);

   •   Bibliotecas de rotinas, compiladas ou não;

   •   Arquivos de configuração diversos;

   •   Arquivos adjuntos necessários para a aplicação: imagens, documentação,
       animações, palhetas de cores, drivers, ou qualquer outro.

       Em plataforma livre, é comum a disponibilização de software em formato aberto.
Com isso, é possível a visualização de seu código fonte, mas é exigido o passo de
compilação do mesmo, de forma a criar arquivos executáveis binários necessários e
específicos para a plataforma em questão [VOLKERDING 1997]. Entre as vantagens
desta alternativa, está o fato do código poder ser auditado (verificado) e alterado, de
acordo com possíveis demandas de personalização e geração de binários otimizados
para a plataforma. Na montagem da árvore de arquivos de código fonte, é necessário
que se tenha a informação de que arquivos de código compõem o binário sendo criado.
Mais além, um mesmo binário pode ser criado a partir de vários binários intermediários
chamados de arquivos objetos. Assim, os arquivos objetos podem compor um arquivo
executável ou até mesmo uma biblioteca.

         Para descrever estes relacionamentos, é comum o uso de ferramentas de
automatização do processo de montagem dos binários necessário para a aplicação. O
utilitário make [MAKE] pode manter as informações de criação dos binários em
arquivos de configuração chamados de makefiles. Nestes, estão descritos todos os
arquivos de código e as instruções para a compilação e montagem dos binários.

       Uma vez pronta, a aplicação é disparada no sistema, por um arquivo executável,
que se encarrega de realizar as devidas chamadas para os demais componentes.

        Cada aplicação é composta de um ou mais pacotes de software que podem conter
os tipos de arquivos listados anteriormente. Os pacotes são criados e mantidos de forma
individual e são tratados pelas operações de distribuição de software desta mesma
forma.

       Um pacote de software é um conjunto organizado e completo de arquivos e
instruções para sua instalação num sistema computacional. Este conjunto compõe
principalmente aplicações, mas pode conter bibliotecas, documentação ou dados
quaisquer [FOSTER-JOHNSON 2003]. Configurações como o acerto de caminhos
padrões e ajuste de variáveis de ambiente podem ser necessárias e estarão descritas no
próprio pacote. Cada pacote possui uma numeração de versão que o identifica diante das
demais versões do mesmo pacote e serve de referência para as informações de
dependências.

       Apesar de individualizados, os pacotes de software podem ter dependências uns
dos outros. Por exemplo, se for necessária a instalação de uma aplicação de criptografia,
ela pode requerer a prévia instalação no sistema de uma biblioteca de rotinas
criptográficas, da qual faz uso. Diante deste fato, os mecanismos de gerenciamento de
pacotes a serem adotados deverão compreender corretamente a cadeia de dependências
que existe entre pacotes de software.

       Para realizar as funções de instalação e manutenção de aplicações em estações
ou até mesmo servidores, é necessária a definição de formatos padrões para transporte
dos arquivos e suporte de instalação das aplicações.

       Dentre as alternativas de formatos de pacotes em software livre, as mais usadas
[MANAGING 2003] são o formato RPM (RedHat Package Manager) [RPM], o dpkg
(arquivos .deb - usado pelo gerenciador de pacotes da distribuição Linux Debian) e o
formato usado pela distribuição Slackware (arquivos .tgz).

       Todas têm em comum o objetivo de permitir a instalação fácil via rede ou outras
mídias como CD's e DVD's. Cada uma porém organiza os arquivos e configurações de
formas diferentes e podem ou não exigir no sistema ferramentas de manipulação destes
pacotes como o RPM (utilitário rpm) e o Debian (utilitário dpkg). O formato Slackware
oferece utilitários [SLACKWARE] mas permite que se trabalhe diretamente com os
pacotes realizando as operações manualmente.

        Um item importante a considerar nos formatos de pacotes é a facilidade de se ter
scripts de pré e pós-instalação que rodariam, respectivamente, antes e depois da
instalação do pacote. Este recurso dá grande flexibilidade para personalizar o sistema
para o pacote em questão. Todos os formatos citados possuem esta característica.

        Os pacotes também podem conter código fonte. O suporte ao uso de makefiles é
outro item de interesse. Ferramentas de geração de pacotes nos formatos citados existem
e podem suportar a geração de pacotes binários a partir de código fonte através da
análise de makefiles.

        As operações de distribuição de software irão usar pacotes de software como os
descritos anteriormente. Desta forma, será necessário definir que formatos são mais
adequados e como eles serão usados pelo serviço de distribuição de software.



5. Serviço de Distribuição de Software

        O uso de uma aplicação se inicia com a instalação da mesma na estação do
cliente. O processo de instalação de aplicações, em maior ou menor grau, envolve as
seguintes operações:

1. Cópia dos pacotes de software (normalmente em formato compactado) que compõem
   a aplicação, para a estação via rede;

2. Descompressão dos arquivos em local apropriado;

3. Geração dos arquivos binários executáveis;

4. Transferência dos arquivos gerados para locais adequados dentro da estação;

5. Configurações da aplicação na estação, onde pode ser necessária a interação com o
   usuário administrador da mesma (usuário root);

6. Configurações específicas para o usuário, onde pode ser necessária a interação com o
   mesmo.

       Estes passos nem sempre são fáceis e diretos em ambiente livre [KIRZNER
2003], principalmente para usuários leigos. A solução adotada deve automatizar, ao
máximo, o processo com o uso de instaladores.

       O problema é que plataformas livres diferem bastante entre si, em termos de
configurações e componentes presentes no sistema. Além disso, é preciso que o sistema
tenha o suporte devido ao processo de compilação e geração dos binários que rodarão a
aplicação. Itens como compiladores e bibliotecas devem já estar disponíveis no sistema,
caso contrário, os próprios devem ser instalados previamente.

       Com isso, surgiram várias ferramentas em plataforma livre que padronizam e
automatizam o processo de instalação e manutenção de software nas estações de
trabalho, realizando ou não (no caso do rpm) a instalação, via rede. Algumas das
opções são utilitários em linha de comando como o próprio rpm [BLY e ALLAN 2004]
(usado com pacotes do formato RPM), o yum (também usado com pacotes RPM), o apt-
get (usado com pacotes debian .deb) e o emerge (usado pelo Portage – sistema
gerencidor de software da distribuição Linux Gentoo). Outros já são aplicações em
ambiente gráfico como o synaptic (que trata pacotes do tipo RPM ou Debian), o
up2date (usado pela distribuição RedHat) e o Yast (usado pela distribuição SUSE para
pacotes RPM).

        Um detalhe a ressaltar é que em plataforma livre as aplicações estão em processo
de desenvolvimento e evolução contínua. Isto resulta numa necessidade constante de
atualizações dos pacotes de software instalados. Qualquer arquitetura que se proponha
para este fim, deverá permitir este tipo de mecanismo, de modo eficiente e flexível. Em
outras palavras, a arquitetura deverá tratar adequadamente as atualizações através do
controle de versões de pacotes de software.

        Para o tratamento correto dos aspectos citados previamente, é necessário um
serviço de distribuição de software via rede. O serviço de distribuição de software é
responsável em garantir nas estações de usuários (e até em servidores) a correta
descarga, instalação e configuração de aplicações através de seus pacotes de softwares,
mantendo contínua observância dos mesmos com o objetivo de garantir as devidas
atualizações via rede.

        Para distribuir software, é necessário implementar um repositório para os pacotes
de software. Este deve ser alcançado via rede, onde clientes do sistema de distribuição
possam receber os pacotes e instalá-los. Não é interessante que se tenham cópias
diversas dos pacotes em cada estação ou servidor de forma descoordenada. A
abordagem com um repositório master garante que haja somente um ponto de
distribuição básico evitando problemas de incoerência nos pacotes, mas coloca toda a
responsabilidade do processo de distribuição num único servidor de arquivos.

        Para evitar isso, mais repositórios podem ser agregados ao processo, dividindo a
carga de consultas e downloads [ANDERSON 2004]. Estes repositórios secundários
seriam então um espelho do que existe no repositório master onde as cópias
inicialmente são colocadas. Periodicamente, devem ser feitas sincronizações dos vários
pacotes de software, a partir do servidor master para manter a atualidade dos pacotes
nos repositórios secundários. Com isso, descaracteriza-se o único ponto de falha do
repositório master e pode-se realizar uma distribuição escalável através de uma rede de
distribuição de pacotes de software que cresça, de acordo com o próprio crescimento do
ambiente de TI corporativo.

       Dentre as características notáveis em tal arquitetura de distribuição estão:

Instalação transparente e automática para o usuário – o sistema distribuidor deve
contar com uma porção cliente nas estações ou servidores e que analisará cada aplicação
sendo instalada e buscará todas as suas dependências automaticamente via rede
poupando o usuário leigo de intervenções neste sentido. Assim, dependências entre
pacotes e versões corretas serão automaticamente tratadas pelo cliente para os formatos
de pacotes de software suportados.

Adequação às limitações de rede – o sistema pode otimizar a transferência dos pacotes.
Podem-se utilizar mecanismos para poupar banda como compressão de dados no envio.
O uso de recursos de rede que otimizem o uso de banda também é desejável, como o
rsync [RSYNC] para transferência de arquivos. É também importante verificar a
operação do sistema atrás de configurações seguras com firewalls.

Categorização de software – é interessante que se possa criar grupos de softwares em
categorias como atualizações de segurança, aplicações gráficas, utilitários de sistema,
programas desenvolvidos internamente ou até mesmo dividindo os pacotes por
distribuição Linux.

Uso com diferentes plataformas – o sistema pode suportar diferentes arquiteturas e
distribuições do sistema operacional. Isto significa manipular diferentes conjuntos de
aplicações para cada uma das plataformas, tratando corretamente suas diferentes versões
e particularidades.

Administração do serviço de distribuição de pacotes de software – observar se é
possível ter a administração via WEB ou através de ferramenta própria com controle de
usuário e senha, para o administrador de pacotes de software. Este processo deve ser
seguro pois falhas podem permitir a entrada de softwares maliciosos como “cavalos de
tróia” ou impedir atualizações de segurança. É importante também que exista a
facilidade de anúncio de novos softwares para os usuários, já que normalmente não
haverá limitações de licenciamento (principalmente softwares livres).

Distribuição agendada – esta facilidade permite ao administrador definir pacotes a
serem imediatamente instalados (“push”), ou instalados até determinada data. Isto
garante a contínua atualização do parque de computadores, evitando que aplicações nas
mesmas fiquem antigas demais (por exemplo: atualizações de segurança). Uma
vantagem importante deste item é a flexibilidade de se executar distribuições de pacotes
em larga escala ao mesmo tempo na mesma rede.

Tolerância a falhas e segurança – a arquitetura deve prever o funcionamento na
ocorrência de queda de repositórios, mesmo sendo o master, mantendo ainda assim o
serviço ativo. Redundância de rede pode ser obtida com análise específica e uso de
recursos conhecidos como serviço de nomes DNS para encontrar repositórios, uso de
IP's virtuais, etc. Aspectos de segurança ainda podem ser avaliados no que diz respeito à
integridade dos pacotes (como o uso de mecanismos de checagem com MD5) e o
transporte dos pacotes entre repositórios e entre repositório e estação (como o uso de
opções de transferências de arquivos seguras como scp ou sftp e usando procedimento
de autenticação com chaves criptográficas).

       Mesmo com estas características, um serviço de distribuição de software ainda
trabalha de modo independente. Na próxima seção se insere o serviço de distribuição de
software no contexto de ambiente integrado.



6 – O Serviço de Distribuição Automatizada de Pacotes de Software dentro
de uma Arquitetura de Gerenciamento Integrada

No ambiente corporativo, o serviço de distribuição de software figura como um dos
mais importantes no gerenciamento de complexidade do ambiente, pois trata da correta
entrega e preparação de software nas estações e servidores. Porém, em plataforma livre,
este serviço ainda não possui a integração adequada com toda uma infra-estrutura de
gerenciamento do ambiente de TI. Esta arquitetura integrada parte de um serviço de
diretório preenchido com as informações necessárias para os serviços de rede operarem
(como o próprio serviço de distribuição de software).

       Para a correta integração entre o serviço de distribuição de software e o serviço
de diretórios, deverão existir objetos no diretório que contenham as informações
necessárias para que as entidades que compõem a administração de distribuição de
software possam consultar e alterar, quando forem realizar suas operações. Com isso, é
possível implementar controle no processo através das informações que estarão contidas
nos objetos em questão.

        As regras para administração integradas estarão em objetos que devem descrever
itens básicos como:

1. Usuários e grupos de usuários cadastrados e ativos no ambiente;

2. Aplicações disponibilizadas pelo serviço de distribuição de pacotes de software;

3. Privilégios de instalação, uso e atualização de aplicações para grupos de usuários e
   estações de trabalho;

4. Inventário atualizado de TI do ambiente – configurações de hardware e software
   instalados em cada uma das máquinas e servidores.

        Estas regras devem descrever os processos internos de cada corporação.
Usuários e grupos serão definidos unicamente para toda a arquitetura. Permissões de
instalação e execução de aplicações são dadas com base nas regras em vigor nos
processos internos de TI. As mesmas informações de usuários e grupos se aplicarão para
os demais serviços integrados da arquitetura de gerenciamento, como autenticação e
impressão em rede.

        O processo de administração do serviço de distribuição de software por sua vez
será responsável por inserir e retirar os pacotes de softwares a serem disponibilizados no
repositório master, atualizando em paralelo o serviço de diretórios com estas
informações através do protocolo LDAP. Os respositórios secundários sincronização
com o master de forma a sempre terem o conjunto atualizado de pacotes de software.

        O cliente nas estações e servidores deve, no processo de inicialização do sistema
ou mesmo no login de usuários, verificar as aplicações e atualizações disponíveis via
protocolo LDAP, segundo os privilégios aplicados no serviço de diretórios. Após este
passo, as aplicações e atualizações podem então ser instaladas ou executadas. Os
privilégios podem se ater a usuários e grupos de usuários, ou serem aplicados também
sobre conjuntos de computadores. Assim, para ser possível uma instalação ou execução,
deve haver o cruzamento de dados de usuários e grupos com os dados de estações. A
figura 1 ilustra como funcionaria a arquitetura de distribuição de software integrada.




   Figura 1 – Serviço de Distribuição de Software Integrado com o Serviço de
                                    Diretórios


       Um passo intermediário, mas necessário na aceitação da instalação de uma
aplicação, é a prévia verificação de requisitos de plataforma para a instalação de pacotes
de software. Isto é possível através de análise das informações de inventário contidas no
serviço de diretórios. Por exemplo, se um pacote de software que contém um aplicativo
de escritório deve ser instalado numa estação, então é feita uma verificação se existe
espaço em disco ou quantidade de memória suficiente na mesma, analisando o
inventário da estação nas informações do serviço de diretórios. Sendo os requisitos de
plataforma satisfeitos, a instalação prossegue checando os privilégios necessários.

       Dentro da solução com protocolo LDAP é possível se encontrar objetos nos
schemas de objetos padrões para atender somente ao item 1. Os demais itens devem ser
modelados e descritos como objetos em novos schemas que estenderiam o conjunto de
objetos num servidor LDAP em plataforma livre, preferencialmente o OpenLDAP.

       O sistema de gerenciamento de ambientes de TI (GATI) [CRUZ, SANTOS E
MEDEIROS 2004], possui um módulo integrado de distribuição de software que segue
as linhas aqui descritas e está em desenvolvimento da sua versão 2. Este
desenvolvimento é demanda do SERPRO para o projeto CESMIC na Universidade
Católica de Brasília (UCB).



7. Conclusão

Um ambiente de TI saudável e escalável exige a integração dos seus serviços básicos, de
forma a permitir sua operação devidamente controlada, otimizando recursos e atendendo
melhor às demandas de usuários. Foi visto que esta solução deve conter um serviço de
diretórios cujo objetivo é manter as informações operacionais de uso dos diversos
serviços de rede. A opção mais indicada em plataforma livre é o uso do padrão LDAP,
cuja implementação mais popular é o OpenLDAP.

        Diante da diversidade de aplicativos disponíveis, é necessário o trabalho de
desenvolvimento e integração da arquitetura de serviços de rede básicos para
plataformas baseadas em ambiente livre. Este trabalho parte do que já existe em termos
de funcionalidades e deve complementar o sistema com as funções de integração com o
serviço de diretórios, principalmente o uso do protocolo LDAP e a modelagem de novos
objetos no serviço de diretórios para o trato das informações operacionais.

(Ao meu ver a conclusão está incompleta principalmente porque ela nao casa com o
texto do artigo e com o resumo por completo! Sugiro consolidar na conclusão as
questoes referentes a distribuição de software – que foi o foco do trabalho!)



Referências

[RFC2307] Howard, L. RFC 2307: An Approach for Using LDAP as a Network
Information Service, IETF, 1998.
[RFC3377] Hodgers, J; Morgan, R. RFC 3377 Lightweight Directory Access Protocol
v3: Technical Specification, IETF, 2002.
[OpenLDAP] OpenLDAP. Disponível em: <http://www.openldap.org>. Acessado em: 1
jun. 2004.
[CRUZ, SANTOS E MEDEIROS 2004] Cruz, Fernando; Santos, Giovanni; Medeiros,
Raissa; et al. “Uma Ferramenta para a Administração de Serviços de Diretórios Basedo
no OpenLDAP”. Anais do 5 Fórum Internacional de Software Livre, pg 91, Porto
Alegre, 2004.
[KIRZNER 2003] Kirzner, Rikki. (2003) “Electronic Software Distribution: A Long
Shot”. 2003. Disponível em:
<http://www.uniforum.org/news/html/publications/ufm/mar96/swdist.html>. Acessado
em: 13 dez. 2004.
[VOLKERDING 1997] Volkerding, Patrick; Foster-Johnson, Eric; Reichard, Kevin.
Linux Programming, Mis Press, 1997.
[MAKE] “GNU Make”. Disponível em:
<http://www.gnu.org/software/make/make.html>. Acessado em: 1 jun. 2004.
[FOSTER-JOHNSON 2003] Foster-Johnson, Eric. Red Hat RPM Guide, Wiley
Publishing Inc., 2003.
[MANAGING 2003] “Managing and Deplying Software in a Linux Environment White
Paper”, (2003). Disponível em:
<http://www.bmc.com/products/documents/14/98/41498/41498.pdf>. Acessado em: 1
dez. 2004.
[RPM] “RPM”. Disponível em: <http://www.rpm.org>. Acessado em: 1 jun. 2004.
[SLACKWARE] “Slackware Packaging System”. Disponível em:
<http://www.slackware.org/config/packages.php>. Acessado em: 11 dez. 2004.
[BLY e ALLAN 2004] Bly, Martin; Allan, Alasdair; Jeness, Tim. “Source Code
Management and Software Distribution using Open Source Technologies”, 2003.
Disponível em: <http://www.adass.org/adass/proceedings/adass02/reprints/P8-2.pdf>.
Acessado em: 1 dez. 2004.
[ANDERSON 2004] Anderson, Paul. “Software Distribution and Repositories”, 997.
Disponível em: <http://homepages.inf.ed.ac.uk/dcspaul/publications/SoftDist.pdf>.
Acessado em: 13 dez. 2004.
[RSYNC] “Rsync”. Disponível em: <http://rsync.samba.org/>. Acessado em: 1 jun.
2004.
[BROCKMEIER 2003] Brockmeier, J. “Create Debian Linux Packages”. 2003.
Disponível em: < http://www-106.ibm.com/developerworks/linux/library/l-
debpkg.html>. Acessado em: 15 dez. 2004.

More Related Content

What's hot (13)

Sistemas Operacionais para Servidores
Sistemas Operacionais para ServidoresSistemas Operacionais para Servidores
Sistemas Operacionais para Servidores
 
Distributed Systems - Exercises
Distributed Systems - ExercisesDistributed Systems - Exercises
Distributed Systems - Exercises
 
Sistemas operacionais arquitetura proprietários ui
Sistemas operacionais arquitetura proprietários uiSistemas operacionais arquitetura proprietários ui
Sistemas operacionais arquitetura proprietários ui
 
Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)
 
Sistema operativo de rede
Sistema operativo de redeSistema operativo de rede
Sistema operativo de rede
 
Tipos de Servidores
Tipos de ServidoresTipos de Servidores
Tipos de Servidores
 
Programa LPI Completo - Tutorial
Programa LPI Completo - TutorialPrograma LPI Completo - Tutorial
Programa LPI Completo - Tutorial
 
12 windows server 2008 - julio
12   windows server 2008 - julio12   windows server 2008 - julio
12 windows server 2008 - julio
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Servidores de Aplicações
Servidores de AplicaçõesServidores de Aplicações
Servidores de Aplicações
 
1ª aula sistema operacional
1ª aula  sistema operacional1ª aula  sistema operacional
1ª aula sistema operacional
 
Sistemas Operativos De Grande Porte
Sistemas Operativos De Grande PorteSistemas Operativos De Grande Porte
Sistemas Operativos De Grande Porte
 

Similar to Distribuição de Software em Ambiente Corporativo Livre

integração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma Livreintegração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma LivreMauro Tapajós
 
Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...Mauro Tapajós
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreMauro Tapajós
 
3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdf3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdfDimas Francisco
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaSoftD Abreu
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Lenin Abadie
 
Artigo gerencia de_redes
Artigo gerencia de_redesArtigo gerencia de_redes
Artigo gerencia de_redesEvandromadeira
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
Integração de software solucao e estilo
Integração de software   solucao e estiloIntegração de software   solucao e estilo
Integração de software solucao e estiloGrupoAlves - professor
 
Infra de provedores de serviço com software livre
Infra de provedores de serviço com software livreInfra de provedores de serviço com software livre
Infra de provedores de serviço com software livreIsaque Profeta
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...veruzkavaz
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...veruzkavaz
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em NuvemVitor Savicki
 
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]Ministério Público da Paraíba
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosClaudio Eckert
 

Similar to Distribuição de Software em Ambiente Corporativo Livre (20)

integração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma Livreintegração de Serviços no Processo de Migração para uma Plataforma Livre
integração de Serviços no Processo de Migração para uma Plataforma Livre
 
Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...Integração de Serviços como requisito fundamental no processo de migração par...
Integração de Serviços como requisito fundamental no processo de migração par...
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livre
 
3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdf3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdf
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresa
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
 
TRABALHO DE TI
TRABALHO DE TITRABALHO DE TI
TRABALHO DE TI
 
Artigo gerencia de_redes
Artigo gerencia de_redesArtigo gerencia de_redes
Artigo gerencia de_redes
 
Computação em Nuvem: conceitos básicos
Computação em Nuvem: conceitos básicosComputação em Nuvem: conceitos básicos
Computação em Nuvem: conceitos básicos
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
Integração de software solucao e estilo
Integração de software   solucao e estiloIntegração de software   solucao e estilo
Integração de software solucao e estilo
 
Integração de software 2
Integração de software 2Integração de software 2
Integração de software 2
 
Infra de provedores de serviço com software livre
Infra de provedores de serviço com software livreInfra de provedores de serviço com software livre
Infra de provedores de serviço com software livre
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em Nuvem
 
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizados
 

More from Mauro Tapajós

Proyecto liberació SIGATI
Proyecto liberació SIGATIProyecto liberació SIGATI
Proyecto liberació SIGATIMauro Tapajós
 
Propostas de Autenticação para SNMP
Propostas de Autenticação para SNMPPropostas de Autenticação para SNMP
Propostas de Autenticação para SNMPMauro Tapajós
 
Migração para Software Livre nas Universidades
Migração para Software Livre nas UniversidadesMigração para Software Livre nas Universidades
Migração para Software Livre nas UniversidadesMauro Tapajós
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Mauro Tapajós
 
Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?Mauro Tapajós
 
Processo de Startup do Linux
Processo de Startup do LinuxProcesso de Startup do Linux
Processo de Startup do LinuxMauro Tapajós
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições LinuxMauro Tapajós
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosMauro Tapajós
 
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaFISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaMauro Tapajós
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxMauro Tapajós
 
Pequena Apostila sobre Software Livre
Pequena Apostila sobre Software LivrePequena Apostila sobre Software Livre
Pequena Apostila sobre Software LivreMauro Tapajós
 
Apresentação da tese - Autenticação para SNMP
Apresentação da tese - Autenticação para SNMPApresentação da tese - Autenticação para SNMP
Apresentação da tese - Autenticação para SNMPMauro Tapajós
 
Gerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRSGerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRSMauro Tapajós
 
Gerência de Redes - 8.Tópicos Avançados
Gerência de Redes - 8.Tópicos AvançadosGerência de Redes - 8.Tópicos Avançados
Gerência de Redes - 8.Tópicos AvançadosMauro Tapajós
 
Gerência de Redes - 7.Ferramentas e Sitemas de Gerenciamento
Gerência de Redes - 7.Ferramentas e Sitemas de GerenciamentoGerência de Redes - 7.Ferramentas e Sitemas de Gerenciamento
Gerência de Redes - 7.Ferramentas e Sitemas de GerenciamentoMauro Tapajós
 
Gerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSIGerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSIMauro Tapajós
 

More from Mauro Tapajós (20)

Proyecto liberació SIGATI
Proyecto liberació SIGATIProyecto liberació SIGATI
Proyecto liberació SIGATI
 
Propostas de Autenticação para SNMP
Propostas de Autenticação para SNMPPropostas de Autenticação para SNMP
Propostas de Autenticação para SNMP
 
Asterisk
AsteriskAsterisk
Asterisk
 
Migração para Software Livre nas Universidades
Migração para Software Livre nas UniversidadesMigração para Software Livre nas Universidades
Migração para Software Livre nas Universidades
 
Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)Códigos Convolucionais (sequenciais)
Códigos Convolucionais (sequenciais)
 
Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?Posso rodar minhas aplicações corporativas sobre linux?
Posso rodar minhas aplicações corporativas sobre linux?
 
Software Winrad
Software WinradSoftware Winrad
Software Winrad
 
Processo de Startup do Linux
Processo de Startup do LinuxProcesso de Startup do Linux
Processo de Startup do Linux
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições Linux
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
 
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaFISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no Linux
 
Pequena Apostila sobre Software Livre
Pequena Apostila sobre Software LivrePequena Apostila sobre Software Livre
Pequena Apostila sobre Software Livre
 
Apresentação da tese - Autenticação para SNMP
Apresentação da tese - Autenticação para SNMPApresentação da tese - Autenticação para SNMP
Apresentação da tese - Autenticação para SNMP
 
Projeto CESMIC
Projeto CESMICProjeto CESMIC
Projeto CESMIC
 
Gerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRSGerência de Redes - 10.TMN e GIRS
Gerência de Redes - 10.TMN e GIRS
 
Gerência de Redes - 8.Tópicos Avançados
Gerência de Redes - 8.Tópicos AvançadosGerência de Redes - 8.Tópicos Avançados
Gerência de Redes - 8.Tópicos Avançados
 
Gerência de Redes - 7.Ferramentas e Sitemas de Gerenciamento
Gerência de Redes - 7.Ferramentas e Sitemas de GerenciamentoGerência de Redes - 7.Ferramentas e Sitemas de Gerenciamento
Gerência de Redes - 7.Ferramentas e Sitemas de Gerenciamento
 
Gerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSIGerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSI
 

Distribuição de Software em Ambiente Corporativo Livre

  • 1. A Integração do Serviço de Distribuição de Software num Ambiente de TI Corporativo em Plataforma Livre Mauro Tapajós Santos, Renata Abadia Rodrigues de Oliveira Centro de Excelência em Servidores de Missão Crítica (CESMIC) - Universidade Católica de Brasília (UCB) – Q.S. 07 – Lote 01 – EPCT – 71966-700 – Taguatinga – DF - Brasil tapajos@abordo.com.br, renatarodrigues@ucb.br Abstract. For the enterprise, the first thing to consider in a migration process towards a free software platform is mainly the essential network services. However, there is a lack of administration tools for IT environments that work together as a solution for network services infraestructure, making easier the way for a complete integration. In this context, is proposed a software package distribution service as the first in a series of network services that will compose a centralized IT administration architecture, free software based and suited for corporate IT environments. Resumo. Dentro de uma organização, a primeira questão a ser tratada num processo de migração para plataforma livre é a manutenção de serviços essenciais. Entretanto, faltam ferramentas de administração de ambientes de TI que propiciem uma gerência não só eficiente, mas também integrada desses serviços básicos, permitindo não só administrá-los isoladamente, mas também integrá-los de forma facilitada. Neste contexto, propõe-se um serviço de distribuição automática de pacotes de software como o primeiro de uma série de serviços que irão compor uma arquitetura de gerência de TI, baseada em software livre e capaz de atender a ambientes corporativos. 1. Introdução O ambiente de TI atual exige determinados serviços de rede que garantem a operação normal de redes corporativas. No mundo das plataformas livres, se observa que estes serviços estão disponíveis, porém de forma desagregada, como os serviços que envolvem autenticação de usuários e aplicações, serviços que permitem acesso à recursos de rede (arquivos, impressoras, etc), e serviços diversos como os que realizam backup de dados ou distribuem software via rede para estações de usuários. A integração destes serviços é fundamental para a adoção da plataforma livre em redes corporativas. Apresenta-se então o mecanismo de distribuição de software como serviço básico de rede. Este serviço é extremamente importante para o correto funcionamento de uma arquitetura de TI corporativa e serve de base para muitos dos demais a serem comentados adiante.
  • 2. Neste artigo será feita uma contextualização do ambiente de TI corporativo, descrevendo uma arquitetura integrada de gerenciamento. Em seguida serão colocados os conceitos básicos que envolvem o serviço de distribuição de software para apresentar sua importância e seu funcionamento numa arquitetura integrada para gerenciamento de ambiente de TI livre. 2. O Ambiente de TI Atual Um ambiente de TI operacional exige, atualmente, serviços básicos como: • Autenticação de usuários na rede (através dos processos de login) para que estes possam utilizar os recursos de rede disponíveis; • Personalizações no processo de login do usuário (uso de scripts de inicialização, avisos e alertas) para automatizar processos internos; • Impressão via rede, de acordo com regras e quotas pré-definidas; • Acesso a arquivos em servidores em rede, com controle de acesso adequado; • Execução controlada e agendada de cópias de redundância de arquivos – backup; • Disponibilização de softwares anti-vírus e suas atualizações; • Instalações e atualizações automáticas de aplicações nas estações de trabalho; • Geração automática de inventário do parque de TI para gerenciamento de configuração; • Geração e tratamento de arquivos de logs dos sistemas. O gerenciamento integrado de um ambiente como este deve ser feito através de mecanismos de controle que dependam da integração de todos os serviços de rede, principalmente em ambientes UNIX ou derivados. Esta integração é possível quando os comandos e configurações são aplicados de forma global no sistema como um todo. Assim, as operações dos serviços sobre o ambiente são antecedidas por consultas de informações sobre sistemas e usuários, e suas realizações são traduzidas em informações registradas e mantidas por uma entidade centralizada [RFC2307]. Neste contexto é inserido um servidor de diretórios cuja função é centralizar as informações necessárias à operação integrada. O servidor de diretórios armazena dados como senhas de usuários, privilégios de impressão, sistemas de arquivos disponíveis em rede, servidores em operação, controle de acesso aos recursos de rede e permissões de execução de softwares. O servidor de
  • 3. diretórios é um banco de dados cujo objetivo é atender, da forma mais eficaz e rápida, a consultas de aplicações externas, ou seja, é um banco de dados otimizado para operações de leitura. O serviço de diretórios aparece então como componente essencial dentro de uma arquitetura integrada de TI. Em vista de sua importância, o serviço de diretórios normalmente é implementado em soluções redundantes e, em alguns casos, distribuídas [CRUZ, SANTOS E MEDEIROS 2004] de forma a atender melhor às requisições de clientes em rede. O acesso a um servidor de diretórios também é um elemento importante que pode influir diretamente no tempo de resposta que as aplicações terão ao questionar o diretório. O protocolo LDAP [RFC3377] é um padrão IETF para acesso a servidores de diretórios. É leve e funcional. Além disso, possui um número razoável de implementações operacionais em plataforma livre, como o OpenLDAP [OpenLDAP]. Por estas razões, o LDAP é apresentado aqui como o protocolo de uso na arquitetura integrada de gerenciamento de TI aqui descrita. 3. Operação Integrada de Serviços de TI Existem algumas alternativas para um ambiente totalmente integrado tais como as soluções disponibilizadas por fabricantes como Novell e Microsoft. Em ambas estão presentes as características do mundo proprietário: dependência de um único fabricante, opções de suporte restritas e caras, polarização para um conjunto limitados de plataformas ou tecnologias, custos de licenciamento altos, nenhuma liberdade de atuação no código fonte e uma evolução ditada apenas por diretrizes de negócio dos fabricantes. Em ambientes livres, muitas das características de desenvolvimento dos sistemas UNIX são herdadas, sendo considerada aqui, principalmente, a estratégia de se desenvolver funcionalidades, de modo atômico, para depois integrá-las. Esta abordagem é válida também para os serviços de rede em discussão. Dentro da proposta de um ambiente de TI livre e integrado, deve existir no seu núcleo, um serviço de diretórios único e saudável acessado por serviços e aplicações externas, via protocolo LDAP [CRUZ, SANTOS E MEDEIROS 2004]. Isto garante que toda a informação de administração usada pelos serviços de rede será coerente e única, armazenada no serviço de diretórios. Adotada a solução com serviço de diretórios centralizando as informações de serviços de rede, pode-se então definir os serviços básicos do ambiente. O serviço de distribuição de software automatiza a instalação e atualização de softwares em estações e servidores em rede. Muitos dos outros serviços de rede podem fazer uso desta facilidade para a execução de seus próprios mecanismos. A distribuição de software trabalha com unidades chamadas de pacotes de
  • 4. software. A seção a seguir detalha com são montados estes pacotes. 4. Pacotes de Software Usuários em workstations necessitam de aplicações para realizar seus trabalhos tais como editores de texto, navegadores WEB, compiladores, etc. Um dos serviços de rede primordiais num ambiente de TI é a distribuição de aplicações para tais usuários em workstations [KIRZNER 2003]. Esta tarefa não é simples por que atua no âmago do sistema computacional: seus programas e os arquivos que o implementam. Nos ambientes mais simples, a estratégia é manter uma equipe que percorra fisicamente cada estação e realiza o trabalho de instalação, atualização e desinstalação de componentes e aplicações de software. Obviamente, esta não é a solução desejada diante do custo de se manter tal equipe e das dificuldades de gerenciamento (controle de quais alterações foram feitas, quando e por quem). Numa arquitetura de administração integrada para plataforma livre, o processo de distribuição de software deve ser automatizado, para permitir um controle total de quais aplicações estão sendo instaladas e atualizadas, mantendo as informações relacionadas no serviço de diretórios. Os detalhes deste serviço são apresentados na seção 5. Uma aplicação é constituída por alguns ou todos os seguintes elementos: • Arquivos executáveis binários para uma determinada plataforma computacional (i386, AMD, Palmtops, Mainframe, etc); • Arquivos de instrução em linguagens compiladas (código fonte a ser compilado previamente para execução); • Arquivos de instrução em linguagens interpretadas (como por exemplo scripts); • Ambiente de interpretação (como uma máquina virtual JAVA ou interpretador PERL); • Bibliotecas de rotinas, compiladas ou não; • Arquivos de configuração diversos; • Arquivos adjuntos necessários para a aplicação: imagens, documentação, animações, palhetas de cores, drivers, ou qualquer outro. Em plataforma livre, é comum a disponibilização de software em formato aberto.
  • 5. Com isso, é possível a visualização de seu código fonte, mas é exigido o passo de compilação do mesmo, de forma a criar arquivos executáveis binários necessários e específicos para a plataforma em questão [VOLKERDING 1997]. Entre as vantagens desta alternativa, está o fato do código poder ser auditado (verificado) e alterado, de acordo com possíveis demandas de personalização e geração de binários otimizados para a plataforma. Na montagem da árvore de arquivos de código fonte, é necessário que se tenha a informação de que arquivos de código compõem o binário sendo criado. Mais além, um mesmo binário pode ser criado a partir de vários binários intermediários chamados de arquivos objetos. Assim, os arquivos objetos podem compor um arquivo executável ou até mesmo uma biblioteca. Para descrever estes relacionamentos, é comum o uso de ferramentas de automatização do processo de montagem dos binários necessário para a aplicação. O utilitário make [MAKE] pode manter as informações de criação dos binários em arquivos de configuração chamados de makefiles. Nestes, estão descritos todos os arquivos de código e as instruções para a compilação e montagem dos binários. Uma vez pronta, a aplicação é disparada no sistema, por um arquivo executável, que se encarrega de realizar as devidas chamadas para os demais componentes. Cada aplicação é composta de um ou mais pacotes de software que podem conter os tipos de arquivos listados anteriormente. Os pacotes são criados e mantidos de forma individual e são tratados pelas operações de distribuição de software desta mesma forma. Um pacote de software é um conjunto organizado e completo de arquivos e instruções para sua instalação num sistema computacional. Este conjunto compõe principalmente aplicações, mas pode conter bibliotecas, documentação ou dados quaisquer [FOSTER-JOHNSON 2003]. Configurações como o acerto de caminhos padrões e ajuste de variáveis de ambiente podem ser necessárias e estarão descritas no próprio pacote. Cada pacote possui uma numeração de versão que o identifica diante das demais versões do mesmo pacote e serve de referência para as informações de dependências. Apesar de individualizados, os pacotes de software podem ter dependências uns dos outros. Por exemplo, se for necessária a instalação de uma aplicação de criptografia, ela pode requerer a prévia instalação no sistema de uma biblioteca de rotinas criptográficas, da qual faz uso. Diante deste fato, os mecanismos de gerenciamento de pacotes a serem adotados deverão compreender corretamente a cadeia de dependências que existe entre pacotes de software. Para realizar as funções de instalação e manutenção de aplicações em estações ou até mesmo servidores, é necessária a definição de formatos padrões para transporte dos arquivos e suporte de instalação das aplicações. Dentre as alternativas de formatos de pacotes em software livre, as mais usadas [MANAGING 2003] são o formato RPM (RedHat Package Manager) [RPM], o dpkg (arquivos .deb - usado pelo gerenciador de pacotes da distribuição Linux Debian) e o
  • 6. formato usado pela distribuição Slackware (arquivos .tgz). Todas têm em comum o objetivo de permitir a instalação fácil via rede ou outras mídias como CD's e DVD's. Cada uma porém organiza os arquivos e configurações de formas diferentes e podem ou não exigir no sistema ferramentas de manipulação destes pacotes como o RPM (utilitário rpm) e o Debian (utilitário dpkg). O formato Slackware oferece utilitários [SLACKWARE] mas permite que se trabalhe diretamente com os pacotes realizando as operações manualmente. Um item importante a considerar nos formatos de pacotes é a facilidade de se ter scripts de pré e pós-instalação que rodariam, respectivamente, antes e depois da instalação do pacote. Este recurso dá grande flexibilidade para personalizar o sistema para o pacote em questão. Todos os formatos citados possuem esta característica. Os pacotes também podem conter código fonte. O suporte ao uso de makefiles é outro item de interesse. Ferramentas de geração de pacotes nos formatos citados existem e podem suportar a geração de pacotes binários a partir de código fonte através da análise de makefiles. As operações de distribuição de software irão usar pacotes de software como os descritos anteriormente. Desta forma, será necessário definir que formatos são mais adequados e como eles serão usados pelo serviço de distribuição de software. 5. Serviço de Distribuição de Software O uso de uma aplicação se inicia com a instalação da mesma na estação do cliente. O processo de instalação de aplicações, em maior ou menor grau, envolve as seguintes operações: 1. Cópia dos pacotes de software (normalmente em formato compactado) que compõem a aplicação, para a estação via rede; 2. Descompressão dos arquivos em local apropriado; 3. Geração dos arquivos binários executáveis; 4. Transferência dos arquivos gerados para locais adequados dentro da estação; 5. Configurações da aplicação na estação, onde pode ser necessária a interação com o usuário administrador da mesma (usuário root); 6. Configurações específicas para o usuário, onde pode ser necessária a interação com o mesmo. Estes passos nem sempre são fáceis e diretos em ambiente livre [KIRZNER
  • 7. 2003], principalmente para usuários leigos. A solução adotada deve automatizar, ao máximo, o processo com o uso de instaladores. O problema é que plataformas livres diferem bastante entre si, em termos de configurações e componentes presentes no sistema. Além disso, é preciso que o sistema tenha o suporte devido ao processo de compilação e geração dos binários que rodarão a aplicação. Itens como compiladores e bibliotecas devem já estar disponíveis no sistema, caso contrário, os próprios devem ser instalados previamente. Com isso, surgiram várias ferramentas em plataforma livre que padronizam e automatizam o processo de instalação e manutenção de software nas estações de trabalho, realizando ou não (no caso do rpm) a instalação, via rede. Algumas das opções são utilitários em linha de comando como o próprio rpm [BLY e ALLAN 2004] (usado com pacotes do formato RPM), o yum (também usado com pacotes RPM), o apt- get (usado com pacotes debian .deb) e o emerge (usado pelo Portage – sistema gerencidor de software da distribuição Linux Gentoo). Outros já são aplicações em ambiente gráfico como o synaptic (que trata pacotes do tipo RPM ou Debian), o up2date (usado pela distribuição RedHat) e o Yast (usado pela distribuição SUSE para pacotes RPM). Um detalhe a ressaltar é que em plataforma livre as aplicações estão em processo de desenvolvimento e evolução contínua. Isto resulta numa necessidade constante de atualizações dos pacotes de software instalados. Qualquer arquitetura que se proponha para este fim, deverá permitir este tipo de mecanismo, de modo eficiente e flexível. Em outras palavras, a arquitetura deverá tratar adequadamente as atualizações através do controle de versões de pacotes de software. Para o tratamento correto dos aspectos citados previamente, é necessário um serviço de distribuição de software via rede. O serviço de distribuição de software é responsável em garantir nas estações de usuários (e até em servidores) a correta descarga, instalação e configuração de aplicações através de seus pacotes de softwares, mantendo contínua observância dos mesmos com o objetivo de garantir as devidas atualizações via rede. Para distribuir software, é necessário implementar um repositório para os pacotes de software. Este deve ser alcançado via rede, onde clientes do sistema de distribuição possam receber os pacotes e instalá-los. Não é interessante que se tenham cópias diversas dos pacotes em cada estação ou servidor de forma descoordenada. A abordagem com um repositório master garante que haja somente um ponto de distribuição básico evitando problemas de incoerência nos pacotes, mas coloca toda a responsabilidade do processo de distribuição num único servidor de arquivos. Para evitar isso, mais repositórios podem ser agregados ao processo, dividindo a carga de consultas e downloads [ANDERSON 2004]. Estes repositórios secundários seriam então um espelho do que existe no repositório master onde as cópias inicialmente são colocadas. Periodicamente, devem ser feitas sincronizações dos vários pacotes de software, a partir do servidor master para manter a atualidade dos pacotes nos repositórios secundários. Com isso, descaracteriza-se o único ponto de falha do
  • 8. repositório master e pode-se realizar uma distribuição escalável através de uma rede de distribuição de pacotes de software que cresça, de acordo com o próprio crescimento do ambiente de TI corporativo. Dentre as características notáveis em tal arquitetura de distribuição estão: Instalação transparente e automática para o usuário – o sistema distribuidor deve contar com uma porção cliente nas estações ou servidores e que analisará cada aplicação sendo instalada e buscará todas as suas dependências automaticamente via rede poupando o usuário leigo de intervenções neste sentido. Assim, dependências entre pacotes e versões corretas serão automaticamente tratadas pelo cliente para os formatos de pacotes de software suportados. Adequação às limitações de rede – o sistema pode otimizar a transferência dos pacotes. Podem-se utilizar mecanismos para poupar banda como compressão de dados no envio. O uso de recursos de rede que otimizem o uso de banda também é desejável, como o rsync [RSYNC] para transferência de arquivos. É também importante verificar a operação do sistema atrás de configurações seguras com firewalls. Categorização de software – é interessante que se possa criar grupos de softwares em categorias como atualizações de segurança, aplicações gráficas, utilitários de sistema, programas desenvolvidos internamente ou até mesmo dividindo os pacotes por distribuição Linux. Uso com diferentes plataformas – o sistema pode suportar diferentes arquiteturas e distribuições do sistema operacional. Isto significa manipular diferentes conjuntos de aplicações para cada uma das plataformas, tratando corretamente suas diferentes versões e particularidades. Administração do serviço de distribuição de pacotes de software – observar se é possível ter a administração via WEB ou através de ferramenta própria com controle de usuário e senha, para o administrador de pacotes de software. Este processo deve ser seguro pois falhas podem permitir a entrada de softwares maliciosos como “cavalos de tróia” ou impedir atualizações de segurança. É importante também que exista a facilidade de anúncio de novos softwares para os usuários, já que normalmente não haverá limitações de licenciamento (principalmente softwares livres). Distribuição agendada – esta facilidade permite ao administrador definir pacotes a serem imediatamente instalados (“push”), ou instalados até determinada data. Isto garante a contínua atualização do parque de computadores, evitando que aplicações nas mesmas fiquem antigas demais (por exemplo: atualizações de segurança). Uma vantagem importante deste item é a flexibilidade de se executar distribuições de pacotes em larga escala ao mesmo tempo na mesma rede. Tolerância a falhas e segurança – a arquitetura deve prever o funcionamento na ocorrência de queda de repositórios, mesmo sendo o master, mantendo ainda assim o serviço ativo. Redundância de rede pode ser obtida com análise específica e uso de recursos conhecidos como serviço de nomes DNS para encontrar repositórios, uso de
  • 9. IP's virtuais, etc. Aspectos de segurança ainda podem ser avaliados no que diz respeito à integridade dos pacotes (como o uso de mecanismos de checagem com MD5) e o transporte dos pacotes entre repositórios e entre repositório e estação (como o uso de opções de transferências de arquivos seguras como scp ou sftp e usando procedimento de autenticação com chaves criptográficas). Mesmo com estas características, um serviço de distribuição de software ainda trabalha de modo independente. Na próxima seção se insere o serviço de distribuição de software no contexto de ambiente integrado. 6 – O Serviço de Distribuição Automatizada de Pacotes de Software dentro de uma Arquitetura de Gerenciamento Integrada No ambiente corporativo, o serviço de distribuição de software figura como um dos mais importantes no gerenciamento de complexidade do ambiente, pois trata da correta entrega e preparação de software nas estações e servidores. Porém, em plataforma livre, este serviço ainda não possui a integração adequada com toda uma infra-estrutura de gerenciamento do ambiente de TI. Esta arquitetura integrada parte de um serviço de diretório preenchido com as informações necessárias para os serviços de rede operarem (como o próprio serviço de distribuição de software). Para a correta integração entre o serviço de distribuição de software e o serviço de diretórios, deverão existir objetos no diretório que contenham as informações necessárias para que as entidades que compõem a administração de distribuição de software possam consultar e alterar, quando forem realizar suas operações. Com isso, é possível implementar controle no processo através das informações que estarão contidas nos objetos em questão. As regras para administração integradas estarão em objetos que devem descrever itens básicos como: 1. Usuários e grupos de usuários cadastrados e ativos no ambiente; 2. Aplicações disponibilizadas pelo serviço de distribuição de pacotes de software; 3. Privilégios de instalação, uso e atualização de aplicações para grupos de usuários e estações de trabalho; 4. Inventário atualizado de TI do ambiente – configurações de hardware e software instalados em cada uma das máquinas e servidores. Estas regras devem descrever os processos internos de cada corporação. Usuários e grupos serão definidos unicamente para toda a arquitetura. Permissões de instalação e execução de aplicações são dadas com base nas regras em vigor nos processos internos de TI. As mesmas informações de usuários e grupos se aplicarão para os demais serviços integrados da arquitetura de gerenciamento, como autenticação e
  • 10. impressão em rede. O processo de administração do serviço de distribuição de software por sua vez será responsável por inserir e retirar os pacotes de softwares a serem disponibilizados no repositório master, atualizando em paralelo o serviço de diretórios com estas informações através do protocolo LDAP. Os respositórios secundários sincronização com o master de forma a sempre terem o conjunto atualizado de pacotes de software. O cliente nas estações e servidores deve, no processo de inicialização do sistema ou mesmo no login de usuários, verificar as aplicações e atualizações disponíveis via protocolo LDAP, segundo os privilégios aplicados no serviço de diretórios. Após este passo, as aplicações e atualizações podem então ser instaladas ou executadas. Os privilégios podem se ater a usuários e grupos de usuários, ou serem aplicados também sobre conjuntos de computadores. Assim, para ser possível uma instalação ou execução, deve haver o cruzamento de dados de usuários e grupos com os dados de estações. A figura 1 ilustra como funcionaria a arquitetura de distribuição de software integrada. Figura 1 – Serviço de Distribuição de Software Integrado com o Serviço de Diretórios Um passo intermediário, mas necessário na aceitação da instalação de uma aplicação, é a prévia verificação de requisitos de plataforma para a instalação de pacotes de software. Isto é possível através de análise das informações de inventário contidas no serviço de diretórios. Por exemplo, se um pacote de software que contém um aplicativo de escritório deve ser instalado numa estação, então é feita uma verificação se existe espaço em disco ou quantidade de memória suficiente na mesma, analisando o
  • 11. inventário da estação nas informações do serviço de diretórios. Sendo os requisitos de plataforma satisfeitos, a instalação prossegue checando os privilégios necessários. Dentro da solução com protocolo LDAP é possível se encontrar objetos nos schemas de objetos padrões para atender somente ao item 1. Os demais itens devem ser modelados e descritos como objetos em novos schemas que estenderiam o conjunto de objetos num servidor LDAP em plataforma livre, preferencialmente o OpenLDAP. O sistema de gerenciamento de ambientes de TI (GATI) [CRUZ, SANTOS E MEDEIROS 2004], possui um módulo integrado de distribuição de software que segue as linhas aqui descritas e está em desenvolvimento da sua versão 2. Este desenvolvimento é demanda do SERPRO para o projeto CESMIC na Universidade Católica de Brasília (UCB). 7. Conclusão Um ambiente de TI saudável e escalável exige a integração dos seus serviços básicos, de forma a permitir sua operação devidamente controlada, otimizando recursos e atendendo melhor às demandas de usuários. Foi visto que esta solução deve conter um serviço de diretórios cujo objetivo é manter as informações operacionais de uso dos diversos serviços de rede. A opção mais indicada em plataforma livre é o uso do padrão LDAP, cuja implementação mais popular é o OpenLDAP. Diante da diversidade de aplicativos disponíveis, é necessário o trabalho de desenvolvimento e integração da arquitetura de serviços de rede básicos para plataformas baseadas em ambiente livre. Este trabalho parte do que já existe em termos de funcionalidades e deve complementar o sistema com as funções de integração com o serviço de diretórios, principalmente o uso do protocolo LDAP e a modelagem de novos objetos no serviço de diretórios para o trato das informações operacionais. (Ao meu ver a conclusão está incompleta principalmente porque ela nao casa com o texto do artigo e com o resumo por completo! Sugiro consolidar na conclusão as questoes referentes a distribuição de software – que foi o foco do trabalho!) Referências [RFC2307] Howard, L. RFC 2307: An Approach for Using LDAP as a Network Information Service, IETF, 1998. [RFC3377] Hodgers, J; Morgan, R. RFC 3377 Lightweight Directory Access Protocol v3: Technical Specification, IETF, 2002. [OpenLDAP] OpenLDAP. Disponível em: <http://www.openldap.org>. Acessado em: 1 jun. 2004. [CRUZ, SANTOS E MEDEIROS 2004] Cruz, Fernando; Santos, Giovanni; Medeiros, Raissa; et al. “Uma Ferramenta para a Administração de Serviços de Diretórios Basedo
  • 12. no OpenLDAP”. Anais do 5 Fórum Internacional de Software Livre, pg 91, Porto Alegre, 2004. [KIRZNER 2003] Kirzner, Rikki. (2003) “Electronic Software Distribution: A Long Shot”. 2003. Disponível em: <http://www.uniforum.org/news/html/publications/ufm/mar96/swdist.html>. Acessado em: 13 dez. 2004. [VOLKERDING 1997] Volkerding, Patrick; Foster-Johnson, Eric; Reichard, Kevin. Linux Programming, Mis Press, 1997. [MAKE] “GNU Make”. Disponível em: <http://www.gnu.org/software/make/make.html>. Acessado em: 1 jun. 2004. [FOSTER-JOHNSON 2003] Foster-Johnson, Eric. Red Hat RPM Guide, Wiley Publishing Inc., 2003. [MANAGING 2003] “Managing and Deplying Software in a Linux Environment White Paper”, (2003). Disponível em: <http://www.bmc.com/products/documents/14/98/41498/41498.pdf>. Acessado em: 1 dez. 2004. [RPM] “RPM”. Disponível em: <http://www.rpm.org>. Acessado em: 1 jun. 2004. [SLACKWARE] “Slackware Packaging System”. Disponível em: <http://www.slackware.org/config/packages.php>. Acessado em: 11 dez. 2004. [BLY e ALLAN 2004] Bly, Martin; Allan, Alasdair; Jeness, Tim. “Source Code Management and Software Distribution using Open Source Technologies”, 2003. Disponível em: <http://www.adass.org/adass/proceedings/adass02/reprints/P8-2.pdf>. Acessado em: 1 dez. 2004. [ANDERSON 2004] Anderson, Paul. “Software Distribution and Repositories”, 997. Disponível em: <http://homepages.inf.ed.ac.uk/dcspaul/publications/SoftDist.pdf>. Acessado em: 13 dez. 2004. [RSYNC] “Rsync”. Disponível em: <http://rsync.samba.org/>. Acessado em: 1 jun. 2004. [BROCKMEIER 2003] Brockmeier, J. “Create Debian Linux Packages”. 2003. Disponível em: < http://www-106.ibm.com/developerworks/linux/library/l- debpkg.html>. Acessado em: 15 dez. 2004.