30 - gestao e produtividade_mai_2007

84
#30 05/07 R$ 13,90 7,50 9 771806 942009 00030 A REVISTA DO PROFISSIONAL DE TI # 30 Maio 2007 WWW.LINUXMAGAZINE.COM.BR ENTREVISTA p.22 O compromisso da Fujitsu com os padrões abertos FISL 2007 p.18 Usuários, desenvolvedores, empresas e Governo juntos CEZAR TAURION p.28 A liderança do Linux nos sistemas embarcados » Compiere: Implementando a ferramenta de gestão livre do momento p.30 » OpenCRX: toda a força do Java em forma de CRM p.34 » Desempenho e adaptalidade com o SugarCRM p.38 » Tendências de mercado: por que um ERP livre? p.42 GESTÃO E PRODUTIVIDADE p.29 VEJA TAMBÉM NESTA EDIÇÃO: » As novidades do Oracle OpenWorld p.26 » Preparação para a LPI: Aula 5 p.48 » Criação de imagens a partir de texto com o Graphviz p.60 » Programação: Os poderes matemáticos do diff p.70 » Desktop nacional: O insigne Insigne Linux p.45 CLONAGEM EFICIENTE p.64 Backup precisa ser trabalhoso e difícil? O Mondo mostra que não! POSTGRESQL p.55 Como montar um sistema prático para autenticação local de usuários O CÓDIGO ABERTO INVADE O MUNDO DOS ERP/CRM COM BAIXO CUSTO, CONSULTORIAS BEM ESTABELECIDAS E ALTO PODER DE CUSTOMIZAÇÃO exemplar de Assinante venda proibida http://supertuxbr.blogspot.com

Upload: -

Post on 21-Mar-2016

300 views

Category:

Documents


7 download

DESCRIPTION

Maio 2007 Backup precisa ser trabalhoso e difícil? O Mondo mostra que não! VEJA TAMBÉM NESTA EDIÇÃO: » As novidades do Oracle OpenWorld p.26 » Preparação para a LPI: Aula 5 p.48 » Criação de imagens a partir de texto com o Graphviz p.60 » Programação: Os poderes matemáticos do diff p.70 » Desktop nacional: O insigne Insigne Linux p.45 O CÓDIGO ABERTO INVADE O MUNDO DOS ERP/CRM COM BAIXO CUSTO, CONSULTORIAS BEM ESTABELECIDAS E ALTO PODER DE CUSTOMIZAÇÃO # 30 00030 http://supertuxbr.blogspot.com

TRANSCRIPT

Page 1: 30 - Gestao e Produtividade_mai_2007

#30 05/07

R$ 13,90 € 7,50

9771806

942009

00030

A REVISTA DO PROFISSIONAL DE TI

Linu

x M

agazin

e

# 30 # 30

M

aio

200

7

05/2007

WWW.LINUXMAGAZINE.COM.BR

ENTREVISTA p.22O compromisso da Fujitsu com os padrões abertos

FISL 2007 p.18Usuários, desenvolvedores, empresas e Governo juntos

CEZAR TAURION p.28A liderança do Linux nos sistemas embarcados

» Compiere: Implementando a ferramenta de gestão livre do momento p.30

» OpenCRX: toda a força do Java em forma de CRM p.34

» Desempenho e adaptalidade com o SugarCRM p.38

» Tendências de mercado: por que um ERP livre? p.42

GESTÃO E PRODUTIVIDADE p.29

VEJA TAMBÉM NESTA EDIÇÃO:» As novidades do Oracle OpenWorld p.26» Preparação para a LPI: Aula 5 p.48» Criação de imagens a partir de texto com o Graphviz p.60» Programação: Os poderes matemáticos do diff p.70» Desktop nacional: O insigne Insigne Linux p.45

CLONAGEM EFICIENTE p.64

Backup precisa ser trabalhoso e difícil? O Mondo mostra que não!

POSTGRESQL p.55

Como montar um sistema prático para autenticação local de usuários

GE

STÃ

O E

PR

OD

UTIV

IDA

DE

CO

MP

IER

E

O

PE

NC

RX

SU

GA

RC

RM

PO

STG

RE

SQ

L

DIFF

G

RA

PH

VIZ

M

ON

DO

PO

WE

RS

HE

LL

O CÓDIGO ABERTO INVADE O MUNDO DOS ERP/CRM COM BAIXO CUSTO, CONSULTORIAS BEM ESTABELECIDAS E ALTO PODER DE CUSTOMIZAÇÃO

ex

em

pla

r d

e

Ass

inan

teve

nd

a

pro

ibid

a

http://supertuxbr.blogspot.com

Page 2: 30 - Gestao e Produtividade_mai_2007

http://supertuxbr.blogspot.com

Page 3: 30 - Gestao e Produtividade_mai_2007

3

Prezados leitores da Linux Magazine,

Quem tem como primeira língua o português costuma achar que a língua é fácil. Somos alfabetizados nessa língua e pensamos nessa mesma língua. É interessante imaginar o grau de influência que isso exerce sobre nós ao longo de nossas vidas.

Já ouvi dizer que os alemães, um povo reconhecidamente organizado e disciplinado, são o reflexo de sua língua – ou seria o contrário? -, fortemente estruturada, mas aberta a construções inusitadas e muitas vezes inovadoras.

Por mais exagerada que possa parecer esta afirmação que faço a seguir, existem semelhanças entre o processo de alfabetização e o uso de um computador. Nós aprendemos a pensar em computadores da forma como o computador se apre-senta para nós pela primeira vez. A lógica que apreendemos do funcionamento do computador advém do raciocínio que nossa interface com ele nos impõe. Essa interface é o sistema operacional.

Se a primeira experiência de um usuário com seu computador ocorrer através do Linux, e assim continuar, inevitavelmente ele será condicionado a pensar em computadores pela ótica desse sistema. Nesse caso, ao utilizar outros sistemas operacionais, o usuário certamente experimentará certa confusão. E sua relação com a máquina será moldada a partir dessa experiência.

Os inúmeros projetos de inclusão digital que utilizam Linux já perceberam isso. E a maior concorrente do Linux nos desktops pessoais, a Microsoft, evi-dentemente também já está ciente. Uma prova clara disso é a recente oferta da empresa, de uma licença de seu sistema operacional mais básico acompanha-da de seu conjunto de aplicativos de escritório por apenas três dólares, confor-me informado em nossa seção de notícias. Se esse preço parece barato, vamos exercer um pouco de aritmética simples. Uma escola interessada em adquirir 20 dessas licenças promocionais gastará “apenas” 60 dólares, ou 122,10 reais, de acordo com o câmbio atual. Por outro lado, se a escola optar pelo Linux, gas-tará 100% a menos em licenças, ou seja, nada. Os profissionais encarregados de realizar a implantação dos novos computadores, redes etc. também já são abundantes o suficiente para que esse serviço tenha o mesmo custo que teria em sistemas Windows.

Isso significa que atingimos um ponto em que, mesmo sem levarmos em conta a segurança muito maior dos sistemas abertos, nem uma drástica redução do preço da con-corrência é suficiente para eliminar as vantagens econômicas do sistema do pingüim.

Significa também que é muito provável que vejamos em breve toda uma ge-ração de usuários de computador perfeitamente “fluentes em Linux”, após serem introduzidos ao fabuloso mundo digital através desse sistema.

Aos diretores de instituições de ensino e gerentes de TI de órgãos educa-cionais, é importante esclarecer que o uso de sistemas de código aberto pode propiciar uma profunda ampliação do interesse geral de alguns alunos. Temos que admitir que é verdade que, há alguns anos, era obrigatório que o usuário de Linux já demonstrasse, a priori, certo interesse por computação. Porém, os recentes avanços em usabilidade proporcionados por cada nova versão das in-terfaces gráficas do Linux permitem que cada usuário atinja seu “ponto ótimo” e lá permaneça. Assim, enquanto a maioria dos alunos certamente não terá interesse em se aventurar pelos meandros do sistema operacional, podendo simplesmente desfrutar de um ambiente gráfico de uso absolutamente des-complicado, aqueles que se interessarem pelo funcionamento interno dos programas terão a liberdade de buscar esse conhecimento ativamente.

Parece interessante, para uma escola, educar seus alunos em uma “língua” que lhes permita explorar mais fundo e buscar sozinhos o conhecimento, de forma mais segura e a custos mais baixos que os praticados pelos detentores dos direitos do outro “idioma”. Se ainda levarmos em conta o fato de que o uso dos sistemas abertos cresce em ritmo cada vez maior, essa oferta - do Linux - parece boa demais para ser ignorada.

Pablo HessEditor

Idiomas e sistemas ED

ITOR

IAL

Expediente editorialDiretor Geral Rafael Peregrino da Silva [email protected] Tadeu Carmona [email protected] Pablo Hess [email protected] Revisão Arali Lobo Gomes [email protected] de Arte Renan Herrera [email protected] de Competência Centro de Competência em Software: Oliver Frommel: [email protected] Kristian Kißling: [email protected] Peter Kreussel: [email protected] Marcel Hilzinger: [email protected] Andrea Müller: [email protected]

Centro de Competência em Redes e Segurança: Achim Leitner: [email protected] Jens-Christoph B.: [email protected] Hans-Georg Eßer: [email protected] Thomas L.: [email protected] Max Werner: [email protected]

Correspondentes & Colaboradores Augusto Campos, Cezar Taurion, Charly Küh-

nast, Corinto Meffe, Daniel Darlen, James Mohr, João Carlos Gomes da Costa, Johan-nes Plötner, Klaus Knopper, Luciano Siquei-ra, Ludger Köhler, Mark Schier, Michael Schilli, Miguel Koren O’Brien de Lacy, Steffen Wen-dzel, Udo Wolter, Werner Thal e Zack Brown.

Anúncios: Rafael Peregrino da Silva (Brasil) [email protected] Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410 Osmund Schmidt (Alemanha, Áustria e Suíça) [email protected] Brian Osborn (Outros países) [email protected]: www.linuxnewmedia.com.br [email protected] Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.ca – Canadá www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido www.linux-magazin.ro – RomêniaCirculaçãoCláudio Guilherme dos Santos [email protected]

Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais impre-cisões nela contidas ou por conseqüências que advenham de seu uso. A utilização de qualquer material da revista ocorre por conta e risco do leitor.Nenhum material pode ser reproduzido em qual-quer meio, em parte ou no todo, sem permissão expressa da editora. Assume-se que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, são forneci-dos para publicação ou licenciamento a terceiros de forma mundial não exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado.Linux é uma marca registrada de Linus Torvalds.Linux Magazine é publicada mensalmente por:Linux New Media do Brasil Editora Ltda. Av. Fagundes Filho, 134 Conj. 53 – Saúde 04304-000 – São Paulo – SP – Brasil Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410Direitos Autorais e Marcas Registradas © 2004 - 2007: Linux New Media do Brasil Editora Ltda.Distribuição: DistmagImpressão e Acabamento: ParmaISSN 1806-9428 Impresso no Brasil

em processo de filiaçãoINSTITUTO VERIFICADOR DE CIRCULAÇÃO

Linux Magazine #30 | Maio de 2007http://supertuxbr.blogspot.com

Page 4: 30 - Gestao e Produtividade_mai_2007

4 http://www.linuxmagazine.com.br

CAPA

Empresa de acordo 29

Código Aberto ajuda a trazer eficiência ao flu-

xo de dados e relacionamentos das empresas.

Flexibilidade corporativa 30

O sistema ERP e CRM Compiere é um dos mais fa-

mosos entre as alternativas de código aberto. Conhe-

ça as características que o tornam uma ótima op-

ção para qualquer empresa – talvez até para a sua.

Forte, não gordo 34

O OpenCRX se beneficia dos poderes da platafor-

ma Java, oferecendo um sistema muito podero-

so, desde que seus requisitos sejam satisfeitos.

Código aberto e doce 38

O eficiente SugarCRM roda sobre a estrutura LAMP e é

adaptável ao extremo, devido a seu código aberto.

Liberdade de gestão 42

O Código Aberto se firma como opção de fôle-

go na implementação de sistemas de gestão.

ÍND

ICE

LM30_indice.indd 4 26.04.07 18:46:35

http://supertuxbr.blogspot.com

Page 5: 30 - Gestao e Produtividade_mai_2007

5

COLUNASAugusto Campos 10Charly Kühnast 11Klaus Knopper 12Zack Brown 13

NOTÍCIASSegurança 14➧ PHP

➧ PostgreSQL

➧ Ekiga

➧ Snort

➧ Ferramentas do Mozilla

➧ ImageMagick

Geral 16➧ Lançado o Debian 4.0

➧ Novell ZENworks fora do OpenSUSE

➧ Intel oferece dispositivo móvel para Internet

➧ Windows e Office por US$ 3,00

➧ FLISOL 2007 em todo o país

➧ Lançado o Ubuntu Feisty Fawn

➧ Lançado o Mandriva Linux 2007 Spring

➧ Computador por US$ 53,00 na França

Reportagem: FISL 18

CORPORATENotícias 20➧ Sun e Canonical em favor do Java

➧ Red Hat planeja crescimento

➧ Lançado o OS Desktop 7.1

➧ Evento Pré-FISL em SP

➧ OpenSUSE desativa recurso patenteado pela Microsoft

➧ CEF planeja migrar para Linux

➧ Office do Google mais completo

➧ Dataprev migrando para Linux

➧ Concurso IBM de mainframes para estudantes

➧ Portal do software público

Entrevista: Fujitsu 22Coluna: Luis Maeda 24Reportagem: Bossa Conference 25Reportagem: Oracle OpenWorld 26Reportagem: Brainshare 27Coluna: Cezar Taurion 28

ANÁLISEInsigne representante 45 A versão 5.0 (Momentum) do Imagine Linux de-

senvolvido pela Insigne Free Software.

TutorialLPI nível 1: Aula 5 48 Aprenda os fundamentos de redes, incluindo a configu-

ração de servidores de email e do poderoso Apache.

Todos para o banco 55 Se a autenticação local dos usuários é impraticável e o LDAP é

complexo demais para as suas necessidades, talvez um banco de dados ofereça o nível ideal de praticidade e funcionalidade.

Comando para desenhar 60 A ferramenta de linha de comando Graphviz é capaz de acele-

rar o processo de criação de imagens, usando apenas texto.

SYSADMINAtaque dos clones 64 A simplíssima ferramenta Mondo prova que ba-

ckups não precisam ser difíceis e trabalhosos.

Embate das shells 68 A Powershell, da Microsoft, baseia-se no framework

.NET. Mas isso supera as funcionalidades do Bash?

PROGRAMAÇÃOQual é a diferença? 70 O diff busca diferenças entre duas versões de um ar-

quivo. Mostraremos como o programa as encon-tra sem afetar os recursos do sistema.

Evolução na compilação 74 O Acovea imita a evolução de organismos vivos para de-

finir as melhores opções de compilação do GCC.

SERVIÇOSEditorial 03Emails 06Linux.local 78Eventos 80Índice de anunciantes 80

Linux Magazine #30 | Maio de 2007

| ÍNDICELinux Magazine 30

Fabricado por NovoDisc Mídia Digital da Anazônia Ltda - CNPJ: 02.104.848/0001-96 – Sob Licença d

e Insig

ne Fre

e Soft

ware do

Brasi

l LTDA

- 03.3

71.10

9/00

01-23

INSIGNE LINUX 5.0 MOMENTUM

AVISO: A instalação

incorreta deste sistema pode

acarretar perda de dados do

seu computador.CD30-0507

Sistema completo!

- Fácil instalacão

- Milhares de pacotes disponíveis via apt

- Suporte a codecs proprietários

- Recuperacão de desastres em modo gráfico

Desktop nacional de alto desempenho!

LM30_indice.indd 5 26.04.07 18:46:46

http://supertuxbr.blogspot.com

Page 6: 30 - Gestao e Produtividade_mai_2007

6

EM

AIL

S

http://www.linuxmagazine.com.br

✎ Xgl Olá, pessoal da Linux Magazine!

Sou assinante da revista já há vários anos e continuo gos-tando muito das matérias, ideais para a proposta da revista.

Sou professor universitário de computação há bastante tempo e forte defensor de software livre.

Ultimamente, tenho trabalhando bastante com o Fedo-ra Core 6 usando Xgl e Compiz em um Pentium 4 com 1 GB.

Agora, a pergunta: Tudo funciona perfeitamente quando estou logado como

root: o cubo 3D funciona corretamente, as janelas, os atalhos de teclado e controles de mouse. Entretanto, quando estou logado como usuário comum, o comportamento torna-se diferente: levar o mouse ao canto superior da tela não traz a lista de miniaturas de janela!

Também, para vários aplicativos abertos, suas jane-las aparecem com a barra de título embaixo do painel superior do Gnome! Isto é realmente irritante, pois sou obrigado a arrastar a janela para a área visível da tela. Procurei informações sobre este comportamento em di-versos fóruns e na Internet em geral, mas não encontrei nada útil.

Vocês tem alguma informação do porquê deste com-portamento estranho do Xgl/Compiz quando logado como usuário normal??

Abraços, Prof. Márcio Henrique Zuchini Universidade São Francisco Itatiba – São Paulo Olá, Marcio, tudo bom? Em primeiro lugar, muito obrigado por sua carta. É muito

gratifi cante receber elogios como os que você fez. Vamos ao problema. Em primeiro lugar, você tem certeza de

que está usando o Xgl, e não o AIGLX ? O Fedora vem com o AIGLX bem integrado (até porque o AIGLX foi desenvolvido pela própria Red Hat).

Independente disso, o problema parece ser a configu-ração do Compiz. Ao contrário do que possa parecer, a

configuração do Compiz é diferente para cada usuário. Ou seja, se você configurou o Compiz com o usuário root, isso não significa que os usuários comuns usarão as mes-mas configurações.

As chaves de confi guração do Compiz costumam fi car armazenadas no críptico sistema gconf em ~/.gconf/apps/compiz/. Para copiar as confi gurações do usuário root para o usuário marcio, por exemplo, o comando seria (como usuário marcio):

cp -R /root/.gconf/apps/compiz ~/.gconf/apps/

Nesse processo podem surgir problemas devido às permis-sões dos arquivos. Caso isso ocorra, é necessário informar ao sistema que os arquivos copiados pertencem ao usuário marcio, com o comando chown, por exemplo.

Esperamos que isso funcione! ■

✎Preparação LPI - Cron Bom Dia a todos.

Como muitos outros, sou usuário Linux e leitor da Linux Magazine. Gosto do conteúdo e algumas matérias.

Na página 62 da edição de abril 2007, temos o script de backup sendo executado a cada quatro horas (é o que está

sanj

a gj

ener

o –

ww

w.s

xc.h

u

Emails para o editor

Permissão de EscritaSe você tem dúvidas sobre o mundo Linux, críticas ou sugestões que possam ajudar a melhorar a nossa revista, escreva para o seguinte endereço: [email protected]. Devido ao volume de correspondência, é impossível responder a todas as dúvidas sobre aplicativos, confi gurações e problemas de hardware que chegam à Redação, mas garantimos que elas são lidas e analisadas. As mais interessantes são publicadas nesta seção.

http://supertuxbr.blogspot.com

Page 7: 30 - Gestao e Produtividade_mai_2007

http://supertuxbr.blogspot.com

Page 8: 30 - Gestao e Produtividade_mai_2007

8 http://www.linuxmagazine.com.br

EMAILS | [email protected]

escrito). Porém, a sintaxe do crontab nos mostra o intervalo de 4 minutos.

Um abraço a todos.Eliezer Felipe SantiagoOlá, EliezerAgradecemos por nos ajudar a tornar a Linux Magazine

cada vez melhor. E muito obrigado pela indicação do engano. De fato cometemos esse erro de edição. O artigo original con-tinha um asterisco solitário no início da linha, o que dava à mesma o sentido pretendido.

Por favor, desculpe nosso erro, que será publicado como errata na nesta edição da Linux Magazine (maio/2007). ■

✎OTRSOlá!

Realmente, a Linux Magazine tem me trazido muitas perspectivas novas, e informações muito valiosas. Sobre a edição número 28, tenho uma ressalva, a respeito da matéria sobre CRM, que cita o OTRS.

Há uma informação de que a instalação é facilitada apenas onde o sistema de pacotes é RPM, e acabei de constatar no próprio site http://www.otrs,org a disponibi-lidade do pacote deb em um repositório, para utilização com o apt-get, além do portage para Gentoo, disponível via emerge.

Obrigado pela atenção.Lourenzo FerreiraCaro LourenzoObrigado pela colaboração. Acreditamos que, devido

ao rápido desenvolvimento de aplicações e ao trabalho colaborativo, tão comuns aos programas e sistemas de có-digo aberto, os pacotes de padrão deb, além dos pacotes para Gentoo, só foram disponibilizados após o término da matéria. O que, na verdade, para nós é um motivo de contentamento, em vez de tristeza por nossa “lentidão”: uma tal velocidade e pujança nas novidades mostra que o desenvolvimento de Código Aberto caminha para um patamar de profissionalização que nem sempre é visto em seus equivalentes de Código Proprietário.

Ver toda essa “vontade de crescer” em um software de CRM, então, é para nós, motivo de dupla alegria: quanto mais o Software Livre ou de Código Aberto se profissiona-lizar, mais rapidamente ele será capaz de competir, dentro do mercado corporativo, contra gigantes que antes caminha-vam isolados.

Mais sobre a adoção de ERP/CRM livres dentro das em-presas pode ser conferido na matéria de capa desta edição da Linux Magazine. ■

✎Problemas com SambaOlá Pessoal,Sou assinante da revista, e estou numa situação desesperadora.

Tenho um Samba rodando com a opção vfs audit ativada e tenho o arquivo de log gerado pelo audit do Samba.

O que eu estou precisando muito é de um programa que consiga ler este arquivo e gerar um relatório em Web, tipo o SARG para Squid, mas para o SAMBA.

Poderiam me ajudar, indicar alguma ferramenta, ou apresentar a alguém que poderia me dar umas dicas ?? SO-CORRO!!!! Procurei em toda a WEB e não achei nada. Já estou tentando resolver isso a 6 meses.

Muito grato,Jefferson Misael KaragulianOlá JefersonAntes de tudo, obrigado por assinar a Linux Magazine. Em

relação ao seu problema, você já utilizou o smbd_audit? Ele verifica os logs fabricados pelo vfs_audit como se fosse – e acho que é isso que você quer – um tipo de Sarg para o Samba. Esse programa é feito em PHP e necessita de base Perl instalada. Roda um script no cron que coleta o audit.log e armazena em um banco de dados mysql, razão pela qual você também irá precisar de um servidor MySQL instalado.

O pacote pode ser baixado no endereço: http://sourceforge.net/projects/smbdaudit/ . ■

ErrataNa quarta aula de nosso curso LPI nível 1, à página 62 da Linux Magazine 29 (abril de 2007), há erros de edição. Na seção que descreve o uso do utilitário cron a linha de código correta para a execução do script de backup a cada quatro horas seria:

@* */4 * 5,6 1-5 /usr/local/bin/script_backup@

Na mesma matéria, na página 62, a referência à figu-ra 1 deveria ser: “Cada linha do arquivo crontab represen-ta uma tarefa, no formato mostrado pela figura 1”.

Na página 64, a referência à figura 2 foi substituída erro-neamente por “date.svg”, e o correto seria: “O próprio co-mando date é usado para alterar o relógio de software (do kernel), conforme a sintaxe descrita pela figura 2”.

http://supertuxbr.blogspot.com

Page 9: 30 - Gestao e Produtividade_mai_2007

http://supertuxbr.blogspot.com

Page 10: 30 - Gestao e Produtividade_mai_2007

10 http://www.linuxmagazine.com.br

CRM faz sentido no suporte de informática

Augusto CamposO que um administrador de redes e sistemas pode querer com um sistema de CRM?por Augusto Campos

Não deixe o ar corporativo do termo afastá-lo de suas áreas de interesse! As disciplinas e recursos que fazem parte do CRM são bastante interessantes

para os administradores de redes e de sistemas, e também para as áreas de suporte de informática em geral. CRM, a sigla internacional para as técnicas de gestão do relacio-namento com o cliente, é um conceito que geralmente está na esfera de preocupação do pessoal do marketing corporativo, ou nas áreas administrativas em geral. Mas deveria estar na sua, também.

Primeiro, o mais básico: todo administrador de siste-mas deve insistir na implantação oficial de um sistema de gestão de suporte que controle todo o ciclo de vida de um chamado ou problema, atribua a ele um identificador único e controle seu trânsito por todas as áreas envolvidas

em sua solução. Por exemplo, suponhamos um chamado que tenha sido originado numa área de atendimento tele-fônico. Suponhamos agora que ele tenha que passar por dois setores diferentes – por exemplo, o de infra-estrutura de autenticação e o de administração de sistemas – para que seja considerado resolvido. Antes que a equipe de atendimento possa informar o cliente sobre a resolução do problema e como ele deve proceder, é importante que o sistema permita a todos os envolvidos consultar o andamento desse chamado, com quem ele está, onde ele parou, quanto tempo levou para ser resolvido etc.

Diversos softwares livres implementam esse tipo de controle, com variados graus de sucesso. Procure trou-ble ticket no Freshmeat.net e você encontrará várias opções, a maioria delas voltadas a áreas de suporte pe-quenas e médias.

Mas quando a operação de suporte começa a crescer, começa a ser insuficiente limitar-se à gestão da resolução de problemas. Outros conceitos, como Workflow e ERP, entram na jogada, e um dos primeiros cuja ausência ten-de a ser percebida, por ser ligada diretamente ao cliente (interno ou externo) é o de CRM. Nessa fase, a sua em-presa já deveria ter seu próprio sistema de CRM, pois essa tecnologia está ligada umbilicalmente a relacionamentos de marketing e vendas com os clientes.

Mesmo assim, às vezes, a organização ainda não dis-põe de CRM, ou a integração imediata entre as áreas não é possível, ou mesmo desejável nos moldes em que você preferiria – por exemplo, se o seu suporte atende essencial-mente a clientes internos. Nesse caso, é hora de colocar a mão na massa e selecionar (ou desenvolver, ou adaptar) um sistema de gestão de suporte que tenha suficiente ênfase na perspectiva do cliente, com o mesmo tipo de enfoque que um sistema de CRM tradicional (nas esferas operacio-nais, analíticas e colaborativas) teria, mas com um objetivo diferente: em vez de realizar mais vendas ou prolongar o relacionamento comercial com o cliente, garantir a satis-fação do usuário de suporte, prever e antecipar a solução de problemas repetitivos, identificar usuários que devem ser objeto de atendimento especial, e outras atitudes que otimizam o relacionamento com o cliente – das quais uma das principais é a mais básica: fazer com que todo atendente de suporte tenha acesso imediato à ficha completa de cada usuário no momento da abertura do chamado, e incluir nessa ficha recomendações baseadas no histórico do rela-cionamento com esse usuário em particular.

Isso é algo que toda central de telemarketing já tem, e que desejaríamos que o suporte das nossas empresas de celular e banda larga tivessem (e que funcionasse a nosso favor), e que até mesmo as pizzarias com tele-entrega já começam a ter, e que a maioria das centrais de suporte corporativo de informática ainda não oferecem. Pense nisso! ■

CO

LUN

A

Diversos softwares livres implementam esse tipo de controle, com variados graus de sucesso.

O autorAugusto César Campos é adminis-trador de TI e, desde 1996, mantém o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

http://supertuxbr.blogspot.com

Page 11: 30 - Gestao e Produtividade_mai_2007

11Linux Magazine #XX | Mês de 200X

Elimine pacotes órfãos no Debian com o Deborphan

Charly KühnastSua última atualização do Debian deixou rastros? Conheça o Deborphan.por Charly Kühnast

Tenho que admitir: minha consciência está me inco-modando um pouco. Que me lembre, jamais fiz a revisão de um software específico para uma distri-

buição. Porém, uma rápida busca em meu grupo local de usuários Linux revelou que o Deborphan é desconhecido até mesmo entre usuários Debian de longa data.

Os sistemas Debian passam por várias mudanças de ver-são ao longo de suas vidas. Se você verificar especificamente os diretórios que contêm as bibliotecas, é impossível não notar que várias delas já passaram há tempos da hora de se aposentar. Por algum motivo, o Debian simplesmente as mantém – nunca se sabe quando elas serão necessárias.

Se você gosta de manter a organização, ou simplesmente se seu espaço em disco estiver acabando, o Deborphan[1] oferece a possibilidade de apagar pacotes órfãos.

A ferramenta, que reside no repositório normal do De-bian, procura pacotes dos quais nenhum outro dependa. Executar deborphan sem qualquer opção de linha de co-mando mostra uma lista dos softwares órfãos.

Caso seja interessante aprofundar a ação da linha de comando, é assim que se faz:

deborphan --all-packages

Esse comando evita que o Deborphan restrinja sua busca aos diretórios lib, passando então a verificar cada pacote instalado.

Adote um órfãoSe o Deborphan mostrar um determinado pacote órfão que você deseje manter instalado, pode-se usar a função apropriadamente chamada de keep:

deborphan --add-keep nome_do_pacote

Com esse comando, o Deborphan vai ignorar o pacote referido em futuras execuções.

É possível passar múltiplos nomes de pacotes de uma vez, separando-os por espaços.

Fim da temporadaPara remover um pacote da lista dos mantidos, basta uti-lizar o comando:

deborphan --del-keep nome_do_pacote

Se for desejável evitar a linha de comando, há duas interfaces para a ferramenta. Uma delas é conhecida como Orpha-ner, e oferece uma bela lista de pacotes órfãos. É possível selecioná-los individualmente, ou selecionar toda a lista, e mandar o Deborphan apagar os pacotes (figura 1).

A outra interface é o Editkeep. Como o nome sugere, o programa mostra uma lista de pacotes marcados para manutenção (figura 2).

Para acalmar minha consciência (e para os leitores que não são afeiçoados ao Debian), quero terminar minha co-luna com o comunicado de que as distribuições baseadas em pacotes RPM possuem uma ferramenta semelhante, chamada Rpmorphan[2], um clone do Deborphan. ■

Figura 1 Apagando pacotes.

Figura 2 Mantendo pacotes.

O autorCharly Kühnast é administrador de sis-temas Unix no datacenter Moers, per-to do famoso rio Reno, na Alemanha. Lá ele cuida, principalmente, dos firewalls.

Mais Informações[1] Deborphan: http://freshmeat.net/projects/deborphan/

[2] Rpmorphan: http://rpmorphan.sourceforge.net

CO

LUN

A

http://supertuxbr.blogspot.com

Page 12: 30 - Gestao e Produtividade_mai_2007

12 http://www.linuxmagazine.com.br

Pergunte ao Klaus!

Klaus Knopper Esta coluna é baseada na seção “Ask Klaus!”, publicada na Linux Magazine International. por Klaus Knopper

DHCP maluco Minha operadora de banda larga me forneceu um modem ADSL Siemens com pppoe embutido. Confi gurei-o inicial-mente com o Windows . A maioria das distribuições em Live CDs e DVDs não conseguiu estabelecer a conexão, mas o Gentoo 2006.1 conseguiu. A diferença parece estar no fato de o Gentoo usar o dhcpcd em vez do pump ou do dhclient .

Desde então, já experimentei vários Live CDs com ker-nel 2.6 e, quando monto minha partição Gentoo e executo seu ./dhcpcd -h ̀ hostname` , eles conectam. Evidentemente, o pump ou dhclient precisa ser parado primeiro.

Existe alguma maneira de fazer esses outros clientes funcionarem, já que o dhcpcd está funcionando? O mo-dem está com upnp ativado.

Resposta: Pode-se experimentar algumas confi gurações mencionadas na página de manual do pump. Infelizmente, não parece haver um programa específi co que sempre funcione bem. Em alguns casos, o pump consegue obter um endereço IP, enquanto o dhclient e o dhcpcd não. O pump even-tualmente pode necessitar da ativação da placa de rede com o comando ifconfig eth0 0.0.0.0 up (substituindo eth0 pelo valor adequado ao seu caso).

Você também pode tentar algumas confi gurações no /etc/pump.conf , como a diminuição do número de tenta-tivas, o tempo de espera para a conexão e as informações do servidor de nomes, por exemplo.

Ataques de malware Por que é tão difícil encontrar artigos sobre segurança no Linux? O Linux é imune a spywares , vírus e ataques de malware ? Se não, como faço para proteger meu sistema? Existe algum pacote de antivírus disponível, ou pelo menos um anti-spyware?

Resposta : Existem vários portais de segurança relacionados ao Linux e ao Software Livre, além de inúmeras listas de email sobre o assunto. O GNU /Linux, como qualquer sistema comple-xo, não está livre de falhas e erros, brechas de segurança e possibilidades de contorno de restrições de segurança mal

formuladas. Porém, devido à natureza aberta desse sistema operacional, essas falhas são encontradas e corrigidas com grande rapidez, em vez de ser necessário esperar um “ patch day ” para tornar seu sistema novamente seguro.

Vírus são bem raros (senão inexistentes) no Linux, devido à separação de privilégios absolutamente estrita típica dos sistemas Unix. Cavalos de tróia e worms normal-mente precisam de alguma espécie de interação com o administrador para se instalarem, ou ao menos de esque-mas de permissão frouxos (como direito total de escrita em arquivos de dispositivos, por exemplo).

Alguns worms tentam explorar falhas como estouros de buffer em programas que rodam com permissão de root. Mas os sistemas com níveis de segurança mais elevados, como o SELinux , até conseguem atingir a imunidade. Eu não diria que é impossível invadi-los, mas é, no mínimo, muito difícil, mesmo para os profundos conhecedores do assunto.

O certo é que eu não conheço qualquer sistema opera-cional absolutamente imune, mas um fato bem conhecido é que a segurança pela obscuridade jamais funcionou. A prática típica dos programas de código fechado, de manter secretas as informações sobre fraquezas e falhas, não torna um sistema operacional mais seguro. Ela apenas dá aos cra-ckers uma vantagem injusta, pois eles acabam conhecendo as possibilidades de invasão semanas antes dos administradores de sistemas encarregados de corrigir o problema.

Procure atualizações periódicas de segurança na pá-gina destinada a esse campo da sua distribuição. (Veja também a seção “Segurança”, nas páginas 18 e 19 para mais detalhes de como obter atualizações de segurança nas variantes mais populares de Linux.).

Várias ferramentas ajudam os administradores de sistemas a procurar problemas potenciais e identifi car tentativas de invasão (mesmo as que obtiveram sucesso). Recomendo o Nessus (http://www.nessus.org) para procurar portas abertas e serviços de rede vulneráveis rodando em seus computadores, o Tiger (http://www.net.tamu.edu/network/tools/tiger.html) ou o Tripwire (http://www.tripwire.org) para a segurança local e checagens de segurança do sistema de arquivos, e o Snort (http://www.snort.org) como vigia de invasões.

Há algumas ferramentas antivírus para Linux. Uma solução muito popular é o antivírus de código aberto ClamAV (http://www.clamav.net). ■

CO

LUN

A

Um fato bem conhecido é que a segurança pela obscuridade jamais funcionou.

O autorKlaus Knopper é o criador do Knop-pix e co-fundador do evento LinuxTag. Atualmente ele trabalha como pro-fessor, programador e consultor.

http://supertuxbr.blogspot.com

Page 13: 30 - Gestao e Produtividade_mai_2007

13Linux Magazine #XX | Mês de 200X

Crônicas do kernel

Zack BrownDriver melhorado, KVM no git e problemas com licenças e programadores maliciosos. Fique a par do que se passou no último mês na lista do kernel.por Zack Brown

Conserto da licençaJan Engelhardt andou trabalhando numa correção para a antiga falha do kernel que permitia que autores inescru-pulosos de drivers como o LinuxAnt fingissem que seu código estava liberado sob a GPL, quando poderiam, na verdade, ter praticamente qualquer licença.

A falha ocorre quando MODULE_LICENSE tem o valor “GPL\0for files in the \”GPL\” directory; for others, only LICENSE file applies”. Devido ao caracter \0, o kernel encontra GPL quando procura a licença, e então o caracter nulo o faz pensar que a string acabou.

Engelhardt recentemente postou um patch que corrige esse comportamento, pois leva em conta o comprimento do texto da licença. Se esse comprimento for diferente daquele de fato lido, então alguém pode estar tentando abusar da falha.

O patch levantou uma discussão surpreendente, principal-mente a respeito da utilidade do recurso MODULE_LICENSE para forçar uma licença, o que violaria os termos da GPL, sob a qual boa parte do código-fonte do kernel é lançada. Esse argumento na realidade tem uma menor relação com o patch de Enge-lhardt do que com o código existente de MODULE_LICENSE.

Bodo Eggert também criou um patch semelhante ao de Engelhardt, e liberou-o na mesma época. Esse patch também fechava a brecha do \0 com a mesma técnica de medição do comprimento, e ainda acrescentava diversos recursos novos, tais como a permissão para que um mó-dulo tenha múltiplas licenças. Esse recurso, por sinal, rendeu críticas bem mais fortes que aquelas recebidas pela “correção” de Engelhardt, como um sonoro “não” de Alan Cox.

Talvez Eggert consiga consertar seu patch para resolver as reclamações de todos, mas, por enquanto, parece que o de En-gelhardt é mais simples e está mais perto de ir para o kernel.

Novo driver IntelJames Ketrenos, da Intel, recentemente anunciou um novo driver para o adaptador de rede sem fio PRO/Wireless 3945ABG. Os outros drivers da Intel tinham que incluir um daemon proprietário.

Em resposta ao questionamento de Neil Brown a esse respeito, Ketrenos explicou que a Intel realizou algumas melhorias no microcódigo desses dispositivos, e agora apenas uma atualização do microcódigo seria necessária, sem qualquer daemon de código fechado.

Diversos desenvolvedores ficaram positivamente impres-sionados com esse avanço, e também com o próprio driver. É muito bom ver que a Intel está levando algumas questões de Código Aberto tão a sério.

Chamadas de sistema assíncronasIngo Molnar criou o subsistema Syslet, um mecanismo para realizar chamadas de sistema de forma assíncrona, a partir do espaço do usuário. Qualquer processo do espaço do usuário pode iniciar um syslet, e o syslet terá acesso ao mesmo con-texto de tempo de execução que a rotina que o invocou. Na verdade, ele é mais do que simplesmente assíncrono – o usu-ário pode especificar se a chamada deve ser apenas síncrona, apenas assíncrona, ou começar síncrona e, caso necessário, tornar-se assíncrona depois.

Na verdade, os syslets são pequenos wrappers para cha-madas de sistema. Eles existem inteiramente no espaço do kernel, podem modificar variáveis dos usuários, e podem ser vinculados a estruturas complexas. Usando syslets, Molnar mediu acelarações de 33,9% em relação à I/O síncrona com cache, e 19,2% em relação à I/O síncrona sem cache, o que representa um grande avanço. Além disso, a reação aos syslets entre os desenvolvedores do kernel foi bem positiva, de forma que vários deles já se juntaram ao desenvolvimento.

Parece que os syslets chegarão ao kernel. Entre as vozes contrárias a isso, Pavel Machek lembra que o wrapper syslet comporta-se como uma verdadeira linguagem de programação com um interpretador dentro do kernel, mas Linus Torvalds deixou claro que isso não será um obstáculo.

No entanto, o próprio Torvalds foi um dos mais fortes oposi-tores à idéia, alegando que a interface de Molnar é complicada e difícil para um usuário comum utilizar. Como Molnar não teve qualquer resposta a essas críticas, talvez a interface precise mudar antes que os syslets cheguem ao kernel oficial. ■

O autorA lista de discussão Linux-kernel é o núcleo das atividades de desenvolvimento do kernel. Zack Brown consegue se perder nesse oceano de mensagens e extrair significado! Sua newsletter Kernel Traffic esteve em atividade de 1999 a 2005.

É muito bom ver que a Intel está levando algumas questões de Código Aberto tão a sério.

CO

LUN

A

http://supertuxbr.blogspot.com

Page 14: 30 - Gestao e Produtividade_mai_2007

14

SE

GU

RA

A

http://www.linuxmagazine.com.br

➧ PHPO PHP é uma linguagem de programação que pode ser embutida em códigos HTML, comumente usada em conjunto com o ser-vidor web Apache. Falhas de estouro de bu-ffer foram encontradas na extensão de sessão do PHP, nas funções imap_mail_compose() e imap_mail_compose(). Se longas cadeias de caracteres forem passadas para a função str_replace(), um estouro de inteiros pode-ria ocorrer na alocação de memória. Se um script utilizar a função imap_mail_compose() para criar uma mensagem MIME na base de um input body de fonte não confiável, ele poderia causar um estouro de fila.

Um agressor capaz de acessar uma aplica-ção PHP afetada poderia acionar essas falhas e possivelmente executar código arbitrário como o usuário apache. (CVE-2007-0906)

Ao desserializar dados não confiáveis em plataformas de 64 bits, a função zend_hash_init() pode ser forçada a entrar em um loop infinito, consumindo recursos de CPU até o alarme de tempo do script abortar a exe-cução do mesmo. (CVE-2007-0988)

Se a extensão wddx for utilizada para importar dados WDDX de uma fonte não confiável, alguns pacotes de entrada WDDX podem permitir que um segmento aleatório da memória da fila seja exposto. (CVE-2007-0908)

Caso a função odbc_result_all() seja usada para exibir dados de um banco de dados, e os conteúdos da tabela do banco

estejam sob o controle de um agressor, uma vulnerabilidade de formatação de cadeia de caracteres é possível, e pode levar à execução de código arbitrário. (CVE-2007-0909)

A leitura de 1 byte de memória sempre ocorrerá antes do início de um buffer, o que poderia ser ativado, por exemplo, por qualquer usuário da função header() em um script. Entretanto, é improvável que isso viesse a ter qualquer efeito. (CVE-2007-0907)

Várias falhas no PHP poderiam permitir que agressores alterassem certas variáveis superglobais através de vetores não especi-ficados. (CVE-2007-0910) ■Referência no Mandriva: MDKSA-

2007:048

Referência no Red Hat: RHSA-2007:0076-3

Referência no Slackware: SSA:2007-053-01

Referência no Ubuntu: USN-424-1

➧ PostgreSQLO PostgreSQL é um sistema gerencia-dor de bancos de dados (SGBD) obje-to-relacional. Uma falha foi encontrada na forma como o PostgreSQL lida com certas funções SQL.

Foi descoberto que o banco de dados PostgreSQL não realiza verificações sufi-cientes dos argumentos das funções SQL. Um usuário autenticado conseguiria executar uma seqüência de comandos capaz de derrubar o servidor PostgreSQL, ou possivelmente ler dados de locais de

memória desconhecidos. Um usuário precisaria possuir permissões para des-cartar e adicionar tabelas ao banco de dados, para conseguir explorar essa falha. (CVE-2007-0555) ■Referência no Debian: DSA-1261-1

Referência no Mandriva: MDKSA-2007:037-1

Referência no Red Hat: RHSA-2007:0064-2

Referência no Ubuntu: USN-417-3

➧ EkigaO Ekiga é uma ferramenta de comunica-ção com vídeo e áudio pela Internet.

Uma falha de formatação de cadeia de caracteres foi encontrada na forma como o programa processa certas mensagens. Se um usuários estiver rodando o Ekiga, um agressor remoto que consiga conec-tar-se ao programa poderia acionar essa falha e potencialmente executar código arbitrário com os privilégios do usuário. (CVE-2007-1007) ■Referência no Red Hat: RHSA-2007:0086-3

➧ SnortO Snort é um programa de detecção de intrusões muito difundido. Ele contém uma vulnerabilidade no algoritmo de conferência de regras que poderia re-sultar em uma negação de serviço. (CVE-

2006-6931) ■Referência no Gentoo; GLSA 200702-03

Postura das principais distribuições Linux quanto à segurançaDistribuição Referência de Segurança Comentários

Conectiva Info: distro2.conectiva.com.br/ Lista: [email protected] e distro2.conectiva.com.br/lista Referência: CLSA-... 1

Possui uma página específica; não há link para ela na página prin-cipal. Os alertas são sobre segurança, mas distribuídos através de emails assinados com a chave PGP da empresa para assegurar sua autenticidade. Contém também links para os pacotes atualiza-dos e para fontes de referência sobre o problema sendo corrigido.

Debian Info: www.debian.org/security Lista: lists.debian.org/debian-security-announce Referência: DSA-… 1

Alertas de segurança recentes são colocados na homepage e dis-tribuídos como arquivos HTML com links para os patches. O anún-cio também contém uma referência à lista de discussão.

Gentoo Info: www.gentoo.org/security/en/glsa Fórum: forums.gentoo.org Lista: www.gentoo.org/main/en/lists.xml Referência: GLSA: … 1

Os alertas de segurança são listados no site de seguran-ça da distribuição, com link na homepage. São distribuí-dos como páginas HTML e mostram os comandos necessá-rios para baixar versões corrigidas dos softwares afetados.

Mandriva Info: www.mandriva.com/security Lista: www1.mandrdrivalinux.com/en/flists.php3#2security Referência: MDKSA-… 1

A Mandriva tem seu próprio site sobre segurança. Entre outras coisas, inclui alertas e referência a listas de discussão. Os aler-tas são arquivos HTML, mas não há links para os patches.

Red Hat Info: www.redhat.com/errata Lista: www.redhat.com/mailing-lists Referência: RHSA-… 1

A Red Hat classifica os alertas de segurança como “Erratas”. Proble-mas com cada versão do Red Hat Linux são agrupados. Os alertas são distribuídos na forma de páginas HTML com links para os patches.

Slackware Info: www.slackware.com/security Lista: www.slackware.com/lists (slackware-security) Referência: [slackware-security] … 1

A página principal contém links para os arquivos da lis-ta de discussão sobre segurança. Nenhuma informação adi-cional sobre segurança no Slackware está disponível.

Suse Info: www.novell.com/linux/security Lista: www.novell.com/linux/download/updates Referência: suse-security-announce Referência: SUSE-SA … 1

Após mudanças no site, não há mais um link para a página so-bre segurança, contendo informações sobre a lista de discus-são e os alertas. Patches de segurança para cada versão do Suse são mostrados em vermelho na página de atualizações. Uma cur-ta descrição da vulnerabilidade corrigida pelo patch é fornecida.

1 Todas as distribuições indicam, no assunto da mensagem, que o tema é segurança.

http://supertuxbr.blogspot.com

Page 15: 30 - Gestao e Produtividade_mai_2007

| NOTÍCIASSegurança

➧ Ferramentas do Mozilla

O Mozilla Firefox é um navegador web de código aberto, assim como o SeaMonkey, que é também um cliente avançado de email e newsgroups, um cliente IRC e um editor HTML. O Thunderbird é um cliente de email de código aberto. Foram encontradas falhas na forma como o Firefox processa certos códigos JavaScript mal formados. Uma página web maliciosa poderia executar código JavaScript de forma a causar o fechamento do Firefox, ou a execução de código arbitrário. (CVE-2007-0775, CVE-2007-0777)

Também foram encontradas falhas de Cross-site scripting (XSS) na maneira como o Firefox processa certas páginas web mal formadas. Uma página maliciosa poderia exibir informações enganosas, resultando na divulgação de informações privadas do usuário. (CVE-2006-6077, CVE-2007-0995, CVE-2007-0996)

Uma falha também foi encontrada na forma como o Firefox faz cache de páginas web no disco local. Uma página web maliciosa seria capaz de injetar código HTML malicioso em

uma sessão de navegação caso o usu-ário recarregasse um site específico. (CVE-2007-0778)

Outra falha foi encontrada na ma-neira como o Firefox exibe certos conteúdos web. Uma página maliciosa poderia gerar conteúdo que poderia sobrepor elementos da interface, en-ganando o usuário de forma a acre-ditar que estivesse visitando um site diferente. (CVE-2007-0779)

Foram descobertas falhas na forma como o Firefox bloqueia janelas pop-up. Se um usuário abrir um pop-up bloque-ado, será possível ler arquivos locais ar-bitrários ou desferir um ataque do tipo XSS contra o usuário. (CVE-2007-0780, CVE-2007-0800)

Falhas de estouro de buffer tam-bém foram encontradas no código do Network Security Services (NSS) que processa o protocolo SSLv2. Conectar-se a um servidor web seguro malicioso poderia causar a execução de código arbitrário sob o usuário que estivesse executando o Firefox. (CVE-2007-0008, CVE-2007-0009)

Uma falha foi descoberta na ma-neira como o Firefox trata o valor de location.hostname durante algumas ve-

rificações de domínio do navegador, que poderiam permitir que um site malicioso inserisse cookies de domí-nio para um site arbitrário, ou possi-velmente realizasse um ataque do tipo XSS. (CVE-2007-0981) ■Referência no Ubuntu: USN-428-1

Referência no Red Hat: RHSA-2007:0079-2,

RHSA-2007:0077-4

➧ ImageMagickO ImageMagick é uma ferramenta de exibição e manipulação de imagens para o X Window System, capaz de ler e escrever múltiplos formatos de imagem. Foram encontradas falhas de segurança na forma como o Ima-geMagick decodifica arquivos DCM, PALM e SGI. Um agressor poderia ser capaz de executar código arbitrário caso conseguisse fazer a vítima abrir um arquivo de imagem especialmente criado. (CVE-2006-5456/CVE-2007-0770, CVE-2006-5868) ■Referência no Debian: DSA-1260-1

Referência no Mandriva: MDKSA-

2007:041

Referência no Red Hat: RHSA-2007:0015-5

Referência no Ubuntu: USN-422-1

����������������������������

�����

http://supertuxbr.blogspot.com

Page 16: 30 - Gestao e Produtividade_mai_2007

16

NO

TÍC

IAS

http://www.linuxmagazine.com.br

➧ Lançado o Debian 4.0No último dia 8 de abril foi lançado o aguardado Debian 4.0, codinome Etch, quase dois anos após o lançamento da última versão estável, o Sarge. As notas de lançamento, disponíveis em http://www.us.debian.org/releases/stable/releasenotes, informam que foram adicionados mais de

6500 novos pacotes, ultrapassando-se a marca dos 18.200. A atenção

ao desktop foi melhorada, com aplicativos como Gnome 2.14, KDE 3.5.5a e Xfce 4.4 represen-tando os diferentes ambientes desktop disponíveis.

Infelizmente não se atingiu um acordo entre os desenvolve-

dores da distribuição e os da Fundação Mozilla, o que ocasiona o uso de nomes

e ícones diferentes dos padrões para o Firefox (chamado de Iceweasel) e o Thunderbird (Icedove).

Os desenvolvedores também não foram deixados de lado; GCC 4.1, Python 2.4 e PHP 5.2 estão incluídos nos 21 CDs que compõem a distribuição completa (incluindo a documentação).

No campo dos servidores também há várias melhoras, especialmente relativas à atualização dos pacotes. Um grande destaque é o suporte ao padrão SELinux.

Dois dias após o lançamento, foi divulgado o novo líder do projeto Debian, eleito pelos próprios desenvolvedores, no clássico processo democrático da organização. Sam Hocevar, o novo líder, um francês de 28 anos que colabo-ra com o Debian desde 2000, incluiu em sua plataforma a promessa de “tornar novamente divertido desenvolver para o Debian”. ■

➧ Novell ZENworks fora do OpenSUSEEm uma mensagem enviada à lista de discussão dos desenvolvedores do OpenSUSE, Andreas Jaeger comunicou que a próxima versão da distri-buição livre na qual se baseia o SUSE Linux Enterprise não terá mais como padrão de administração o ZENworks. Esse software, de autoria da Novell, foi introduzido no OpenSUSE em substituição ao já consagrado YaST. Porém, a insatisfação gerada entre a comunidade de usuários, so-bretudo devido à morosidade da solução da Novell, ocasionou a volta ao programa anterior.

No comunicado, Andreas afirmou que o ZENworks já possui amplo suporte nas distribuições Enterprise SLED e SLES, e que ele realmente não fará mais parte da distribuição comunitária e livre. O software da Novell, no entanto, continuará sen-do desenvolvido com o intuito de manter a interoperabilidade com a alternativa do OpenSUSE. ■

➧ FLISOL 2007 em todo o paísA edição de 2006 do Festival Latino-Americano de Insta-lação de Software Livre contou com 27 cidades brasileiras participantes. Este ano, pelo menos 29 cidades do país marcaram “presença” mais uma vez. O interessante do FLISOL é sua característica descentralizada, que mostra o poder da colaboração, característica do Software Livre. Em cada local de realização do evento ocorrem diferen-tes atividades, além da única obrigatória, o Install Fest. Na cidade de São Paulo, por exemplo, foram ministradas palestras técnicas, enquanto o evento de Aracaju contou com algumas oficinas, e no de Goiânia houve até um show com banda ao vivo.

Mais detalhes do FLISOL 2007 estão disponíveis na página do festival, em http://www.installfest.net/FLISOL2007. ■

➧ Windows e Office por US$ 3,00

Com o objetivo de combater a ampla adoção do Linux em projetos de inclusão digital e tecnologia na Educação, a Mi-crosoft anunciou recentemente que começará a oferecer pares de licenças do Windows e Office pelo preço de três dólares. Concorrendo com distribuições Linux no projeto de laptop de baixo custo voltado à educação do OLPC, a empresa de Redmond oferecerá essa oferta a partir de setembro. Os soft-wares cobertos pelo pacote são o Windows XP Starter Edition, Microsoft Office e alguns programas educacionais.

Além dos laptops educacionais, a empresa de Bill Gates tem planos de atuar junto ao Governo a fim de viabilizar, com o grande desconto, seu conjunto de softwares também nos computadores do programa PC para Todos.

Os descontos são parte de um plano global para evitar a redução do número de usuários do Windows, e serão aplica-dos a diversos países, e não apenas o Brasil. ■

➧ Intel oferece dispositivo móvel para Internet

A Intel está desenvolvendo um dispositivo móvel para acesso à Internet. Na mesma linha de aparelhos como o Nokia N800 e o sofisticado iPhone, o McCaslin – co-dinome do aparelho, até o momento – foi anunciado durante o Intel Developers Forum, em Pequim, China, e será equipado com um processador de núcleo duplo, operando entre 600 e 800 MHz, e utilizará o Linux (uma variante do Red Flag

Linux, distribuição chinesa) como sis-tema operacional. No entanto, não há qualquer compromisso da fabricante com o Software Livre no tocante aos aplicativos do aparelho. De fato, a In-tel pretende incluir bastante código proprietário em várias camadas do sistema do McCaslin. ■

http://supertuxbr.blogspot.com

Page 17: 30 - Gestao e Produtividade_mai_2007

17

| NOTÍCIASGerais

Linux Magazine #30 | Maio de 2007

➧ Lançado o Ubuntu Feisty FawnNo dia 19 de abril foi lançada a versão mais recente do Ubuntu, a distri-buição Linux mais popular da atualidade. Com o pueril nome de Feisty Fawn (gamo saltitante), a versão 7.04 da distribuição patrocinada pela Canonical, de Mark Shuttleworth, trouxe diversas novidades, como o recém-lançado Gnome 2.18 e o também novíssimo kernel 2.6.20. Uma das mais importantes inovações na distribução é a instalação facilitada de componentes proprietários, como drivers de placas gráficas, plug-ins para o navegador web e codecs multimídia. No caso dos drivers para aceleradoras gráficas, é possível até mesmo desativá-los a partir de um pequeno aplicativo que reside na barra superior do Gnome.

A facilidade de ativação do desktop 3D também é um marco nessa versão, pois as anteriores exigiam o acompanhamento de longas porções de documentação para se alcançar um belo visual.

A máquina virtual Java também está disponibilizada a partir do repo-sitório multiverse, e foi incluído um aplicativo específico para a migração de dados a partir de uma instalação anterior do Windows na mesma máquina, o que deve facilitar imensa-mente a adoção por usuários iniciantes.

Poucas horas após a liberação do sistema, diversas análises da imprensa especializada já confirmavam o bom trabalho da equipe de desenvolvimento da distribuição.

A Canonical informou que a próxima versão do Ubuntu, denominada Gutsy Gibbon, incluirá uma variante sem qualquer software não livre, desen-volvida em parceria com o GnewSense. ■

NotasParceria entre SENAC-DF e Mandriva ConectivaAssim como já fazem diversas unidades, o SENAC do Distrito Federal pas-sará a oferecer o curso de Administração de Sistemas entre suas nume-rosas opções. Após firmar uma parceria com o fabricante do Mandri-va Linux, o SENAC-DF espera formar até 15 turmas a partir de julho.

Certificação BSDO BSD Certification Group, uma entidade que visa criar exames de certificação para profis-sionais que atuam com sistemas FreeBSD, aplicará em junho o Exame Preliminar de Certi-ficação BSDA (BSD Analyst). Conhecidos também como Exames Beta, eles destinam-se a validar a metodologia de psicometria desenvolvida pelo grupo internacional de certificação dos sistemas BSD. Após essa etapa, o BSDCG poderá finalizar o formato dos exames e ofe-recer ao público mais uma certificação em sistemas de Código Aberto. Apenas duas provas serão aplicadas no país, sendo a primeira em Belo Ho-rizonte, MG, no dia 4 de junho, e a segunda em São Paulo, SP, dia 8.

Versão turbinada do Mandriva FlashA Mandriva lançou há poucos meses o Mandriva Flash, um pen drive de 2 GB com uma versão de seu sistema operacional Mandriva Linux 2007. Dentro do diminuto dis-positivo, pouco menos de 1 GB ficavam disponíveis para armazenamento de dados pelo usuário. Com a nova versão, o usuário tem maior liberdade de selecionar quan-to espaço quer disponibilizar para armazenamento e sistema. Além disso, a versão do Mandriva Linux incluída é atualizada em relação ao modelo menos espaçoso.

OpenCroquet, um SDK 3D abertoO Consórcio Croquet, uma fundação dedicada ao Código Aberto, lançou o kit de desen-volvimento (SDK) OpenCroquet. O software facilita a criação e difusão de aplicações tri-dimensionais virtuais distribuídas, e pretende ser de grande ajuda em aplicações edu-cacionais e científicas. O software está disponível para Linux, Mac OS X e Windows.

Informática obrigatória no Ensino MédioUm projeto de lei, de autoria do deputado federal Fábio Souto, visa transformar a Informáti-ca em uma disciplina obrigatória no currículo do Ensino Médio brasileiro. De acordo com o deputado, a Informática não é apenas uma ferramenta educacional, consistindo, atual-mente, em ferramenta obrigatória para se conseguir um emprego. O projeto de lei ainda precisa ser analisado por algumas comissões, só então poderá começar a ser votado.

Artes gráficas com SLAs artes gráficas receberão em maio a atenção da Universidade Estadu-al do Rio de Janeiro. Na segunda semana do mês, a UERJ oferecerá uma pa-lestra de Carlos Eduardo, apresentando a criação de artes gráficas com uso apenas de Software Livre. Os softwares escolhidos para esse fim são os princi-pais representantes em suas áreas de atuação: Inkscape, Gimp e Scribus.

Solaris 10 em notebooks brasileirosA Sun Microsystems, fabricante do sistema operacional Solaris, anunciou uma par-ceria com o fabricante brasileiro de computadores Tecnoworld, para distribui-ção OEM da versão 10 do sistema operacional da Sun nos notebooks da em-presa brasileira. A parceria abrange vendas para toda a América Latina, e inclui também o conjunto de aplicativos de escritório Star Office 8, também de proprieda-de da Sun. No Brasil, as máquinas equipadas com Solaris 10 custarão R$ 1900,00, o que provavelmente contribuirá positivamente para alavancar suas vendas.

Lançado o Thunderbird 2.0A mais recente versão do cliente de emails da Fundação Mozilla, o Thunderbird 2.0, finalmente foi lançada. As novidades em relação à versão anterior, 1.5, incluem a pos-sibilidade de se definir rótulos personalizados para as mensagens, em vez de uti-lizar apenas os cinco pré-fabricados. Os mesmos rótulos podem ser usados em combinação com as novas funções de busca para ajudar a organização das men-sagens. Um interessante recurso é o suporte facilitado aos serviços de webmail do Google e da Apple, os quais poderão ser configurados de forma simplificada, forne-cendo apenas o nome de usuário e a senha usada para o serviço. Os alertas de no-vas mensagens também foram bastante melhorados, informando agora o conteú-do de alguns campos do email. As notas do lançamento estão disponíveis, em inglês, em http://www.mozilla.com/en-US/thunderbird/2.0.0.0/releasenotes/.

Firefox cresce na EuropaDe acordo com a empresa francesa XiTi Monitor, dedicada à análise de dados relativos à Web, nos últimos doze meses o uso do navegador Firefox cresceu 4,7 pontos percentu-ais, atingindo 24,1% do público em março. De acordo com analistas, isso pode indicar que ainda há espaços a serem conquistados por um dos maiores expoentes do Código Aberto.

➧ Lançado o Mandriva Linux 2007 Spring

A Mandriva lançou no último dia 18 a mais recente versão de sua distribuição Linux, o Mandriva Linux 2007 Spring. O principal diferencial da distribuição é a integração de diversos softwares proprietários, alguns sem equivalentes de código aberto, como o Google Earth e o Picasa. A compatibilidade com dispositivos como o controle remoto do console de jogos Wii também é um recurso importante.

O aplicativo de administração e configuração de autoria da Mandriva é mais um diferencial. O Drakvirt auxilia a con-figuração dos recursos de virtualização, bem integrados ao sistema, enquanto o DrakLoop, unido ao dm-crypt, simplifi-ca significativamente a aplicação da criptografia de dados no disco rígido. ■

➧ Computador por US$ 53,00 na França

O provedor de Internet francês Neuf Cegetel está oferecendo a seus assinantes a possibilidade de adquirir um computador alta-mente subsidiado – pelo próprio provedor – e bastante simples, de-dicado unicamente a acessar a Web. Por US$ 53,00, os clientes do Neuf Cegetel compram um gabinete sem periféricos e com 512 MB de me-mória flash para armazenamento, rodando Linux, Firefox, Abiword e Gnumeric. ■

http://supertuxbr.blogspot.com

Page 18: 30 - Gestao e Produtividade_mai_2007

18 http://www.linuxmagazine.com.br

Usuários, desenvolvedores, empresas e governo

FISL 8.0A última edição do Fórum Internacional do Software Livre manteve o teor das anteriores.por Pablo Hess

Entre os dias 12 e 14 de abril foi realizado o maior evento presencial de Software Livre do Brasil. A oitava edição do Fórum Internacional de Software

Livre ocorreu mais uma vez em Porto Alegre, como tem acontecido desde a primeira edição, em 2000. Em 2007, o local do evento permaneceu o mesmo do ano anterior, o Centro de Exposições do FIERGS.

Além do local, o teor do evento também se manteve mui-to semelhante ao do FISL 7, de 2006. Personagem já clássico do fórum, assim como de praticamente todos os eventos de Software Livre no Brasil, Jon “maddog” Hall, provavelmente o mais tradicional evangelista do Linux e do Software Livre, mais uma vez marcou presença nos três dias do FISL 8. Em sua palestra envolvendo música, Maddog como sempre con-tagiou a platéia com um empolgante discurso em prol do motivo que unia todos os presentes.

Grande destaque foi dado também à arena de programa-ção. Com a seleção para as 40 vagas da arena tendo ocorrido antes mesmo do FISL, através da Internet, era muito grande a expectativa de todos, não apenas dos participantes da com-petição. Naturalmente, o prêmio para o trio vencedor – um laptop para cada – contribuiu para as atenções (– e também a tensão –) voltarem-se para a sala posicionada bem na entrada do Centro de Exposições. Monitorada por seguranças vestidos a caráter – isso é, como seguranças, não desenvolvedores – a sala com paredes de vidro rapidamente foi apelidada de aquário, e abrigou os “apenas” 29 concorrentes no primeiro dia (onze dos classificados não compareceram para participar da arena), e depois, com mais folga, os 12 finalistas, divididos em quatro equipes. O resultado da arena de programação foi altamente positivo, reforçando o clima de encontro de desenvolvedores,

predominante no FISL.Uma presença que de

fato chamou a atenção em Porto Alegre foi a das empresas ligadas ao po-der público. Por parte do Governo Federal, Banco do Brasil, Caixa Econô-mica, Serpro e Dataprev atraíram muitos olhares no espaço dos estandes, e também muitos espec-tadores às palestras. O produto mais comen-tado nesse círculo foi, sem dúvida o CACIC, atualmente unidos maio-

res expoentes do Software Livre no Governo. Fizeram-lhe companhia o SIGATI (Sistema de Gestão de Ambientes de TI), recém desenvolvido através de uma colaboração entre a Universidade Católica de Brasília e a brasileira Itautec, e o COCAR (Controlador Centralizado do Ambiente de Rede), também de autoria da Dataprev.

Na cerimônia de abertura, realizada apenas no meio do primeiro dia do evento, representantes de várias entidades e órgãos públicos falaram em favor do uso do Software Livre e de Código Aberto na gestão pública. Corinto Meffe, do Ministério do Planejamento, lançou, em seu discurso, o importante Portal do Software Público. No site, explicou, devem ser depositados todos os códigos-fonte dos progra-mas de Código Aberto desenvolvidos por órgãos públicos brasileiros e por universidades do país. A criação do portal demonstrou o compromisso dessas entidades públicas com o Software Livre. Em outra palestra, os desenvolvedores do CACIC consultaram os presentes a respeito do futuro do desenvolvimento desse software, chegando até mesmo a pedir que alguns espectadores assumissem posições de liderança na organização do desenvolvimento.

Na área dos estandes, os pontos de encontros de distribui-ções agregavam a multidão de desenvolvedores e entusiastas, mesmo aqueles que defendiam bandeiras de distribuições ou linguagens de programação distintas. Entre as empresas presentes, além das já citadas ligadas ao poder público, a Sun Microsystems exibia um imponente estande, com alguns de seus mais importantes executivos ligados ao Software Livre presentes, e dispostos a conversar sobre o assunto, com quem quer que aparecesse. Ocasionalmente, um javali, mascote do Java Livre, arremessava camisetas temáticas do software no meio dos que se aglomeravam ao redor do estande, os quais, evidentemente, digladiavam-se pelo suvenir. A OS Systems, de Otavio Salvador, usou seu estande para mostrar a primei-ra versão de sua distribuição, o OS Desktop, enquanto o XO, laptop do projeto OLPC, contava com a ilustre presença do criador do LTSP, Jim McQuillan, em seu estande, além de crianças espalhadas pelo salão mostrando sua relação com o diminuto aparelho.

Empresas já tradicionalmente ligadas ao Linux e ao Software Livre também estavam presentes, como IBM, Google e Fedora, algumas inclusive objetivando realizar contratações.

Ao final, o público encontrava-se satisfeito com o fórum, obviamente com algumas críticas, em especial à conecti-vidade e à pequena variedade de opções de alimentação. No entanto, certamente todos esperarão ansiosos pela próxima edição. ■

NO

TÍC

IAS

Figura 1 Algumas crianças passeavam pelo local, mostrando sua relação com o XO do OLPC.

http://supertuxbr.blogspot.com

Page 19: 30 - Gestao e Produtividade_mai_2007

http://supertuxbr.blogspot.com

Page 20: 30 - Gestao e Produtividade_mai_2007

20

CO

RP

OR

ATE

http://www.linuxmagazine.com.br

➧ Sun e Canonical em favor do Java

A Sun Microsystems, fabricante do Java, e a Canonical, pa-trocinadora do Ubuntu, concordaram em disponibilizar na distribuição de Mark Shuttleworth todo o conjunto de soft-wares destinados à programação na linguagem da xícara de café. Os pacotes do Java SE 6, Glassfish, JavaDB e Netbeans já estão disponíveis no repositório multiverse do Feisty Fawn, a versão 7.04 do Ubuntu.

De acordo com o dono da Canonical, sua empresa e a Sun já haviam anunciado a intenção de integrar tanto o Java quanto o Glassfish à distribuição, e a comunidade atuou para que esse objetivo fosse possível, e até mesmo superado.

Segundo Jeet Kaul, vice-presidente para plataforma Java na Sun, o Java 7, quando for lançado provavelmente será incluído

no repositório main, caso a adoção do Java de fato cresça por parte da comunidade de desenvolvedores da distribuição.

A decisão da Sun de propiciar a adoção do Java na comu-nidade Linux apresentou-se como estratégia para combater o crescimento do Mono, concorrente do Java e também de código aberto. ■

➧ Red Hat planeja crescimentoPresente no Brasil desde maio de 2006, quando abriu seu escritório na cidade de São Paulo, a Red Hat, fabricante de uma das principais dis-tribuições Linux para o mercado corporativo e também fornecedora de diversos serviços, anunciou que pretende fechar o ano de 2007 com uma equipe maior. Mais precisamente, o dobro dos atuais 40 funcionários. O anúncio foi feito durante a inauguração do novo escritório da companhia, escolhido justamente para permitir esse crescimento. Alex Pinchev, vice-presidente de vendas da empresa, afirmou que os brasileiros estão entre os profissionais mais qualificados, sendo nossos desenvolvedores prova-velmente os mais criativos no mundo, em se tratando de Linux.

A ampliação do quadro de funcionários acontece em decorrência do próprio crescimento do mercado brasileiro, acelerado em relação a outros países, e que proporcionou um crescimento de 44% à receita da Red Hat, em comparação com o ano anterior, segundo Alejan-

dro Chocolat, Julián Somodi e Gabriel Szulik, executivos da empresa responsáveis pelas operações no Brasil, Améri-ca do Sul e América Latina, respectivamente. ■

➧ Lançado o OS Desktop 7.1A empresa OS Systems lançou, durante o Fórum Internacional de Software Livre, a versão 7.1 de seu sistema OS Desktop. Trata-se de uma adaptação do Debian ao mercado corporativo brasileiro, e inclui uma interface bastante simplificada para reduzir a necessidade de trei-namentos e reduzir os custos de implementação.

De acordo com o principal desenvolvedor do sistema e um dos líderes da comunidade Debian no Brasil, além de desenvolvedor Debian, Otavio Salvador, um diferencial do OS Desktop é que todas as alterações realizadas no código são repassadas para seus respectivos mantenedores no projeto Debian internacional. Isso que faz com que toda a estrutura do sistema seja melhorada, em vez de ser mantido como um projeto à parte o que fatalmente incorreria na incompatibilidade entre as distribuições.

O OS Desktop está disponível para compra através do site http://www.ossystems.com.br, e em box que inclui CD de instalação, manuais impressos e em CD e suporte telefônico e via email. ■

➧ Evento Pré-FISL em SPDois dias antes de se iniciar o Fórum Internacional de Soft-ware Livre em Porto Alegre, a 4Linux, empresa de consultoria e treinamento em Linux e Software Livre, realizou na cidade de São Paulo um encontro pré-FISL. Contando com a pre-sença de algumas das maiores personalidades internacionais e nacionais que freqüentariam o evento de Porto Alegre, o 4Li-nux Pré-FISL foi um evento de alto nível técnico. Josh Berkus apresentou uma palestra a respeito do desenvolvimento do PostgreSQL, enquanto Jon “maddog” Hall discursou sobre a arquitetura de computação baseada em servidores com thin clients, e Cezar Taurion discorreu sobre padrões abertos. Após o almoço, Kristian Kielhofner, do Asterisk, enumerou as novi-dades da última versão do software, seguido por Amauri Zava-tini, da Caixa Econômica Federal, dando uma visão geral do relacionamento do banco com o Linux e o Software Livre. O último a falar antes do Boteco 4Linux foi Louis Souarez-Potts, apresentando o estado do desenvolvimento do OpenOffice.org e explicando como todos podem participar dele.

Ao final, a confraternização entre os presentes, em clima de “boteco”, transcorreu da melhor forma possí-vel, com os palestrantes e espectadores trocando muitas informações e idéias. ■

➧ OpenSUSE desativa recurso patenteado pela Microsoft

Após a Microsoft tentar patentear o recurso de anti-alia-sing de sub-pixel, os desenvolvedores do OpenSUSE, da Novell, foram obrigados a desativar essa opção, antes marcada como padrão na sua distribuição.

Essa postura por parte da Novell causou a indignação de diversos usuários, uma vez que a validade da patente ainda não foi comprovada, e talvez jamais seja. Além disso, diversas outras distribuições que não dispõem de acordos sobre patentes com a gigante de Redmond ativam esse recurso em suas interfaces gráficas. ■

http://supertuxbr.blogspot.com

Page 21: 30 - Gestao e Produtividade_mai_2007

21

| CORPORATENotícias

Linux Magazine #30 | Maio de 2007

➧ Office do Google mais completoA Google Inc. está lançando mais um programa de escritório baseado na Web. Após o sucesso dos Google Docs & Spreadsheets, aplicativos on-line acessíveis pelo navegador, já era possível há alguns meses edi-tar de forma colaborativa (ou solitária, dependendo do autor) textos e planilhas, exportando-os, ao final, para diversos formatos, incluindo PDF, ODF, MS Office e RTF. Com o Presently acrescentado ao con-junto, agora será possível criar e editar apresentações com a mesma simplicidade, e tudo indica que também serão suportados os formatos dos principais conjuntos de aplicativos de escritório, no momento da exportação dos arquivos. ■

➧ CEF planeja migrar para LinuxApós migrar todos os terminais das aproximadamente nove mil casas lotéricas do país, economizando com sua estratégia R$ 60 milhões, a Caixa Econômica Federal agora está estu-dando realizar a migração também dos terminais de auto-atendimento, localizados dentro das 2500 agências do banco em todo o Brasil.

Atualmente, esses terminais utilizam como sistema operacio-nal o Windows NT, e a economia das 16 mil licenças, proveniente da adoção do Linux, certamente seria significativa.

Além de seguir a tendência aplicada às casas lotéricas, outras áreas da empresa também podem vir a migrar para sistemas abertos. ■

NotasVersão Beta do Mandriva Corporate Desktop 4A Mandriva Conectiva está lançando no Brasil a versão beta do Corpora-te Desktop 4. De acordo com a empresa, a instalação do sistema operacional leva menos de dez minutos, e é adequada para trabalhar em ambientes mis-tos, interagindo amigavelmente com redes e estações Windows. O Corpora-te Desktop pode ser baixado em https://my.mandriva.com/cd4/trial/.

Brasil na ODF AllianceA liderança do Brasil na América Latina rendeu ao país a primeira participa-ção do bloco na ODF Alliance, entidade destinada a determinar e disseminar o Open Document Format, adotado, entre outros, pelos aplicativos de escritó-rio OpenOffice.org. Jomar Silva foi o brasileiro selecionado para ocupar o car-go de representante da entidade, formada por diversas empresas de gran-de representatividade mundial, como IBM, Sun Microsystems e Red Hat.

Plataforma aberta para pagamentos bancáriosA Unisys anunciou uma nova plataforma de pagamentos destinada a bancos. Cons-truída em Código Aberto, a plataforma permite que os bancos distribuam com mais facilidade novos produtos. Com a nova solução, a redundância de funções de paga-mento pode ser reduzida, o que se reflete na diminuição dos custos de infraestrutu-ra, além de facilitar o gerenciamento de operações de pagamento. De acordo com a Unisys, o novo produto apresenta grande flexibilidade e eficiência, por tratar-se de Software Livre e utilizar a abordagem de arquitetura orientada a serviços (SOA).

Vídeos da campanha do RHEL 5A campanha de lançamento do Red Hat Enterprise Linux 5 foi cuidadosamente ela-borada. Os criativos vídeos da campanha “Real Technology”, exibidos na cerimônia de lançamento, estão agora disponíveis tanto para visualização on-line quanto para download, em formato Ogg Theora, no site da campanha: http://www.redhat.com/videos/real_tech/. Os outros vídeos mostrados na cerimônia, os mais so-fisticados “Truth happens”, “Inevitable” e “Choice”, também podem ser baixados, porém em outro endereço: http://www.redhat.com/videos/ourfilms.html.

Metrô-SP adota SL e economiza US$ 900 milA Companhia do Metrô de São Paulo realizou recentemente uma migração para Software Livre, na qual atingiu uma economia da ordem de 900 mil dóla-res. Com a adoção do PostgreSQL, iniciada em 2001, todo o processo de desen-volvimento da empresa sofreu mudanças para se adequar ao banco de dados aberto. A empresa vencedora da licitação, a Dextra Sistemas, treinou analistas de bancos de dados para administrarem o novo software, e apresentou tam-bém palestras sobre a cultura do Software Livre, complementando-as com a criação de FAQs sobre o sistema de banco de dados. Além do PostgreSQL, a empresa adotou como aplicativo de escritório o OpenOffice.org, contribuin-do também para a economia proveniente do não pagamento de licenças.

UE pede informações gratuitas sobre protocolos do WindowsO monopólio da Microsoft já rendeu à empresa um longo processo por parte do órgão antimonopólio da União Européia. Agora, a entidade pede que a empresa forneça a seus concorrentes algumas informações importantes a respeito de seus protocolos proprietários. O preço a ser cobrado pela empresa de Bill Gates, de acordo com a carta formal enviada pela Comissão Européia, não pode ultrapassar um valor simbólico. Segundo o jornal Financial Times, o objetivo da União Européia é permitir que ou-tras empresas construam aplicações compatíveis com os produtos da Microsoft.

Estratégia Linux da Intel tem nova gerenteA Intel divulgou recentemente o nome de sua nova Gerente de Estratégia Linux. Su-lamita Garcia, líder das Linux Chix no Brasil e renomada profissional Linux, foi con-tratada com o objetivo de manter uma estratégia de acordo com a realidade lati-no-americana, interagindo com a comunidade, o governo e as empresas privadas.

➧ Concurso IBM de mainframes para estudantes

A IBM, importante fabricante de mainframes, está incentivando estudan-tes brasileiros a conhecerem e trabalharem com essa plataforma. Com o 1º Concurso de Mainframe para Estudantes Brasileiros, realizado pela IBM Brasil de 30 de abril a 27 de julho, a Big Blue premiará os estudantes e professores vencedores com vagas para estágio na empresa, notebooks Lenovo, Playstations, tocadores de MP3 e camisetas do concurso.

Segundo o site do concurso, não é necessária qualquer experiência prévia com mainframes, pois durante a competição o estudante será cada vez mais exigido, também aprendendo ao longo do processo.

Infelizmente para alguns, o período de inscrição, que inicial-mente iria até o dia 29 de junho, já foi finalizado, devido à procura muito superior às estimativas. ■

➧ Dataprev migrando para LinuxA Empresa de Tecnologia e Informações da Previdência Social, Data-prev, planeja migrar o sistema operacional de 45 mil máquinas de seu parque de desktops, que atualmente conta com 53 mil máquinas. De acordo com José Pissin, que participa da comissão de Software Livre da empresa, 25 mil desses computadores, distribuídos por todo o país, já utilizam Software Livre, porém, predominantemente, apenas através do conjunto de aplicativos de escritório BrOffice.org. Embora parcial, a adoção desse software livre já foi responsável por uma economia de aproximadamente R$ 35 milhões.

Nos campo dos servidores, a situação é diferente, e 1650 má-quinas já utilizam sistemas operacionais abertos, como Red Hat e Debian. No entanto, as soluções de email e bancos de dados ainda são proprietárias, e sua migração para Código Aberto também está nos planos da Dataprev. ■

➧ Portal do software públicoFoi lançado oficialmente durante o FISL 8 o Portal do Software Público. Essa iniciativa do Governo Federal busca fornecer a infraestrutura para que órgãos públicos, como o Serpro e a Data-prev, assim como as universidades e empresas públicas, possam depositar seus programas desenvolvidos em Código Aberto.O site pode ser acessado em http://www.softwarepubli-co.gov.br. ■

http://supertuxbr.blogspot.com

Page 22: 30 - Gestao e Produtividade_mai_2007

22

CO

RP

OR

ATE

http://www.linuxmagazine.com.br

Edson Siqueira, Diretor de Vendas da Fujitsu

Confiança no LinuxA Fujitsu atua no setor de tecnologia desde os primórdios dessa área. Suas experiências com o Linux e os padrões abertos também vem de longa data, e continuam crescendo.por Pablo Hess

Fundada em 1935 no Japão, a Fu-jitsu é um dos mais tradicionais fabricantes de servidores e main-

frames, além de diversos outros disposi-tivos de computação e alta tecnologia. A empresa se envolveu seriamente com a ideologia dos padrões abertos na década de 90, e posteriormente também com o Software Livre.

Atualmente, a terceira maior forne-cedora mundial de serviços de TI en-contra-se altamente comprometida com o Linux. Tendo contribuído, inclusive, com grandes porções de código-fonte, a Fujitsu possui por esses fatores, uma visão

única do mercado de Código Aberto. O Diretor de Vendas da empresa, Edson Si-queira, concedeu uma entrevista à Linux Magazine, na qual nos contou como a Fujitsu tem tirado proveito do Código Aberto para obter altos lucros.

Linux Magazine» Qual é a história da Fujitsu com os padrões abertos?

Edson Siqueira» A Fujitsu fabrica servido-res, equipamentos de armazenamento, e também middleware. No início da década de 90, decidimos nos juntar ao movimento em favor dos padrões abertos. Isso ocorreu antes mesmo da difusão do Linux e do Software Livre como vemos hoje. Nosso objetivo era incorporar padrões abertos a arquiteturas proprietárias.

O posicionamento da Fujitsu, nesse momento, foi um pouco diferente do atual movimento de Código Aberto. Nós realmente tentamos adaptar as soluções proprietárias para a adoção de padrões abertos. Com isso, por exemplo, sistemas

operacionais proprietários começaram a oferecer supor-te ao protocolo TCP/IP. Essa postura estava perfeitamente de acordo com a tecnologia do software pro-prietário, pois permitia a manutenção da posse dos

binários, abrindo, ao mesmo tempo, a possibilidade de comunicação com outros componentes, que por sua vez também mantinham seus códigos fechados.

Com isso, a Fujitsu construiu um sis-tema inteiro baseado em padrões abertos. Como nós desenvolvemos todo o espec-tro de componentes, desde o hardware até os diversos softwares que ele executa,

cada uma das equipes responsáveis por cada componente, em todos os nossos produtos, foi encarregada de tornar seu trabalho compatível com os padrões abertos. Assim, construímos toda uma nova plataforma, utilizando os conceitos já inerentes aos mainframes, porém para o mundo aberto. Esse foi o pioneirismo da Fujitsu.

LM» Como foi implementada a meto-dologia de padrões abertos?ES» Em nosso middleware, adotamos o padrão CORBA, acrescentando a ele a possibilidade de trabalhar com comandos Cobol. Mais tarde, esse produto passou a suportar também Java. Naturalmente, nossos softwares utilizavam como base o Unix, tendo em vista a escalabilidade, que também norteou a construção do próprio hardware, desde os processadores até os discos rígidos.

Em 1999, lançamos o primeiro servidor com sistema operacional Solaris escalá-vel até 128 processadores, utilizando a arquitetura SPARC, a primeira arquite-tura aberta de processadores.

LM» Como isso beneficiou a empresa?ES» A maior parte do custo de desen-volvimento de uma nova solução não reside na fabricação ou planejamento do hardware, mas na adaptação dos soft-wares para rodar nela. Com a adoção de padrões abertos, conseguimos reduzir drasticamente nossos custos gerais de produção, pois cada software produzido sob esse conceito é absolutamente repli-cável em qualquer arquitetura.

Nossa proposta de valor é entregar a nossos clientes uma plataforma Linux com os mesmos níveis de confiabilidade e desempenho presentes em grandes servidores Unix ou mainframes.

Hidden- www.sxc.hu

http://supertuxbr.blogspot.com

Page 23: 30 - Gestao e Produtividade_mai_2007

23

| CORPORATEEntrevista Fujitsu

Linux Magazine #30 | Maio de 2007

Baseando-nos nisso, nossa proposta de valor atual é permitir que o cliente utili-ze as aplicações que já possui, enquanto nós compatibilizamos nossos produtos com esse cenário. Dessa forma, a única mudança que pode haver entre uma ar-quitetura e outra é mesmo o processador, pois todo o restante dos componentes, por serem baseados em padrões abertos, são perfeitamente compatíveis entre si e, portanto, profundamente portáveis.

LM» Que tipos de empresas a Fujitsu tem como clientes?ES» No Brasil, temos como clientes os maiores consumidores de tecnologia do país, como as áreas de processamento de dados do Governo, suas prestadoras de serviço, bancos, empresas financeiras e de telecomunicações.

Talvez também haja demanda no ambiente acadêmico e científico, porém ainda insuficiente para garantir à Fujitsu o retorno sobre o investimento. Isso ocorre devido à diferença de foco entre nossos clientes e essas outras áreas.

Aplicações científicas invariavelmen-te exigem desempenho máximo. Caso algum componente das máquinas res-ponsáveis pelo trabalho apresente pro-blemas, é perfeitamente aceitável parar todo o funcionamento e trocar as peças adequadas. Entretanto, é inaceitável es-perar uma operação financeira devido a falhas de disco, memória ou processador. Isso significa que nossos clientes devem privilegiar a confiabilidade dos sistemas como ponto central de suas operações. Essas são duas variáveis que geralmente devem ser pesadas.

LM» Nessas empresas, como é a adoção do Linux?ES» O Linux tem sido aplicado nos am-bientes periféricos de computação. Em empresas de telecomunicações, a arquite-tura do processamento costuma ser bem mais orientada ao datacenter. Nelas, não há grande poder computacional fora dos datacenters, e a comunicação dessas máquinas com a camada periférica tem baixíssimo custo, dada a área de atividade dessas empresas.

Enquanto isso, os bancos costumam ser mais balanceados nesse sentido. Embora a maior parte do processamento de fato ocorra nos datacenters, existe bastante poder computacional no ambiente pe-riférico. Por isso, temos observado uma maior adoção do Linux nessa categoria de empresas. Quando os bancos buscam a redução de custo operacional e padro-

nização de ambientes, o Linux tem se mostrado uma escolha interessante, pois pode facilmente substituir alguns dos am-bientes Unix usados anteriormente.

LM» Qual é o envolvimento da Fujitsu com o Linux? Vocês desenvolvem para essa plataforma?ES» Sem dúvida. Há algum tempo vimos incorporando ao Linux características im-portantes dos ambientes Unix. Além da maior confiabilidade, há os recursos que permitem maior flexibilidade operacio-nal, tais como o particionamento físico, por exemplo. Já conseguimos oferecer suporte, em nossas máquinas, à alteração de partições de forma dinâmica. Embora isso ainda não seja possível no Linux, já estamos preparados nesse sentido.

Nosso objetivo maior é permitir que o Linux possua os mesmos recur-sos e funciona-lidades que já se encontram pre-sentes nos prin-cipais sistemas Unix. E, como as empresas sem-pre buscam re-duzir o número de fornecedores, nós estamos aptos a representar o único for-necedor de todo o ambiente de TI, desde as máquinas até as soluções na camada de aplicações.

LM» Que vantagens técnicas e estratégi-cas o Linux oferece à Fujitsu?ES» Devido à sua característica de código-fonte aberto, o Linux é uma excelente plataforma de desenvolvimento. Quando incluímos no Linux o suporte a alguma tecnologia que desenvolvemos, é muito mais fácil essa tecnologia vir a se tornar um padrão, ou simplesmente ter sua adoção aumentada. Quanto a isso, nenhuma outra plataforma oferece a mesma velocidade de resposta do mercado. Se fôssemos fazer o mesmo com um sistema proprietário que pertencesse a uma empresa especí-fica, nem mesmo teríamos a certeza da aceitação da tecnologia pelo mercado, o que significaria riscos e custos muito maiores para o desenvolvimento.

Além disso, todos os avanços imple-mentados no sistema operacional pela imensa comunidade de desenvolvedores são automaticamente adequadas para rodar em nossa plataforma. No Unix, a comunidade de desenvolvedores pertence à empresa que fabrica o sistema, assim como os aplicativos desenvolvidos por

essa comunidade. Nesse ponto, o Linux é altamente vantajoso, e inigualável.

Nesse quesito, nossa proposta de valor é entregar a nossos clientes uma plataforma Linux com os mesmos ní-veis de confiabilidade e desempenho presentes em grandes servidores Unix ou mainframes.

LM» Como você tem visto o perfil de ado-ção do Linux por grandes empresas?ES» A substituição de ambientes Unix, sem dúvida, tem sido a principal porta de entrada do Linux nas empresas. Na realidade, se analisarmos bem, o Linux não deixa de ser, ele mesmo, um Unix. O diferencial, no caso, é o acesso ao có-digo-fonte, que torna muito mais simples a extensão do software, assim como as correções de suas eventuais falhas.

O Linux também tem mostrado forte atuação na padronização de ambientes de TI, dentro das empresas. Ainda é comum haver cinco versões de Unix operando dentro de uma mesma em-presa, além do Windows. O Linux oferece uma ótima possibilidade de se atingir a padronização desse ambien-te, substituindo boa parte das funções hoje exercidas pelos outros sistemas, tanto Unix quanto Windows, em uma plataforma única e coesa, ou seja, pa-dronizada. Como resultado, o cliente dispõe de uma maior independência de fornecedores.

LM» Muitos fabricantes de hardware alegam temer a grande concorrência de outros, em decorrência da inclusão do suporte a suas tecnologias no Linux. Como a Fujitsu lida com isso?ES» Nosso diferencial não se encon-tra no ambiente operacional em si, mas na plataforma. A mesma postura é adotada por nossos concorrentes, que não são muitos. As alterações no Linux visam tornar o sistema ope-racional tão confiável quanto nossa plataforma de hardware. Então, não há lado negativo em permitirmos o acesso ao código-fonte que incorpo-ramos ao sistema. ■

Nesse ponto, o Linux é altamente vantajoso, e inigualável.

http://supertuxbr.blogspot.com

Page 24: 30 - Gestao e Produtividade_mai_2007

24 http://www.linuxmagazine.com.br

SOA e ERP

Um futuro planejadoO ERP com novas funcionalidades e recursos.por Luis Maeda

As tradicionais ferramentas de ERP (Enterprise Re-source Planning, ou Planejamento de Recursos Em-presariais) vem sofrendo contínuas modificações e

conquistando novas funcionalidades e recursos. Essas alte-rações passam pela demanda das empresas por ferramentas que possibilitem uma integração forte e consistente entre seus departamentos e fluxos de informação.

Mas, não é para isso que as empresas investem, e cada vez mais, nos sistemas de ERP? O que há de novo nisso? Bem, devemos nos lembrar do paradigma da adoção de tecnologias: a adoção de uma solução de tecnologia deve trazer benefícios maiores do que os custos e carga de tra-balho necessários para sua implementação.

De olhos abertos para essa regra, surgiu a dúvida do que era melhor fazer: a primeira opção era desenvolver o seu próprio ERP. Mas, em um cenário como esse, a em-presa precisa de um departamento de informática próprio,

com vários profissionais desenvolvendo e implementan-do o sistema. É claro que isso gera altos custos devido às constantes atualizações de tecnologias, manutenção de infraestrutura e alocação de novos profissionais.

A segunda opção era procurar uma equipe de desenvol-vimento, ou uma empresa, da qual fosse possível comprar um produto já finalizado. Adquirir um ERP nesse contexto exige pesquisa das soluções disponíveis no mercado, da confiabilidade das empresas que desenvolvem ou imple-mentam essas soluções, além de uma análise de quais dentre suas necessidades serão cobertas pelo software.

As soluções já finalizadas, obviamente, são mais van-tajosas em diversos quesitos, incluindo a questão do su-porte técnico profissional. Ao se construir uma solução de ERP interna, toda a infraestrutura está por fazer, in-clusive o suporte e resolução de problemas. Com isso, as empresas de software de ERP começaram a despontar no mercado, incluindo gigantes do rol da SAP, ORACLE e

MICROSOFT. No Brasil, essas empresas atuam através de parceiros certificados, como Systemplan Consultoria, que é parceira de desenvolvimento de sistemas (ISV In-dependent Software Vendor) da SAP.

Chegou a hora de atender as novas necessidades dos clientes, em um mundo onde, por conta da globaliza-ção, as ferramentas de trabalho devem crescer e evoluir juntamente com os desafios que elas antagonizam – e muitas vezes até antes. E é aqui que entramos no con-ceito de SOA.

A plataforma SOA (Service Oriented Architecture, ou Arquitetura Orientada a Serviços) é um conector da in-tegração corporativa. Ao mesmo tempo em que facilita o desenvolvimento de novas versões e funcionalidades, re-duzindo custos internos, facilita a criação de web services e potencializa a capacidade de integração de processos de negócios da empresa.

A SOA pode ser bem representada a partir do processo chamado de “find-bind-execute paradigm”. Esse processo preconiza que os provedores de serviços registrem infor-mações em um registro central, com suas características, indicadores e aspectos relevantes às tomadas de decisões. O registro é utilizado pelo cliente para determinar as características dos serviços necessários e das decisões a serem tomadas.

A SOA deverá tornar-se a próxima oportunidade de ne-gócios para as empresas de software a partir de 2008/2009. Com a arquitetura SOA, as empresas de software poderão vender os softwares como serviços, fazendo uma mudança na atuação de vendas por licenças de uso. Veremos o sur-gimento das vendas de bilhetagem de uso do ERP, onde o cliente pagará pelo uso do produto e de suas ferramentas por utilização, como um aluguel.

A melhor vantagem da SOA é que o cliente torna-se independente dos fornecedores de softwares, descartando os grandes projetos de integração e implementação. Além disso, facilita-se a integração de diferentes fornecedores de software, em um mesmo ambiente, com óbvio ganho por parte do cliente corporativo. ■

CO

RP

OR

ATE

O autorLUIZ HIROYUKI MAEDA, é formado em Ciências Contábeis com Analise de Siste-mas e possui MBA em Gestão Empresarial. Atualmente é Diretor Presidente da System-plan Consultoria (www.systemplan.com.br).

O SOA deverá tornar-se a próxima oportunidade de negócios para as empresas de software a partir de 2008/2009

http://supertuxbr.blogspot.com

Page 25: 30 - Gestao e Produtividade_mai_2007

25

Cobertura da 1ª Bossa Conference

O futuro da mobilidadeO Instituto Nokia de Tecnologia de Recife organizou a 1ª Bossa Conference, um encontro voltado à troca de informações sobre o desenvolvimento de dispositivos e aplicações móveis.por Rafael Peregrino da Silva e Pablo Hess

Em grande estilo, contando com a presença de grandes desenvolvedores de sistemas de Código Aberto – tanto como palestrantes quanto na platéia –, começou dia

12 de março a Bossa Conference, evento do Instituto Nokia de Tecnologia (INdT), patrocinado pela Nokia e realizado em Porto de Galinhas, Pernambuco. O público especiali-zado acorreu em massa – aproximadamente 170 pessoas – e palestras como a de Chris Lattner (LLVM, Low Level Vir-tual Machine), Milko Boic (Helix DNA), Zack Rusin, Brad Midgley, Koen Kooi, Marcos Moraes (MPEG4/H264), entre muitos outros, de fato capturaram a atenção dos participantes durante todo o evento.

Representantes de diversas empresas de desenvolvimento de soluções Linux também estiveram presentes, como Mar-celo Tosatti (OLPC/Red Hat), programador do Kernel Linux e antigo mantenedor de sua série 2.4.

Sandro Alves, Gerente de Negócios do INdT, coman-dou a abertura do evento, chamando à mesa também o presidente do Porto Digital de Recife, Valério Veloso, o Diretor de Tecnologia da Nokia, Jarmo Järvenpäa, o Ge-rente de Pesquisa e Desenvolvimento do Laboratório do INdT em Recife, Aldenor Martins, e seu colega de po-sição em Manaus, Ilias Biris, e, por fim, representado o Presidente do INdT (Geraldo Feitoza), Petri Launiainen, Diretor da área de Future Solutions do INdT.

No campo prático, a Linux Magazine teve a oportunidade de utilizar o N800, novo Tablet PC desenvolvido pela Nokia a partir do trabalho do INdT, e aprovou a impressionante gama de recursos disponíveis na máquina.

Já no primeiro dia a escolha da palestra a comparacer foi complicada, com Chris Lattner apresentando o LLVM, uma nova abordagem para compilação otimizada, enquanto Milko Boic demonstrava o desenvolvimento de aplicações multimídia com base no Helix DNA.

No início da tarde, três palestras concorriam pela aten-ção dos participantes. Em sua palestra sobre OpenEmbe-dded, Koen falou sobre o modelo tradicional de compila-ção cruzada – quando se compila o código-fonte em uma plataforma para gerar código que será executado em outra –, contrapondo a necessidade de se utilizar kits de desen-volvimento (SDKs) com a metodologia oferecida pela plataforma OpenEmbedded. Após essa breve introdução, Koen buscou mostrar na prática quais são os benefícios da metodologia OpenEmbedded, ilustrando-os com a utili-

zação de arquivos de configuração e outros, com os quais é possível gerar pacotes para distribuições comuns (DEBs, RPMs, TGZs) ou embarcadas (por exemplo, IPKs) a partir do mesmo esquema de geração de aplicativos.

Carsten “Rasterman” Haitzler, criador do inovador ge-renciador de janelas Enlightenment, falou também sobre seu trabalho com a API gráfica Evas, explicando como desenvol-ver interfaces gráficas bonitas com alta eficiência. Ainda na onda do desenvolvimento, Mika Rytkonen falou da coleção de bibliotecas POSIX para desenvolvimento em Symbian OS, o Open-C.

No segundo dia, após o keynote do desenvolvedor do Gnome Jeff Waugh, a comunicação sem fio recebeu especial atenção, com Marcel Holtmann explicando a integração do Bluetooth a sistemas Linux, tanto embarcados quanto desktops, e Inaky Perez-Gonzalez explicando os inovadores conceitos de comu-nicação sem fios UWB (Ultra-wide band) e WUSB (Wireless USB) e como andam seu suporte e uso no Linux.

O D-Bus foi tema da palestra de John Palmieri, e Tony Lindgren abordou o desenvolvimento do kernel em dispositivos embarcados, um dos mercados em que o Linux mais tem se destacado. Unindo a multimídia aos dispositivos embarcados, Marcelo Oliveira, do INdT, mostrou o impressionante Canola, um centro multimídia desenvolvido sobre a plataforma Maemo, da Nokia, com funcionalidade semelhante a outras soluções, como o atraente Front Row, da Apple.

O terceiro dia contou apenas com apresenta-ções durante a manhã. Mauro Chehab, desen-volvedor do kernel Linux, falou sobre drivers multi-mídia e TV digital no ker-nel, e em seguida Robert McQueen mostrou a pla-taforma de comunicação em tempo real Telepa-thy. Ao final, Elvis Pfut-zenreuter demonstrou o conjunto de ferramentas Mamona, mais um soft-ware desenvolvido para o Maemo. ■

CORPORATE

Linux Magazine #30 | Maio de 2007

Figura 1 Mesma de trabalhos durante a 1ª Bossa, realizada em Recife.

LM30_Bossa.indd 25 26.04.07 17:50:21

http://supertuxbr.blogspot.com

Page 26: 30 - Gestao e Produtividade_mai_2007

26 http://www.linuxmagazine.com.br

Oracle OpenWorldNo evento de 2007, a Oracle mostrou seus investimentos em parcerias e aquisições, consolidando sua posição no mercado.por Pablo Hess

Há alguns anos, diversas empresas podiam afirmar que possuíam uma pilha completa de soluções com-putacionais. Antes da difusão dos padrões abertos

e do próprio Código Aberto, era praticamente obrigatório, para qualquer companhia que desejasse ter considerável pe-netração no mercado corporativo, desenvolver seu próprio sistema operacional (geralmente, uma variante de Unix), seu protocolo de rede, seus aplicativos etc., e garantir a compatibilidade e a interoperabilidade entre eles.

Entretanto, felizmente, com os padrões abertos veio a ên-fase na interoperabilidade. Empresas passaram a desfrutar a possibilidade de criar softwares compatíveis, sem a exigência de pagamento de enormes quantias em licenciamento de algum padrão fechado. Na realidade, a interoperabilidade tornou-se até mesmo obrigatória. Um dos efeitos disso foi a redução da redundância de soluções disponíveis. As compa-nhias não dependiam mais de seus próprios sistemas ope-racionais, ou de seu próprio protocolo de rede, seu próprio sistema gerenciador de bancos de dados, e assim diversas divisões foram gradativamente sendo fechadas.

A partir desse ponto, bastava a um fabricante de soft-ware que ele construísse uma única peça desse quebra-cabeça de componentes, desde que fosse compatível com os padrões (abertos) vigentes e, sobretudo, possuísse um bom custo-benefício.

Assim começou sua operação a Oracle, com seu banco de dados no padrão SQL. Após alçá-lo a uma posição de grande prestígio no mercado, com suporte aos principais

sistemas operacionais – incluindo o Linux, naturalmente – a empresa iniciou uma onda de aquisições, passando a abarcar, entre suas ofertas, servidores de aplicação, infra-estrutura de middleware etc.

No Oracle OpenWorld América Latina, realizado na ci-dade de São Paulo entre os dias 27 e 29 de março, a empresa deu especial ênfase a uma de suas ofertas mais recentes, um sistema operacional. Aproveitando-se da característica livre do sistema operacional da Red Hat, o Red Hat Enterprise Linux, a empresa de Larry Ellison passa agora a oferecer a seus clientes também a base para sua operação, o Unbreaka-ble Linux. O termo mais ouvido durante a apresentação do evento, feita pelo presidente da companhia, Charles Phillips, foi “complete stack” (algo como “pilha completa”), reforçando o atual desejo da empresa de oferecer toda a infra-estrutura de software de que uma corporação possa depender, desde o sistema operacional até as aplicações, passando pelo banco de dados e pelo middleware.

Estiveram presentes ao evento os principais parceiros da Oracle, como os fabricantes de hardware – dos quais a empresa ainda depende – e os parceiros, tanto locais quanto globais, que atuam na interface da empresa com os clientes. Nos estandes, fabricantes de hardware, como Dell, HP, IBM, Sun, AMD e SGI, atestavam a multiplicidade de platafor-mas homologadas pelo fabricante de software, enquanto empresas integradoras de sistemas e prestadoras de serviços mostravam suas soluções para o público presente.

Os palestrantes do OpenWorld discursaram sobre temas bastante atuais, como padrões abertos, SOA e CRM. Entre os casos de sucesso apresentados, a Companhia Vale do Rio Doce e a Unilever relataram suas experiências, esta última mostrando os benefícios de seu uso do sistema CRM Siebel. As palestras técnicas foram marcadas pela forte interação da IBM, importante patrocinadora do evento, com a Oracle, especialmente no segmento de hardware. A arquitetura Power, da Big Blue, foi apresentada como grande aliada para se obter alto desempenho na platafor-ma de software da Oracle.

Diversas apresentações dedicaram-se ainda ao campo administrativo e financeiro. Com uma demonstração dos modelos de negócios aplicados aos padrões abertos adota-dos pela empresa, e também de uma análise da arquitetura orientada a serviços, além de diversas palestras abordando as soluções da Oracle para aproveitamento máximo de re-cursos financeiros, ficou clara a profunda mudança que o mercado da computação corporativa vem atravessando ultimamente e o Linux está na base disso. ■

CO

RP

OR

ATE

Figura 1 Charles Phillips apresentou à numerosa platéia a recente conquista da “pilha completa” de soluções de software da Oracle.

http://supertuxbr.blogspot.com

Page 27: 30 - Gestao e Produtividade_mai_2007

27

Novell Brainshare® 2007

O estandarte da interoperabilidade

No 25º Brainshare, a Novell apresentou novos produtos e esclareceu os benefícios de seu recente acordo com

a Microsoft, entre diversas outras novidades.por Rafael Peregrino da Silva

Salt Lake City, em Utah, nos EUA, foi novamente o palco do Novell Brainshare[1], realizado de 19 a 24 de março. A cerimônia de abertura da 25ª edição do

evento contou, como de costume, com uma série de lança-mentos, como o da versão “Brainshare Beta” do SUSE Linux Enterprise 10 SP1[2]. O discurso de abertura ficou a cargo de Ron Hovsepian[3], atual Presidente e CEO da empresa, que apresentou em linhas gerais as estratégias da Novell para 2007, falando da parceria com a Microsoft, um dos principais temas do evento este ano.

Após sua apresentação, Jeff Jaffe[4], Vice-Presidente de Tecnologia da Novell, e ninguém mais que Craig Mundie[5], Diretor de Pesquisa e Estratégias da Microsoft, dividiram o palco diante da multidão perplexa que veio participar desta edição do evento, no intuito de trazer ao público mais informações a respeito do acordo.

Além do anúncio da versão preliminar do Service Pack 1 do SUSE Linux Enterprise 10, dois outros importantes lançamentos foram feitos: ➧ Novell Teaming + Conferencing: uma nova solução de

colaboração, desenvolvida pela empresa SiteScape[6] e licenciada pela Novell via OEM. A grande novidade desse produto, entretanto, é que a SiteScape criou um projeto de Código Aberto baseado na mesma tecnologia, chamado ICEcorps[7]. O sistema permite colaboração em tempo real, com suporte integrado a tecnologias de voz sobre IP e mensagens instantâneas e, o que é melhor, com suporte ao BrOffice.org para edição concorrente de documentos, planilhas etc;

➧ SUSE Linux Enterprise Thin Client: uma solução com-posta pelo do SUSE Linux Enterprise Desktop e uma ferramenta para criação de imagens customizadas do sistema, que pode ser usada por parceiros de canal da Novell para fornecer uma solução de thin clients de acordo com a necessidade de seus clientes.

A sessão de abertura prosseguiu com uma série de de-monstrações de interoperabilidade entre o SUSE Linux En-treprise Desktop e o Windows® (XP e Vista), primeiros fru-tos dos esforços conjuntos da Novell e da Microsoft em favor da interoperabilidade. Encerrando a sessão de abertura, Nat Friedman e Guy Lunardi, desenvolvedores Linux da Novell, apresentaram as últimas novidades do SUSE Linux Enterprise Desktop, encantando o público com novos recursos gráficos da distribuição, que vão ainda mais longe que os efeitos 3D

apresentados em 2006. A dupla exibiu a automatização de operações executadas pelo usuário na área de trabalho, e tam-bém o novo gerenciamento, muito mais fácil, de múltiplos monitores, entre outras novidades.

Outras apresentações ao longo do evento mostraram casos de sucesso na adoção de softwares e infra-estrutura da Novell, como seu Open Workgroup Suite, adotado por diversas em-presas públicas e privadas dos EUA e Europa.

Em uma entrevista exclusiva para a Linux Magazine, Ron Hovsepian afirmou que a Novell está investindo fortemente na área de interope-rabilidade. Quando questionado a respeito do recente acordo da companhia com a Microsoft, Hovsepian primeiro esclareceu que os beneficiados são os clientes de am-bas. Em caso de disputa legal entre as em-presas, os clientes ficam isentos de qualquer penalização, mesmo que fique caracterizada alguma infração por parte de uma das duas. O CEO afirmou categoricamente que não há, atualmente, um pacto de troca de licen-ças entre as duas empresas, e provavelmente jamais haverá.

As entrevistas completas realizadas com executivos da Novell durante o Brainshare 2007 serão publicadas na próxima edição da Linux Magazine. ■

Mais Informações[1] Página do Novell Brainshare:

http://www.novell.com/brainshare/

[2] Versão “Brainshare Beta” do SLED 10 SP1: http://www.novell.com/brainshare/slesp1.html

[3] Ron Hovsepian: http://www.novell.com/company/bios/rhovsepian.html

[4] Jeff Jaffe: http://www.novell.com/company/bios/jjaffe.html

[5] Craig Mundie: http://www.microsoft.com/presspass/exec/craig/default.mspx

[6] SiteScape: http://www.sitescape.com/

[7] ICEcorps: http://www.sitescape.com/products/icecorps.php

Figura 1 Ron Hovsepian tentou esclare-cer os benefícios trazidos pelo acordo Novell-Microsoft.

CO

RP

OR

ATE

Linux Magazine #30 | Maio de 2007http://supertuxbr.blogspot.com

Page 28: 30 - Gestao e Produtividade_mai_2007

28 http://www.linuxmagazine.com.br

A liderança do Linux nos sistemas embarcados

Cezar Taurion

O Linux caminha para se tornar dominante no ambiente de sistemas embarcados. Recentes pesquisas apontam que desenvolvedores estão

migrando ou planejam a migração para Linux, deixando os sistemas proprietários que anteriormente dominavam este mercado.

Essa tendência reflete claramente a necessidade, por parte dos desenvolvedores dos sistemas embarcados, de sair de um contexto onde proliferam inúmeros sistemas operacionais incompatíveis entre si, o que acarreta imensos gastos e demoras no redundante trabalho de portar uma aplicação de uma para outra arquitetura.

A liderança do Linux nos sistemas embarcados tem um significado importante, pois à medida que ele se dissemina em milhões de dispositivos (em número muito maior que os PCs), acarretará uma forte influência nas plataformas tradicionais. Como software é software, qualquer que seja a plataforma, desenvolvedores acostumados a desenvolver aplicações para o ambiente Linux em um celular poderão rapidamente adaptar seus conhecimentos para desenvolver também aplicações para qualquer outra plataforma.

Por que o Linux tem feito tanto sucesso nesse cenário? O mercado de software embarcado tem peculiaridades específicas. Apresenta uma ampla diversidade de fun-cionalidades e utiliza uma gama muito grande de pro-cessadores. É uma diversidade diferente do ambiente de computação tradicional, onde existe uma concentração em poucos processadores.

O software embarcado deve apresentar alta estabilidade. Uma aeronave e uma usina nuclear não podem apresentar falhas no software. Outra característica de muitos dispositivos é a necessidade de operação em tempo real, principalmente nos equipamentos de controle de processos.

O software embarcado deve operar em ambientes de recursos computacionais limitados, como memória ou discos magnéticos. Assim, recursos como gerenciamento de discos e rotinas de grande impacto no desempenho de sistemas comerciais perdem importância no contexto da computação embarcada.

Outro fator, o custo, é de grande relevância em sistemas embarcados. Um telefone celular não pode custar o dobro de outro, apenas por causa do preço do software básico que esteja embutido nele. O sistema operacional de um equipamento desses é totalmente invisível, e não desperta a percepção do comprador. As diferenças devem ser clara-mente perceptíveis, como um maior número de funciona-lidades disponibilizadas. Um sistema operacional baseado nos princípios do Código Aberto tira um peso grande do custo, tornando-se bem atraente para esse setor.

O Linux, pela qualidade do seu código, já é hoje peça fundamental da arquitetura de tecnologia de sis-temas embarcados militares dos EUA. A Marinha ame-ricana baseou sua arquitetura, denominada NOACE – Navy Open Architecture Computing Environment, em padrões abertos, e considera o Linux fundamen-tal em sua estratégia de reduzir os tempos e custos de desenvolvimento de seus sistemas embarcados em na-vios, aeronaves e submarinos. O mesmo conceito de padrões abertos foi adotado pelo Exército americano em sua arquitetura chamada de WSCOE – Weapons Systems Common Operating Environment.

De maneira geral, os usuários (consumidores) des-ses equipamentos não sabem e nem precisam saber que o Linux está rodando em seus dispositivos. Mas para os fabricantes, o fato de o código-fonte do Linux estar disponível permite que seja usado sem pagamento de royalties para cada produto vendido, além de facilitar muito a customização, praticamente montando-o para as necessidades específicas de cada aparelho. Isso dá aos fabricantes um completo controle sobre o dispositivo, permitindo-lhes fazer modificações e implementar ino-vações muito rapidamente. ■

CO

RP

OR

ATE

Um sistema operacional baseado nos princípios do Código Aberto tira um peso grande do custo, tornando-se bem atraente para esse setor.

O autorCezar Taurion é gerente de novas tecnologias aplicadas da IBM Brasil. Seu blog está disponível em http://www-03.ibm.com/developerworks/blogs/page/ctaurion.

http://supertuxbr.blogspot.com

Page 29: 30 - Gestao e Produtividade_mai_2007

29Linux Magazine #30 | Maio de 2007

ERP e CRM livres

Empresa de acordo Código Aberto ajuda a trazer eficiência ao fluxo de dados e relacionamentos das empresas. por Tadeu Carmona

A organização de uma empresa não é semelhante à de um arquipélago dos Mares do Sul governado por autar-quias, esparsas e fortificadas, cercadas de mar e rochedos

por todos os lados, defendidas por seus governantes contra os senhores de outras autarquias, ou contra inimigos externos. Quem se defender ou se esconder mais, partindo para ataques ocasionais, quando ninguém está vendo, ganha o jogo.

Uma empresa, por menor que seja, tem ao menos três departamentos: a Produção propriamente dita, Vendas e Atendimento. Em uma empresa de médio porte podem ser acrescentados ao menos uma dúzia de departamentos diferentes e, em uma empresa de grande porte, os desdo-bramentos podem conduzir a múltiplos sub-departamentos especializados. Essas “ilhas de atuação” têm grandes blo-cos de dados, sendo gerados e trocados entre os diversos departamentos. E os clientes? Bom, uma empresa não existe sem eles. Ao menos não uma empresa que queira continuar existindo.

Para que uma empresa atenda a demanda de sua cria-ção, ela deve, grosso modo, se preocupar em gerar lucro eficiente e sustentável por meio da comercialização de produtos estimulantes, seja pela sua demanda do merca-do, seja pela sua excelência. Esse lucro, obviamente, não nasce por geração espontânea: sem o concurso do mer-cado consumidor, não há venda. Voltando à analogia do início, não há espaço para autarquias e defesa contra os intrusos: ou todos trabalham em conjunto, sob a mesma bandeira, ou pode não haver uma ilhota para governar no mês que vem.

Saber e conhecer Claro está que isso não significa que todos devem fazer tudo, e ao mesmo tempo: as fronteiras impostas por mesas, portas e paredes são produtivas, para não dizer sadias. Mas essas barreiras devem cessar nas relações de espaço físico e organograma da empresa: com as informações da empresa, a coisa deve funcionar de maneira diferente.

A empresa possui um capital, intangível, mas que pode ser etiquetado como seu principal meio de produção: a sua base de conhecimentos (knowledge-base). Essa base de conhe-cimentos, a princípio, não está ligada a uma entidade física (livros-caixa, livros de vendas, cadastro de clientes) ou lógica (banco de dados): ela é o conhecimento de como a empresa funciona, de quais são os clientes que mais compram, quais são os vendedores que melhor realizam uma determinada venda, ou de quanto tempo uma equipe leva para concluir uma tarefa ou despachar um projeto.

Para que essas informações sejam transformadas em know how, no entanto, elas devem deixar de ser etéreas, assumindo

uma identidade central, mas acessível, on demand, a todos. Não estamos falando aqui de PM (Project Management) ou Gerenciamento de Projetos, capa da Linux Magazine edição 28: esse era, muito mais, o papel dos MRPs (Material Require-ment Planning ou planejamento das requisições de materiais) e MRP II (Manufacturing Resource Planning ou planejamento dos recursos de manufatura), padrões de software das décadas de 70 e 80 formado por pacotes de instruções que conversavam entre si e que possibilitavam o planejamento do uso dos insu-mos materiais ou recursos de mão-de-obra em um processo produtivo, com o conseqüente controle de cada uma das etapas desse processo. Esses softwares e noções são ancorados demais nas linhas e processos de produção, mas são insuficientes para gerir uma empresa.

A ferramenta de que necessitamos para unir as partes da empresa em torno do conhecimento gerado por ela, usando esse mesmo conhecimento para a tomada de decisões, é um ERP (Enterprise Resource Planning ou Planejamento de Re-cursos Empresariais). Um ERP é alimentado pelas informa-ções fornecidas por cada departamento, enviadas logo a seguir para uma base de dados central. Essas informações, ao serem inseridas no sistema, geram ações efetivas que, por sua vez, retornam ao sistema na forma de novos dados, que podem ser utilizados na construção de novas ações, ou simplesmente ser armazenados para consultas.

Cada setor da empresa possui uma área reservada para fer-ramentas de consulta e administração de suas funções - são os chamados módulos do ERP. Setores que devem interagir podem possuir módulos de interligação, bem como apenas módulos de ligação com o sistema centralizado ERP: todas essas relações são customizáveis.

Os softwares de CRM (Customer Relationship Management ou Gerenciamento de Relacionamento com o Cliente) tem um papel algo semelhante ao do ERP. Eles, contudo, são focados na relação com o cliente e sua fidelização, como será melhor explicado no artigo Liberdade de Gestão, logo a seguir.

Geração de conhecimento pró-ativo? Compartilhamento de informações? Módulos customizáveis? Estruturas de admi-nistração e gestão abertas a modificações? Parece que o ERP tem tudo a ver com Linux e Código Aberto. ■

CA

PA

http://supertuxbr.blogspot.com

Page 30: 30 - Gestao e Produtividade_mai_2007

30

CA

PA

http://www.linuxmagazine.com.br

O flexível sistema Compiere

Flexibilidade corporativaO sistema ERP e CRM Compiere é um dos mais famosos entre as alternativas de código aberto. Conheça as características que o tornam uma ótima opção para qualquer empresa – talvez até para a sua.por Eduardo Montenegro

O Compiere é um sistema integra-do de gestão (ERP) e relaciona-mento com clientes (CRM) que

combina as funcionalidades de adminis-tração de vendas e distribuição, controle de estoque, contabilidade e gestão da cadeia de suprimentos.

O Compiere teve seu desenvolvimen-to iniciado em 1999, e o primeiro sistema entrou em produção em 2000. Diferente-mente de outros sistemas de seu porte, o Compiere foi construído a partir do zero, o que permitiu que o sistema ficasse realmen-

te integrado. Sua principal característica é permitir que qualquer configuração seja modificada a qualquer momento.

Com essas características, o Compiere acabou se tornando uma das mais impor-tantes referências em sistemas de gestão com código-fonte aberto, atingindo a im-pressionante marca de mais de 1,2 milhões de downloads desde seu lançamento.

O principal desenvolvedor do Compiere, Jorg Janke, contador por formação, tem mais de 20 anos de experiência na área de ERP. Analisando o mercado mundial para esse tipo de solução, Janke verificou que as soluções disponíveis geralmente são pouco flexíveis, além de suas implantações costumarem ser demoradas e apresentarem um alto fator de risco. Outro fator negativo era que, mesmo após sua implantação, os sistemas ERP tam-bém carregavam o rótulo de serem caros e trabalhosos para serem mantidos.

Jorg observou ainda que não havia um sistema único que combinasse as funções de ERP e CRM, ou seja, que permitisse que todos os processos de negócio da empresa ficassem sempre alinhados com o sistema de relacio-namento com clientes e fornecedores.

Com esse histórico e requisitos em mãos, foi desenvolvido o Compiere, uma aplicação cuja arquitetura favorece um rápido desen-

volvimento, resultando em implantações mais ágeis, com um menor risco envolvido, uma vez que qualquer configuração pode ser reavaliada a qualquer momento.

A Arquitetura do sistemaO Compiere é uma aplicação desenvolvi-da em Java, utilizando as tecnologias J2EE, Swing e JDBC. Por se tratar de uma aplicação em Java, tanto o servidor quanto o aplicativo cliente do sistema podem ser executados em plataformas Linux, Unix, Mac OS X e Windows. Os bancos de dados atualmente suportados pelo Compiere são o Oracle 10g, inclusive a versão gratuita (Express Edition), e o EnterpriseDB, que consistem em uma versão do banco de dados livre PostrgreSQL, mantida pela empresa de mesmo nome, e que também possui uma opção de uso sem custo de licenciamento.

O sistema possui um Dicionário de Dados, o qual faz uso de metadados, onde porções de código na aplicação são, na verdade, substituídos por dados armazenados no banco de dados.

Essa arquitetura garante uma maior estabilidade à aplicação, e garante também

Figura 1 A arquitetura do Compiere facilita o uso de classes externas. O campo Callout, aqui, foi personalizado para utilizar uma classe externa, definida pelo administrador.

http://supertuxbr.blogspot.com

Page 31: 30 - Gestao e Produtividade_mai_2007

31

| CAPACompiere

Linux Magazine #30 | Maio de 2007

um desenvolvimento mais coeso, uma vez que toda a apresentação de telas ao usuário terá sempre o mesmo layout.

O Dicionário de Dados permite também que alterações de configurações existentes, além da criação de novas funcionalidades, possam ser feitas de maneira rápida e trans-parente para o usuário, sem a necessecidade de recompilar e distribuir novas versões da aplicação através da rede.

Quanto ao processo de instalação dos clientes na rede, uma das opções é a utilização da tecnologia Java Web Start, que torna simples o processo de administração das estações.

Para o desenvolvedor, o Compiere apresenta ainda maneiras de executar classes Java externas. Desenvovidas para necessidades específicas de cada cliente, essas classes podem ser acessadas a partir de mudanças de valores em campos dos sistemas, antes e depois de eventos de gravação de registros, e antes ou depois do processamento de documentos.

Essa característica permite que novas funcionalidades e validações de dados sejam adicionadas ao sistema sem a necessecidade de alteração do código-fonte original.

A figura 1 mostra como é simples fazer referências às classes externas a partir da interface do Compiere.

Outra caracaterística importante do sistema é a flexibilidade oferecida para a criação de regras de segurança de acesso a dados. Como característica básica, o sistema permite que seu administrador defina quais janelas e funções serão acessíveis pelos usuários.

Além disso, é possível definir regras para permitir ou bloquear a exportação de dados do sistema. Um exemplo de uso desse recurso é a definição da permissão para que o usuário exporte os dados de um determinado relatório para um arquivo ou um programa de planilhas eletrônicas.

O sistema ainda permite que sejam de-finidas regras específicas de acesso a dados,

dando ao administrador do sistema a possibilidade de ocultar determinados tipos de dados, por exem-plo, impedindo que um determinado usuário da empresa tenha acesso aos dados do pedido de um cliente específico, ou que possuam uma condição de pagamento especifi-cada, como exposto na figura 2.

Finalmente, o sistema permite ainda que sejam gravados logs de modifica-

ção de registros, permitindo a análise de quem processou as modificações e quais foram essas mudanças, como mostra a figura 3.

Todo o processamento de documentos dos processos de negócio, como pedidos de compra ou de venda, movimentações de materiais e outros são realizados por inter-médio de fluxos de trabalho (workflows), o que proporciona opções interessantes de configuração, como a aprovação desses documentos ou a inclusão de novos nós de verificação e tomada de decisão.

O Compiere permite também a criação de fluxos de trabalho baseados na alteração de valores de documentos. Um exemplo seria solicitar a aprovação de pedidos de compra apenas se o valor for superior a um determinado patamar.

Como última opção de utilização do sis-tema de fluxos de trabalho, podemos ainda criar seqüências de atividades, o que ajuda no entendimento dos processos de negócio.

Funcionalidades do CompiereAo invés de tratar as funcionalidades do sis-tema com limites “departamentais”, como Vendas, Contas a Pagar e a Receber, Conta-bilidade e demais, o Compiere adota o con-ceito de processos do negócio, apresentando suas funcionalidades divididas em: ➧ Cotação-ao-Recebimento: Trata todo

o processo de vendas da empresa, desde o primeiro contato de um pos-sível cliente até a administração de toda a carteira de pedidos de venda, seu faturamento e o recebimento.

➧ Requisição-ao-Pagamento: Com-preende o processo de criação de requisições e pedidos de compra, recebimento e contas a pagar.

➧ Gestão de Relacionamento com o Cliente: A funcionalidade de gestão de relaciomento do Compiere não é um

módulo do sistema, mas parte integran-te da ferramenta, permitindo bastante eficiência de todo o relacionamento entre a empresa e seus clientes.

➧ Gestão de Relacionamento com Parceiros: Expande o conceito de re-lacionamento com os clientes para os demais parceiros da organização, como os fornecedores, por exemplo.

➧ Gestão da Cadeia de Suprimento: Trata toda a gestão de materiais na empresa, como recebimento e expedi-ção de mercadorias, administração de estoques e controle de inventário.

➧ Análise de Desempenho: As fun-cionalidade de Análise de Desem-penho incluem todas as atividades contábeis e de custos da empresa, permitindo uma análise dos resul-tados em várias dimensões.

➧ Web Store: A Web Store do Compiere contempla as ferramentas necessárias para a construção de um canal de relacionamento com seus clientes e fornecedores através da Internet. Essa comunicação é feita diretamente com

Figura 2 As permissões de acesso às janelas de configuração podem ser definidas de acordo com o usuário e seu papel na empresa.

Figura 3 O recurso de log das modificações do registro facilita análises do funcionamento da aplicação.

Figura 4 O menu principal apresentado ao usuário dá acesso a todas as funções permitidas para este.

http://supertuxbr.blogspot.com

Page 32: 30 - Gestao e Produtividade_mai_2007

32 http://www.linuxmagazine.com.br

CAPA | Compiere

a aplicação, dispensando a necessidade de duplicação de bases de dados.

Somando-se a essas características, temos o conceito “multi”. O Compiere é uma apli-cação que foi desenvolvida para atender às necessidades de empresas em qualquer parte do globo, portanto temos em sua arquitetura ainda as seguintes características: ➧ Multi-Organização: Permite a ges-

tão de várias empresas dentro do mesmo sistema.

➧ Multi-Moeda: Permite a utilização de diversas moedas nas transações processadas pelo sistemas.

➧ Multi-Contabilidade: Permite a utilização de diversos planos de contas pelo sistema.

➧ Multi-Custos: Permite a manuten-ção de diversos métodos de cálculo de custo pelo sistema.

➧ Multi-Idioma: Permite a manutenção dos dados das transações em diversos idiomas, bem como a manutenção de toda a interface com o usuário em seu idioma nativo.

➧ Multi-Impostos: Permite a configu-ração de regras de impostos com base no tipo de produto que está sendo negociado, a localização do cliente ou fornecedor e a configuração de impostos compostos, como é o caso no Brasil.

InterfaceAo efetuar o login no sistema, o usuário rece-be do Compiere opções de seleção de idioma, além de quais clientes ou empresas ele possui permissão para acessar. Em seguida, é mostrado o menu do usuário (fi-

gura 4), organizado em pastas, de forma a agru-par de maneira lógica as funcionalidades de um mesmo processo de ne-gócios. Também é possível criar atalhos para facilitar o trabalho do usuário.

As janelas da aplicação seguem sempre o mesmo padrão, e apresentam diversas facilidades de navegação, como o Zoom (figura 5), que levam o usuário para novas janelas automaticamente. Outro recurso interessante nas janelas da aplicação é a definição de valores padrão para determi-nados campos. Esse pode ser um grande aliado do administrador do sistema, pois possibilita a criação de janelas “pré-pre-enchidas”, o que facilita o trabalho do usuário e reduz erros no momento da entrada dos dados.

Os relatórios do sistema também po-dem ser configurados pelo usuário, permi-tindo que colunas de dados sejam exibidas ou não, novos critérios de ordenação se-jam criados, e cálculos como somatória, média e contagem sejam incluídos (figura

6). Ao final, todos os relatórios podem ser arquivados diretamente pelo sistema, ge-rando um arquivo de documentos (figura

7), ou exportados para diversos formatos, podendo ser manipulados em outros programas, como editores de planilhas eletrônicas (figura 8).

Aplicação no BrasilUma das maiores dificuldades para adoção, no Brasil, de qualquer sistema de gestão desenvolvido em outros países é o nosso complexo sistema tributário. Um grande número de regras e talvez um número ainda maior de exceções para essas re-gras, além do documento da nota fiscal, constituem uma maior necessidade de adaptação do sistema.

Como estamos tratando de um sistema integrado, toda movimentação de merca-doria, pagamento, recebimento etc. gera lançamentos contábeis, e o grande desafio está em mapear essas diferentes possibili-dades. Por exemplo, um empréstimo de mercadoria no estado de São Paulo, caso

seja feito para uma empresa situada fora do estado, necessita do recolhimento de impostos; enquanto isso, dentro do esta-do, um empréstimo de até 60 dias não exige tal recolhimento.

Nessa mesma operação de empréstimo, precisamos atualizar a situação do estoque, mas não atualizamos as contas a receber, pois não se trata de uma venda.

Mesmo em situações comuns, como uma simples venda, também podemos ter diferentes regras de cálculos de im-postos. Se o cliente se tratar de uma indústria que for utilizar esses produtos como matéria-prima, teremos uma for-ma de cálculo, e se estivermos efetuando essa mesma venda para um consumidor final, os impostos deverão ser calculados de outra forma.

Mesmo nesse cenário complexo, graças à flexibilidade oferecida pelo Compiere através das funcionalidades CallOut e ModelValidator, é possível implementar todas essas regras sem qualquer mudança no código-fonte original do sistema.

Isso coloca o Compiere em posição privilegiada, como um sistema aberto, robusto e extremamente flexível, sendo uma alternativa extremamente interes-sante para empresas de diversos portes e segmentos.

InstalaçãoPara instalar o Compiere no Fedora Core[1] com o banco de dados Oracle XE[2], precisaremos instalar cada um dos componentes (incluindo o Java Develop-ment Kit[3] da Sun) antes do Compiere propriamente dito.

A instalação do Linux, Oracle XE e JDK pode ser feita normalmente, se-guindo as opções padrão de instalação. Portanto, vamos diretamente à instalação do Compiere.

Primeiramente, é necessário defi-nir, sob o usuário root, as variáveis de

Figura 6 O usuário pode configurar os relatórios do sistema, restringindo as colunas mostradas.

Figura 7 Os relatórios e documentos arquivados podem ser mostrados na tela…

Figura 5 A função de zoom agiliza a navegação do usuário pelos menus, levando-o automaticamente para novas janelas.

http://supertuxbr.blogspot.com

Page 33: 30 - Gestao e Produtividade_mai_2007

33

| CAPACompiere

Linux Magazine #30 | Maio de 2007

ambiente de acordo com o exemplo 1. Para tornar essas alterações permanen-tes, pode-se incluir esses comandos no arquivo /etc/profile.

Conforme definido nas variáveis de ambiente, iremos instalar o Compiere no diretório /Compiere2, criado diretamente na raiz e respeitando o C maiúsculo.

Após descompactarmos o arquivo de instalação do Compiere, vamos execu-tar, como usuário root, o script RUN_se-tup.sh.

Na janela de configuração da instala-ção (figura 9), precisamos informar que o banco de dados a ser usado é o Oracle XE, e devemos ainda preencher a se-nha do usuário System, que foi definida durante a configuração do Oracle XE.

Feito isso, selecionamos a opção Test e, em seguida, Save.

Com essas medidas, o Compiere cria-rá o ambiente de execução do servidor adequadamente, com base nas informa-ções passadas.

Após esse passo, é necessário im-portar o conteúdo do banco de dados. Isso é feito através do script RUN_Impor-tCompiere, que se encontra no diretório /Compiere2/utils.

Pronto, o Compiere está instalado. Agora, para executar o servidor da apli-cação, basta chamar o script RUN_Server2.sh, localizado no mesmo diretório /Com-piere2/utils.

Executemos também a aplicação cliente, na mesma máquina, com o script

/Compiere2/RUN_Compie-re2.sh.

Para acessar o Com-piere através de ou-tras estações da rede, basta digitar em um navegador o endere-ço do servidor onde o sistema está instalado e selecionar o link Java Web Start. Também é possível baixar o ar-quivo compactado do cliente, para instalá-lo manualmente nas esta-ções de trabalho.

ConclusõesA página do Compiere oferece uma extensa documentação, além de um fórum relativamente movimentado. Há ainda a possibilidade de contratar supor-te via Web em diferentes modalidades, com preços também diferenciados, ou recorrer a empresas especializada em consultoria. ■

Exemplo 1: Variáveis de ambiente# export ORACLE_BASE=/usr/lib/oracle/xe/app/oracle# export ORACLE_SID=xe# export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/server# export PATH=$PATH:$ORACLE_HOME/bin# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib# export COMPIERE_HOME=/Compiere2# export JAVA_HOME=/usr/java/jdk1.5.0_11

Figura 8 ... ou exportados para visualização e edição em planilhas eletrônicas.

Figura 9 Janela de configuração de instalação do Compiere.

Mais Informações[1] Fedora Core:

http://fedoraproject.org

[2] Oracle XE: http://otn.oracle.com

[3] Sun JDK: http://www.sun.com

[4] Compiere: http://www.compiere.org

O autorEduardo Pereira Montenegro é con-sultor em soluções de sistemas de gestão utilizando o Compiere e man-tém o fórum de suporte ao Compie-re, em www.compiere.srv.br.

http://supertuxbr.blogspot.com

Page 34: 30 - Gestao e Produtividade_mai_2007

34

CA

PA

http://www.linuxmagazine.com.br

O poderoso CRM OpenCRX

Forte, não gordoO OpenCRX se beneficia dos poderes da plataforma Java, oferecendo um sistema muito poderoso, desde que seus requisitos sejam satisfeitos.por Miguel Koren O’Brien de Lacy

Os problemas de negócio atendidos pelos sistemas de relacionamento com o cliente (CRM – Customer

Relationship Management) são muito variados e passíveis de causar grandes impactos nas organizações que aplicam esse conceito. Os sistemas de CRM têm o dever de interagir com muitas áreas, incluindo a comercial e até o suporte técnico. Apesar disso, o objetivo atendido por esses sistemas em diferentes cenários e contextos pode ser bem diferente, focando setores diversos, como o acompanhamento a vendas ou help desk.

A empresa suíça Crixp Corporation[1] avaliou o mercado de CRM em 2003, e concluiu que havia uma lacuna a ser preenchida: a ausência de uma solução livre de porte corporativo. Resolveu, en-tão, desenvolver um sistema com carac-terísticas de uma solução CRM, usando o modelo de negócios de Software Livre com suporte e consultoria comerciais.

Esse modelo de negócios oferece tam-bém a “aceleração de desenvolvimento”, que permite que uma empresa interessada em certa característica planejada possa financiar o desenvolvimento antecipado. A Crixp é apoiada pela também suíça Omex AG[2], que tem sólidos conhecimentos da tecnolo-gia de base do OpenCRX. As empresas que impulsionam o sistema têm experiência no atendimento, em especial, a clientes dos se-

tores financeiro, de medicina, manufatura e comércio. Esse modelo de negócios é bastante popular no segmento de soluções livres para aplicativos de negócios, porque são soluções que requerem conhecimentos da área atendida, além de conhecimentos técnicos em informática. Ou seja, é requerido que os profissionais tenham uma dedicação plena ou quase plena ao sistema.

O sistema OpenCRX é bastante po-pular, com aproximadamente 200 mil downloads atualmente, conforme as estatísticas do Sourceforge[3].

A figura 1 foi obtida de uma reporta-gem sobre CRMs livres feita pela empresa Optaros[4], e mostra o posicionamento desse tipo de solução dentro das camadas de informática de uma empresa.

CaracterísticasO OpenCRX apresenta-se como um siste-ma abrangente no segmento CRM, sem se limitar a certo tipo de problema a resolver. Suas principais características são: ➧ Gerenciamento de contas: essa funcio-

nalidade permite uma visão de 360 graus da conta, e de seus contatos, atividades, produtos e estados de cada conta;

➧ Acompanhamento comercial: per-mite que a equipe de vendas seja mais efetiva, registrando todas as in-terações com o cliente ou potencial cliente. Também define processos de venda quando unido à facilidade de gerenciamento de atividades;

➧ Gerenciamento de produtos e preços: permite administrar produtos, listas de preços em diferentes moedas, forma-ção de produtos complexos baseados nos produtos simples e regras de pre-ços com algoritmos personalizáveis. É possível integrar um sistema ERP ao processo de vendas;

➧ Gerenciamento de atividades: permite formar grupos de atividades que devem

ser executadas, e pode ser usado para implementar um sistema de suporte, parte geralmente bastante usada num sistema CRM. As funções para apoio a help desk são parte natural do siste-ma. O sistema de suporte implemen-tado permite agrupar as atividades em projetos e adequar as horas gastas na solução dos problemas;

➧ Início do ERP: permite manipular lançamentos contábeis em múltiplas moedas no plano de contas, que pode ser definido na estrutura. É o núcleo da futura funcionalidade de ERP planejada para o OpenCRX;

➧ Administração: existe um mecanismo de segurança granular, que permite limitar o acesso a diferentes partes do sistema. Esse mecanismo de segurança é suficientemente avançado, e apro-vado para uso dentro de instituições financeiras, como, por exemplo, em-presas de processamento de cartões de crédito, nas quais a segurança é levada muito a sério. O administrador pode modificar vários aspectos do Open-CRX para adaptá-lo às necessidades da empresa cliente. Essas adaptações podem ir desde modificações nos campos do sistema até a configuração de telas novas e alterações no layout. Algumas mudanças podem ser feitas pelos assistentes do sistema, e outras requerem desenvolvimento usando o modelo UML do sistema. Veja a dis-cussão sobre a tecnologia empregada para entender o conceito.

O OpenCRX permite integração com sistemas GED (gestão eletrônica de docu-mentos), mas também tem a possibilida-de de gerenciar documentos anexos. Ele permite a definição de fluxos de trabalho, porém, atualmente essa customização re-quer a programação de classes em Java. Está planejada a integração de um me-canismo de fluxo de trabalho (workflow),

Figura 1 Diagrama de integração do CRM com outros sistemas de TI.

Arjan Boer - www.sxc.hu

http://supertuxbr.blogspot.com

Page 35: 30 - Gestao e Produtividade_mai_2007

35

| CAPAOpenCRX

Linux Magazine #30 | Maio de 2007

sendo os candidatos o jBPM[5] e o Inta-lio[6], ainda a ser escolhido pela equipe. O OpenCRX já conta com um gerador de relatórios em formatos HTML, RTF e XLS, mas essa funcionalidade será melho-rada com a integração do BIRT (Business Intelligence and Reporting Tools[7]) nas próximas versões.

Algumas outras características tecno-lógicas do OpenCRX são: ➧ Integração com emails POP/IMAP/

SMTP, permitindo a importação de emails vindos de outros sistemas, tais como Microsoft Outlook, Thunder-bird, MS Exchange etc, assim como o envio direto a partir do OpenCRX;

➧ Integração ao conjunto de aplica-tivos de escritório BrOffice.org[8], incluindo o Write e o Calc, além do MS Word e do MS Excel;

➧ Integração ao Apache POI[9], que permite a manipulação de arquivos do MS Office;

➧ Alertas e notificações.Podemos destacar duas funcionalidades

do sistema que podem ser consideradas como customizações feitas pela equipe de desenvolvimento: ➧ Gerenciamento predial – Permite

administrar imóveis ➧ Loja web – permite que sejam feitos

pedidos, através de uma interface web, de produtos cadastrados no sistema.

Esse tipo de aplicativo precisa estar dis-ponível no idioma nativo dos funcionários de suporte e vendas. Assim, o OpenCRX possui traduções para vários idiomas, entre os quais o português do Brasil. A tradução costuma estar levemente atrasada em re-lação à última versão do aplicativo, mas isso não dificulta o uso do mesmo. Para sistemas em produção, nos quais as boas práticas de informática determinam que o sistema não seja atualizado freqüente-mente, esse fator é insignificante.

TecnologiaO OpenCRX é um sistema desenvolvido total-mente em Java, e portanto pode rodar dentro de qualquer servidor de aplicativos JEE (Java Enterprise Edition), em uma das plataformas apoiadas por essa tecnologia. Sendo assim, o sistema pode ser inteiramente utilizado através da Web, com os protocolos HTTP e HTTPS. Há documentação no site do siste-ma, focada nos servidores JBoss[10], Sun AS, BEA WebLogic e IBM WebSphere. O fórum de discussão, suficientemente ativo para esse tipo de aplicativo, é útil para solicitar dicas, e também fornece apoio para outras platafor-mas que o usuário precise utilizar. Também

existe a possibilidade de se contratar suporte comercial nas empresas parceiras.

O sistema aproveita as características da versão 1.4 do Java, mas roda também em versões mais recentes. A equipe de desenvolvimento afirma que pretende tirar proveito das melhorias efetuadas na versão 1.5 da linguagem.

As versões mínimas dos navegadores suportados são Firefox 1.5, Internet Ex-plorer 6, Opera 9.10, Mozilla Seamonkey 1.7.3 e Konqueror 3.3 (esse com alguns problemas de visualização).

Independentemente do navegador, é importante utilizar uma versão recente, pois o OpenCRX usa opções modernas de renderização.

A equipe de desenvolvimento do Open-CRX acredita e apóia a independência de plataforma. Para isso, investe esforços no su-porte a diferentes sistemas de bancos de dados SQL, como Oracle (a partir da versão 9), DB2 (a partir da versão 9.1), PostgreSQL (a partir da versão 8), MySQL (a partir da versão 5) e MS SQL Server (versões 2000 e 2005).

Segundo os desenvolvedores, a decisão de oferecer ou não suporte a um determinado banco de dados depende da capacidade do banco de suportar os comandos SQL que o sistema requer. Todos os bancos de dados atualmente suportados são livres, ou ao menos possuem uma versão gratuita, nesse caso geralmente com alguma limitação na arquitetura do servidor ou no tamanho do banco de dados. Todos os bancos de dados comerciais suportados podem ser usados, com as limitações mencionadas, em ambien-tes de produção. Considerando as limitações desses bancos gratuitos, o DB2 Express-C é altamente interessante, já que não possui limitação de tamanho. A recomendação da equipe do OpenCRX, considerando a performance e escalabilidade requerida no sistema, é usar PostgreSQL, Oracle ou DB2. A infraestrutura exigida, formada por um banco de dados relacional e um servidor de aplicativos JEE, não deve ser motivo para se evitar o uso do OpenCRX,

pois há variedades suficientes para cobrir qualquer disponibilidade de capital.

O OpenCRX é um sistema que requer um hardware para servidor relativamente podero-so, devido à linguagem Java. O equipamento deve dispor de uma quantidade suficiente de memória RAM para evitar demoras nas res-postas. Vale lembrar que o sistema oferece a escalabilidade da plataforma Java, e pode ser usado por centenas de usuários concorrentes. Alguns exemplos sugeridos de configuração estão presentes na tabela 1.

O sistema pode rodar em cluster, apro-veitando a infraestrutura oferecida pelo servidor JEE. Na tabela 1, “concorrente” é usado no sentido estrito: significa que são usuários solicitando serviços simulta-neamente, não simplesmente conectados num mesmo momento.

O OpenCRX começou a ser desenha-do em 2003, e já está na versão 1.10, com

Tabela 1: Sugestões de configuração de hardware para o OpenCRX

Uso Usuários Usuários Concorrentes

CPUs Memória

Testes 1 1 1 GHz 512 MB

Pequena e média empresa

300 50 1×2 GHz ou 2×2 GHz 2 GB ou 4 GB

Corporativo Milhares >100 2×2 GHz para cada grupo de 50 usuá-rios concorrentes

2 GB para cada grupo de 50 usuá-rios concorrentes

Figura 2 Tela de login do OpenCRX mostrando os idiomas suportados.

Figura 3 Página do usuário, mostrando opções de função organizadas em um menu.

http://supertuxbr.blogspot.com

Page 36: 30 - Gestao e Produtividade_mai_2007

36 http://www.linuxmagazine.com.br

CAPA | OpenCRX

períodos de alguns meses entre novas versões. As estatísticas do sistema indicam 242 classes UML, com 3,381 milhões de linhas de código Java, e 95 tabelas no banco de dados. Como é possível ter um sistema tão completo e poderoso em tão pouco tempo? A resposta está na tecno-logia de desenvolvimento utilizada, que é também a mesma tecnologia empregada para customizar o sistema. O OpenCRX foi desenvolvido utilizando o conceito MDA (Model Driven Architecture), de-finido pelo OMG (Object Management Group). Para conhecer os detalhes do modelo de desenvolvimento MDA, acesse o site da OMG no endereço http://www.omg.org/mda/, onde existem muitas infor-mações sobre o assunto.

O objetivo principal do MDA é a sepa-ração da lógica de negócios e aplicativos da tecnologia de infraestrutura utilizada. Isso permite focar o esforço de definição do aplicativo na camada de negócios e aproveitar ou otimizar as características da infraestrutura em outra camada. Trata-se de um paradigma de desenvolvimento de sistemas de alto nível, onde “o modelo é o aplicativo”, pois ele gera o código. Ao tra-balhar com MDA, o sistema normalmente é modelado utilizando-se UML (Unified Modelling Language), e o código é gerado por conversores, que transformam o PIM (Platform Independent Model – o modelo do sistema independente da tecnologia) em PSM (Platform Specific Model – modelo

gerado para uma plataforma específica que, compilado, gera o código). A ferramenta MDA utilizada deve possuir conversores apropriados para a infraestrutura requerida. Esse é um modelo de desenvolvimento de alta produtividade, porém, requer equipes com boa familiaridade com o conceito, além de ferramentas de suporte apropriadas.

A plataforma MDA desenvolvida como Software Livre e licenciada sob a GPL cha-ma-se OpenMDX[11]. De fato, o OpenMDX é um componente essencial para rodar o OpenCRX, e deve ser instalado junto a este. O desenvolvimento do OpenCRX segue de perto o progresso do OpenMDX.

O OpenMDX permite que o desenvol-vedor utilize uma variedade de ferramentas relativamente grande. Entre os modeladores UML, podemos destacar o Poseidon[12], justamente por disponibilizar uma versão gratuita. O Poseidon é uma versão comercial do ArgoUML[13]. O site do OpenMDX possui extensa documentação, além de vários tutoriais, para apoiar o trabalho do desenvolvedor. Ou seja, para customizar o OpenCRX, existem muitas ferramentas e fontes de informação.

InstalaçãoO OpenCRX é simples de instalar, sem problemas de dependências, mas requer que sejam seguidos com atenção todos os passos descritos no guia de instala-ção. Infelizmente, ele não oferece um pacote RPM ou um script de instalação, mas oferece scripts ANT para facilitar o trabalho. Em termos gerais, a instalação envolve as seguintes etapas, cada uma com vários passos: ➧ Preparar a infraestrutura, o que envolve

instalar e configurar a máquina virtual Java (definir corretamente as variáveis tais como JAVA_HOME). Deve-se usar o JDK, pois o JRE não é suficiente. Também é necessário instalar o ANT. O site do OpenCRX possui documentação para apoiar a configuração correta;

➧ Instalar e configurar o servidor de aplicativos JEE. Novamente, o site do OpenCRX oferece documenta-ção para facilitar essa etapa;

➧ Obter o OpenMDX, que deve ser baixado do site do OpenMDX, e fi-nalmente obter o OpenCRX. Deve-se tomar o cuidado de se verificar qual combinação de versões do Java e do OpenMDX devem ser utilizadas. O site do OpenCRX possui uma tabela para explicar esse ponto;

➧ Gerar os arquivos binários, o que en-volve rodar os scripts ANT fornecidos

para gerar o arquivo EAR (Enterprise Archive) que será disponibilizado no servidor de aplicativos JEE;

➧ Configurar o banco de dados, ge-rando as tabelas do sistema e os usuários correspondentes.

Após a instalação, deve ser feita a con-figuração inicial. Isso envolve a edição de arquivos de configuração para a conexão inicial, logo também a definição de acesso inicial dentro do sistema. Essa parte deve ser realizada seguindo-se os passos recomenda-dos com muita atenção. Essa complexidade de configuração é uma conseqüência da flexibilidade de uso de ambientes JEE e bancos de dados variados.

CRM é uma classe de aplicativos que não possui a necessidade, como um sistema anti-vírus, ou um groupware, de ser insta-lado em poucos minutos para ser usado imediatamente. São sistemas com visão corporativa que requerem planejamento para serem utilizados conforme seu poten-cial pleno. Por isso, o roteiro de instalação do OpenCRX não deve ser considerado um empecilho para seu uso.

OperaçãoA tela inicial do OpenCRX solicita o login ao sistema, e permite escolher o idioma da interface. O administrador do servidor pode preparar uma URL convenientemen-te formada para utilizar um determinado idioma por padrão. Quanto ao navegador, é necessário que ele aceite cookies para permitir o uso do OpenCRX.

Quando o usuário entra no sistema, a página apresentada possui um frame à esquerda, contendo as opções funcionais para o perfil do usuário autenticado, e outro à direita com o conteúdo da função sele-cionada. O esquerdo pode ser mostrado ou escondido com um clique sobre o botão <<, ao lado da linha divisora dos frames. Isso pode ajudar muito na visualização, no caso de usuários que permanecem na mesma tela, pois o sistema é projetado para ser usado em telas maiores que 1024×768, embora essa resolução ainda seja o padrão no mercado brasileiro. No entanto, o siste-ma permite em diversas telas que o usuário opte entre o layout compacto e o extenso para ver as informações.

A navegação pela estrutura de menus do lado esquerdo e dentro de cada área do frame direito é bem simples, pois eles se abrem e fecham mediante a passagem do mouse. Com isso, o usuário é poupado do trabalho de mover o mouse para selecionar as opções do menu. A seleção final é feita com cliques nas opções desejadas. O sistema

Figura 4 Selecionando o formato XLS para o relatório.

Figura 5 Filtro de seleção de dados para relatório XML.

http://supertuxbr.blogspot.com

Page 37: 30 - Gestao e Produtividade_mai_2007

37

| CAPAOpenCRX

Linux Magazine #30 | Maio de 2007

está evoluindo para suportar a programação em AJAX, o que vai facilitar ainda mais seu uso. Deve ser explicado, nesse ponto, que a interface é bastante amigável, no sentido da tecnologia de navegação, porém o sistema é complexo e requer treinamento e prática para ser usado corretamente.

O idioma da interface pode ser modi-ficado a qualquer momento, a partir do próprio sistema. Consideramos isso uma grande ajuda, pois, na informática, nem sempre todas as traduções são claras, e é interessante poder ver um texto em mais idiomas para entender melhor seu signi-ficado. Observe na figura 3, onde aparece pt-BR. Clicando sobre esse texto, abre-se a lista de idiomas suportados.

A página do usuário mostra seus com-promissos, além de outras informações úteis para sua atividade do dia. A visão é gerenciada pelo calendário, que aparece na parte inferior esquerda. Os ícones dos botões poderiam ser maiores, mas cada um possui uma mini-janela flutuante, que exibe um texto de ajuda quando so-breposta pelo mouse. Vale lembrar que o administrador pode modificar o layout das telas livremente.

A exportação de dados para outros sistemas é bem simples. As figuras 4, 5 e 6 mostram como exportar todos os contatos para uma planilha do BrOffice.org Calc ou do MS Excel. Seleciona-se um menu de relatórios, e em seguida é preenchido um filtro. Ime-diatamente, o navegador oferece o download ou a abertura do arquivo gerado.

Em termos de relatórios variados, também pode ser usado um sistema externo gerador de relatórios, ou um sistema de BI (Inte-ligência de Negócio, ou Business Intelligence), mas, por recomendação da equi-pe do OpenCRX, não é recomendável acessar as tabelas diretamente, pois não há garantia de com-patibilidade com versões

futuras do modelo de dados. Entretanto, existe o compromisso de compatibilidade futura com as classes do sistema que devem ser usadas preferencialmente para todos os acessos.

Para auxiliar o usuário no uso do siste-ma, algumas telas já possuem um sistema on-line de ajuda, específico do contexto, ou seja, da tela em uso. A figura 7 exibe, na parte inferior, um setor de Documentos e, abaixo da palavra Editar, há uma imagem. Essa é a imagem de ajuda. Ao pressionar esse link, é mostrada a tela com a descri-ção da funcionalidade e da forma de uso. Espera-se que nas versões futuras apareçam mais links de ajuda nas telas.

O sistema de segurança granular permite a restrição do acesso a diversos elementos do sistema. Por exemplo, pode-se evitar o acesso a documentos anexos, conforme mostrado na figura 8.

Em termos gerais, o usuário de um sistema CRM permanece nas mesmas telas durante muito tempo. O OpenCRX suporta essa situação, tornando cada tela bastante abrangente, com acesso direto a diversos detalhes.

ConclusãoUma empresa que tem sua infra-estrutura pre-ponderantemente em Java tem tudo para se satisfazer com a arquitetura e a performance do OpenCRX. Funcionalmente, ele oferece muita flexibilidade para a configuração, o que favorece a empresa, mas é mais trabalhoso do

que outros sistemas livres semelhantes, no que tange a instalação e configuração. Seu diferencial encontra-se na arquitetura do sis-tema. Enquanto muitos sistemas CRM baseiam-se em LAMP (Linux, Apache, MySql, PHP), o OpenCRX utiliza uma tecnologia de porte corporativo. Em ter-mos de facilidade de uso, o mesmo argumento pode

ser aplicado; o OpenCRX requer mais treina-mento para ser utilizado com sucesso, mas suas facilidades funcionais compensam o esforço despendido. Em suma, trata-se de um sistema abrangente, flexível e montado sobre uma plataforma poderosa, que admite ser customizado usando tecnologia de ponta em desenvolvimento de software. Sua curva de aprendizado para ser usado e customizado satisfatoriamente é mais íngreme que a de outros sistemas, e por isso ele é mais apro-priado para empresas com maiores recursos tecnológicos e humanos. ■

Figura 6 Resultado aberto com o BrOffice.org Calc.

Figura 7 Ajuda on-line.

Figura 8 Um exemplo da granularidade da segurança, restringindo o acesso a um documento específico.

Mais Informações[1] Crixp Corporation:

http://www.crixp.com

[2] Omex AG: http://www.omex.ch/

[3] Estatísticas de download do OpenCRX: http://tinyurl.com/2vamhq

[4] Optaros: http://www.optaros.com

[5] jBPM: http://www.jboss.com/products/jbpm

[6] Intalio: http://bpms.intalio.com/

[7] BIRT: http://www.eclipse.org/birt/phoenix/

[8] BrOffice.org: http://www.broffice.org/

[9] Apache POI: http://jakarta.apache.org/poi/

[10] JBoss: http://labs.jboss.com/portal/

[11] OpenMDX: http://www.openmdx.org/

[12] Poseidon: http://www.gentleware.com/products.html

[13] ArgoUML: http://argouml.tigris.org/

O autorMiguel Koren O’Brien de Lacy usa Soft-ware Livre desde 1997. É diretor da Konsul-tex Informática, representante da Artemis In-ternational Solutions Corporation (www.aisc.com) e da Advanced Management Solutions (www.amsusa.com) na América Latina, além de ministrar palestras sobre Software Livre.

http://supertuxbr.blogspot.com

Page 38: 30 - Gestao e Produtividade_mai_2007

38

CA

PA

http://www.linuxmagazine.com.br

SugarCRM, um sistema CRM de código aberto

Código aberto e doceO eficiente SugarCRM roda sobre a estrutura LAMP e é adaptável ao extremo, devido a seu código aberto.por Bruno Franklin

Há tempos o mercado requer uma so-lução desenvolvida sob a arquitetura de Código Aberto para atender às

necessidades de CRM das empresas. CRM (Customer Relationship Management) é a sigla de uma filosofia de trabalho, a gestão do relacionamento com o cliente. Através dessa filosofia, as empresas buscam o contí-nuo aprimoramento das relações com seus clientes, devidamente segmentados, durante todo o seu ciclo de vida, e em vários pontos de contato, através de processos de criação de valor para os mesmos.

Tratam-se de ações executadas por pessoas e para pessoas, utilizando a tecno-logia da informação como elemento faci-litador no fornecimento de seus produtos e serviços, adequados às necessidades de cada cliente em especial, e direcionadas por uma estratégia comercial corporativa, durante a execução dos seus processos de negócios. Nesse sentido, uma empresa que possui uma filosofia em CRM busca che-gar ao mercado com melhor qualidade em produtos e serviços, maior rapidez no seu fornecimento e na inovação dos mesmos,

com baixo custo administrativo e operacional e com melhor nível de serviço percebido por cada um de seus clientes.

O SugarCRM Open Source, surgiu justa-mente para suprir essa demanda. Seu desen-volvimento, nos moldes do Código Aberto, promove inovações rápidas, ao contrário das caixas-pretas proprietárias de vários outros sis-temas, que contam com pequenas equipes de desenvolvimento. A inovação do Sugar-CRM vem de uma comunidade mundial de desenvolvedores, que compartilham idéias e colaboram para trazer à vida as funcionalida-des que a comunidade demanda.

O objetivo do SugarCRM é atender ne-cessidades das gestões de marketing, vendas e suporte ao cliente. Para atingir esse objetivo, o sistema também promove a colaboração entre pessoas na organização. Com sua natureza aberta, esse CRM dispõe de ampla flexibi-lidade. Com mais de um milhão de cópias baixadas, o sistema recebe diversas novas ver-sões, repletas de inovações, a cada ano.

O software é desenvolvido na linguagem PHP, podendo ser utilizado sobre o Linux com servidor Apache. Para aqueles que assim desejarem, o software também roda em ambiente Windows. O banco de dados da versão de código aberto pode ser tanto o MySQL quanto o SQL Server Express.

O SugarCRM possui um único parceiro no Bra-sil[1], que recebe comen-tários das empresas que utilizam o SugarCRM. Até o momento, o sistema tem sido muito utilizado como um repositório de informações de contas, facilitando a visualização

da conta como um todo e, ao mesmo tem-po, fornecendo a informação detalhada a respeito de cada um dos contatos presentes nas contas, bem como as oportunidades, documentos etc.

Utilizando o CRM, elimina-se ativi-dades manuais e planilhas, o que permite maior flexibilidade na análise de dados. O acesso dos usuários ao SugarCRM é completamente realizado pela Web, facilitando o acesso de qualquer ponto do planeta. Por isso, o sistema pode ser instalado tanto num datacenter quanto num servidor local da empresa.

Além desses fatores, também favorecem o SugarCRM seu baixo TCO (custo total de propriedade) e rápido ROI (retorno do investimento), em comparação com outras soluções do mercado.

InterfaceO SugarCRM combina uma interface sim-ples de usuário a uma infra-estrutura de escala industrial, ajustada para máxima confiabili-dade e crescimento. As tarefas de instalação, manutenção e backup são facilitadas pelo fato

Figura 1 A tela inicial do SugarCRM Open Source mostra todos os módulos que o usuário tem permissão para acessar, agilizando seu trabalho.

Figura 2 A guia Principal mostra atalhos para as ações e informações mais importantes e rotineiras.

Meliha Gojak - www.sxc.hu

http://supertuxbr.blogspot.com

Page 39: 30 - Gestao e Produtividade_mai_2007

39

| CAPASugarCRM

Linux Magazine #30 | Maio de 2007

de se utilizar apenas um banco de dados para armazenar todos os dados.

Ao acessar o sistema, o usuário tem acesso imediato a um histórico completo dos clientes. Os representantes de ven-das, por sua vez, recebem informações dos clientes em tempo real.

As funcionalidades do SugarCRM Open Source podem ser divididas em grupos, como mostra a figura 1.

Na guia Principal, ativada pelo mó-dulo de mesmo nome, são mostradas as informações importantes a serem visuali-zadas em conjunto. Como mostra a figura

2, essa tela oferece atalhos para diversas ações, como a criação de contatos, contas e clientes potenciais, assim como dá acesso aos dashlets do usuário, como reuniões, ocorrências, notícias ou algum outro dashlet adicionado pelo próprio usuário.

A guia Painel contém os atalhos para criação de contas, contatos, novos poten-ciais, oportunidades, ocorrências e falhas (essa última, vinculada à central de suporte), conforme mostrado na figura 3. Ainda nessa tela, os gráficos com as informações visuais das contas, oportunidades e funil de vendas são apresentados. Como se pode ver, a tra-dução da interface ainda não está finalizada, e contém algumas pequenas falhas que não prejudicam o uso do programa.

A figura 4 demonstra o gerenciamento de contatos, que permite a identificação e pesquisa de contatos. Clicando em cada um deles, é possível ainda associar emails, atividades, oportunidades e ocorrências aos mesmos, como mostra a figura 5.

Da mesma forma que os contatos, as contas também podem ser visualizadas, na guia Contas, com as mesmas funcionalidades de pesquisa e identificação, e recebendo a atribuição de emails, atividades, oportuni-dades e ocorrências (figura 6).

O gerenciamento de potenciais é feito na guia Potenciais, e permite a classificação dos contatos como potenciais, sendo possível con-vertê-los em oportunidades (com uma conta atrelada), conforme mostra a figura 7.

O módulo de gerenciamento de opor-tunidades, acessível através da guia Oportu-nidades (figura 8), permite o cadastramento das oportunidades com valores, estágio de vendas, probabilidades, datas previstas etc., totalmente relacionadas às contas. Ele ainda monitora a efetividade dos investimentos em marketing para cada fonte que origina potenciais, pois é possível obter a origem de uma determinada oportunidade.

A guia Marketing consiste no gerencia-mento de contatos, contas, potenciais e cam-panhas. Os módulos de gerenciamento de contatos, contas e potenciais são os mesmos

explicados anteriormente. O gerenciamento de campanhas, no entanto, serve para orga-nizar as atividades de marketing e auxiliar a medição de efetividade. Para isso, ele acom-panha desde a criação de listas de prováveis interessados até o contrato fechado. Ele permite ainda o rastreamento de esforços de marketing associados aos potenciais clientes, contatos e oportunidades, para análises do ciclo de marketing (analisar, planejar, desen-volver, executar). Através da segmentação dos contatos ou potenciais a serem incluídos na lista de participantes de uma campanha, esse módulo possibilita o direcionamento mais preciso das campanhas, podendo armaze-nar as listas para outras campanhas futuras, e também atribuindo ao histórico do cliente qualquer interação, conforme pode ser visto na lista de atalhos da figura 9.

O módulo de gerenciamento de ocor-rências (guia Ocorrências) permite o acom-panhamento das ocorrências de suporte por cliente, incluindo a atribuição de prioridades, status e usuário, o que facilita a resolução dos problemas em conjunto, conforme apresen-tado pela figura 10. Permite também o acom-panhamento de cada passo no processo de resolução de problemas, ajudando no processo de comunicação com os clientes.

A figura 11 mostra o gerenciamento de problemas conhecidos através da guia Cen-tral de Suporte. Ela auxilia o controle dos problemas de produtos, apontando as versões com erros e gerenciando as correções. Com o ajuste da prioridade do problema, assim como da equipe responsável por solucioná-lo, a produtividade de toda a equipe é aumen-tada. Ainda há a possibilidade de associar os chamados cadastrados pela central de su-porte a ocorrências abertas pelos clientes. É importante notar que nem toda ocorrência aberta representa um problema em algum produto ou um chamado relacionado a ele. Contudo, à exceção dos problemas verifi-cados pela própria empresa, todos os que forem descobertos a partir de ocorrências abertas pelos clientes devem ser associados a essas ocorrências. Isso tem o objetivo de acrescentar no histórico dos clientes tanto a ocorrência quanto a solução do problema em um determinado produto.

A organização pessoal é realizada através dos módulos Atividades, Agenda, Emails, Ligações, Reuniões, Tarefas e Anotações, agrupados sob a guia Atividades. Nela, é possível cadastrar cada um dos compro-missos do usuário. Um recurso muito in-teressante é a possibilidade de se associar atividades a outros módulos – por exemplo, uma reunião a uma oportunidade – tornan-do o gerenciamento dessas informações mais intuitivo e eficiente. ➧

Figura 3 A guia Painel facilita a criação de novas entradas no SugarCRM, mostrando também gráficos a respeito das mesmas.

Figura 4 É possível realizar buscas na lista de contatos…

Figura 5 ... atribuindo a cada um deles diversos eventos ou itens.

Figura 6 A lista de contas tem funcionalidades semelhantes à de contatos.

http://supertuxbr.blogspot.com

Page 40: 30 - Gestao e Produtividade_mai_2007

40 http://www.linuxmagazine.com.br

CAPA | SugarCRM

O módulo de ligações (mostrado na figu-

ra 12) permite o cadastramento de ligações ocorridas e o agendamento de ligações futu-ras, sempre adicionando automaticamente os contatos (chamados aqui de convidados da ligação) ao histórico de interações dos mesmos. O módulo de reuniões tem com-portamento semelhante.

A agenda oferecida pela guia de mesmo nome permite o compartilhamento das agen-das dos usuários, bem como o controle inde-pendente da agenda de cada um deles.

Da mesma forma que os chamados de suporte, as tarefas podem receber prio-ridades e status, contando ainda com a definição das datas de início e fim, o que permite um melhor controle das próximas finalizações e também dos atrasos.

Como se poderia esperar, pode-se en-viar e receber emails através do módulo de mesmo nome. Porém, há funcionalidades adicionais nele, como a construção de mo-delos (templates) em texto ou HTML, e a inclusão de mensagens ao histórico de todos os contatos envolvidos nelas.

A área de colaboração dispõe de um módulo de gerenciamento de projetos e outro de documentos. O primeiro apre-senta uma forma de se cadastrar projetos simples, contendo tarefas seqüenciais com seus predecessores, atribuições a usuários executores, acompanhamento de status dessas tarefas de projeto e controle admi-nistrativo sobre a execução do projeto em si, como mostrado na figura 13.

O gerenciamento de documentos (guia Documentos) funciona como uma biblio-teca de documentos usada para facilitar o acesso à base de conhecimento por todos os usuários da solução SugarCRM Open Source. Ele permite anexar arquivos, rela-cionar documentos entre si, controlar da-tas de publicação e expiração e controlar revisões e a criação de modelos.

Os módulos RSS e Meu Portal cons-tituem o grupo Ferramentas. Enquanto o RSS permite o cadastramento de sites que oferecem feeds RSS para facilitar o acompanhamento de notícias relevantes ao negócio, o segundo módulo armazena os sites favoritos de cada usuário, de forma a facilitar o uso de qualquer computador com acesso ao SugarCRM.

InstalaçãoO processo de instalação do SugarCRM Open Source (SugarCRM OS) com MySQL e Apache é composto pelos se-guintes passos: ➧ Download dos arquivos do Sugar-

CRM;

➧ Cópia dos arquivos para o servidor web;

➧ Instalação do sistema CRM de for-ma gráfica.

A seguir, são descritos os passos, de forma individual.

Para realizar o primeiro passo, baixe a versão mais recente do SugarCRM Open Source, disponível em http://www.sugarcrm.com/crm/download/sugar-suite.html, sob a indicação Full Installation Package.

O segundo passo, cópia dos arquivos para o servidor web, exige que o pacote do SugarCRM seja descompactado e receba as permissões necessárias. Para isso, localize o diretório raiz da web no servidor. Esse é o diretório que permitirá acesso público aos arquivos disponíveis no servidor web, e costuma estar localizado em um dos seguintes pontos: ➧ /var/www/html/ (Linux/Apache) ➧ C:\Inetpub\wwwroot\ (Windows/IIS) ➧ C:\Arquivos de Programas\Apache Group\

Apache\htdocs\ (Windows/Apache) ➧ /Library/Web server/Documents/ (Ma-

cOS X/Apache)Ao ser descompactado, o pacote criará

automaticamente um diretório no local selecionado. É possível renomear o dire-tório recém-criado, caso seja de interesse do administrador.

A seguir, as permissões devem ser configuradas corretamente. Os diretórios abaixo, incluindo seus subdiretórios e ar-quivos, deverão ter permissão de escrita para o usuário responsável por executar o servidor web: ➧ cache ➧ custom ➧ data ➧ modules ➧ config.php

É importante notar que o usuário responsável pelo servidor web tem dife-rentes nomes, dependendo do sistema operacional utilizado. No Linux, ele cos-tuma chamar-se apache ou nobody, mas não há um padrão fixo para isso.

O terceiro passo, a instalação do Sugar-CRM, pode ser feito através do amigável instalador incluído no pacote. Para isso, basta acessar a URL http://servidor_web/diretorio_SugarCRM, como por exemplo http://localhost/sugarcrm.

Com esse acesso pelo navegador, o administrador será automaticamente redirecionado para o instalador. Clican-do-se em Start, a instalação é iniciada. Após aceitar o termo de licença do Su-garCRM, o sistema verificará as depen-dências e requisitos para essa instalação, que resumem-se a:

Figura 7 O gerenciamento de potenciais permite o atrela-mento de contas mediante a conversão destes em oportunidades.

Figura 8 As oportunidades são catalogadas de forma eficiente na guia Oportunidades.

Figura 9 A guia Campanhas agiliza e favorece o cruzamento de informações de potenciais, contatos, clientes e oportunidades.

Figura 10 O gerenciamento de ocorrências oferece uma inter-face simples para o acompanhamento de relatos de problemas, cada um vinculado a uma conta e um cliente, e recebendo uma prioridade.

http://supertuxbr.blogspot.com

Page 41: 30 - Gestao e Produtividade_mai_2007

| CAPASugarCRM

➧ O banco de dados deve estar con-figurado para trabalhar com PHP;

➧ A biblioteca curl deve estar incluída na instalação do PHP;

➧ A definição da opção session_save_path deve estar no arquivo php.ini.

Se algum componente não estiver correto ou disponível, uma mensagem em vermelho será mostrada. Nesse caso, cancele a instalação e corrija a depen-dência (a documentação disponível no site do SugarCRM[2] explica como fazer isso).

Se todos os itens forem satisfeitos, o instalador apresentará o botão Next, que deve ser clicado para se prosseguir com a instalação.

A seguir, será exibida uma tela para a configuração do banco de dados. Nesse passo, é possível configurar o instalador para que ele insira no sistema alguns da-dos de demonstração. Normalmente, o servidor de banco de dados é a mesma máquina na qual a instalação do Su-garCRM está sendo feita. Nesse caso, é preferível utilizar localhost como nome da máquina para fins de instalação. Se o banco de dados do SugarCRM não hou-ver sido criado antecipadamente, o passo atual ainda possibilitará que se peça para o instalador fazê-lo, criando também o usuário apropriado no banco. Para isso, é importante que o usuário que fizer a instalação tenha direitos administrativos no servidor.

Após clicar novamente sobre o bo-tão Next, o administrador verá a tela de configuração do site. Ela permite que

sejam ativados itens es-pecíficos da instalação do SugarCRM, como a verificação automática de atualizações, o cál-culo de estatísticas e as configurações avançadas de segurança. A especifi-cação do endereço web é o endereço a ser usado no SugarCRM. Normal-mente, utiliza-se o valor padrão. Para personalizar os diretórios de sessão e logs, além do identifica-dor da aplicação, basta

desmarcar o item Use Defaults? na caixa Advanced Site Security.

Após preencher os campos adequadamen-te, configurando a URL do SugarCRM e a senha de administrador, entre outros, um clique em Next levará o administrador à tela de configurações locais e pacote de línguas. Essa tela é bastante auto-explicativa. Porém, é importante ressaltar que, para selecionar uma língua diferente da que vem por padrão no sistema CRM (inglês), é necessário que o pacote da língua esteja instalado.

Após preencher os valores apropria-damente, pode-se clicar em Next e veri-ficar as informações cuidadosamente e novamente. Caso seja necessário alterar a configuração de alguma etapa anterior, sempre é possível pressionar o botão Back para voltar à respectiva tela.

Após clicar mais uma vez em Next, será exibida a tela de execução, inician-do-se a instalação propriamente dita, com os parâmetros selecionados nos passos anteriores.

Quando a instalação estiver completa, clique em Next para prosseguir para a tela de registro. Clique no botão Send Regis-tration para efetuar o registro. É possível não realizar esse registro no momento, simplesmente clicando em Finish. Após essa etapa, o administrador verá a tela ini-cial do SugarCRM Open Source.

ConclusãoA versão em Código Aberto do Su-garCRM, sem custo de licenças de uso, é uma solução muito interessan-

Figura 11 A guia Central de Suporte permite a abertura de cha-mados, assim como a manipulação dos já existentes, a fim de simplificar sua solução.

Figura 12 Acompanhamento das ligações do usuário através da guia Atividades.

Figura 13 O gerenciamento de projetos oferecido no SugarCRM Open Source permite um relativo grau de controle sobre os projetos em andamento.

Mais Informações[1] HighCRM, parceiro SugarCRM:

http://www.highcrm.com.br

[2] Documentação do SugarCRM: https://www.sugarcrm.com/crm/support

[3] SugarCRM Open Source: http://www.sugarcrm.com/

O autorBruno Franklin ([email protected]) é Gerente de Projetos Senior e PMO da HighCRM, parceira da SugarCRM no Brasil, e atua como coordenador dos cursos do PMI, Capítulo São Paulo.

te, pois os custos de licenças durante muito tempo foram impeditivos para uma grande quantidade de empresas, prejudicando significativamente a per-cepção dessa tecnologia por parte do mercado. ■

http://supertuxbr.blogspot.com

Page 42: 30 - Gestao e Produtividade_mai_2007

Lars Sundström - www.sxc.hu

42

CA

PA

http://www.linuxmagazine.com.br

ERP e CRM livres

Liberdade de gestão O Código Aberto se fi rma como opção de fôlego na implementação de sistemas de gestãopor Tadeu Carmona

No início da década de 90, os sistemas integrados de gestão ou ERPs (Enterprise Resource

Planning) e os CRM (Customer Rela-tionship Management ou Gerenciamento de Relacionamento com o Cliente) var-reram o mundo corporativo, apoiados na popularização da informática e da arqui-tetura cliente-servidor. Ter um sistema de gestão integrado deixava de ser privilégio de muito poucos: bastava, ao menos no quesito de hardware, possuir microcom-putadores e uma rede, ou seja, dispor de uma plataforma bem menos onerosa do que os grandes mainframes.

Mas, do lado do software, possuir um ERP ou CRM continuava sendo uma tarefa para poucos: mandar de-senvolver um pacote de módulos ou comprar sistemas prontos dos grandes players do mercado, e em seguida en-comendar a implementação, não cus-tavam nada barato. É a eterna guerra do Custo x Benefício?

Na conquista das grandes empresas, os desenvolvedores de ERP/CRM “de peso” delimitaram seu território, fazendo com que os grandes clientes em potencial se decidissem por uma das suas soluções. Esses sistemas são algo complexos em sua implementação – a adoção de uma solução de gestão via ERP implica em uma mudança, muitas vezes inclusive cultural ou estrutural, da empresa. O mesmo ocorre com os setores de vendas: o CRM não é uma ferramenta de “infor-matização do caos”, nem uma fonte de milagres – para que o software cumpra sua tarefa são necessários ajustes no modo como a equipe de vendas é organizada. Esses ajustes são de escala progressiva:

quanto maior é a empresa, sua estrutura existente ou seu departamento de vendas, mais complexa e demorada é a “costura” do sistema de ERP/CRM.

Se bem essas mesmas necessidades exis-tam no mercado intermediário, formado pelas pequenas e médias empresas (PMEs), estamos diante de uma escala menor, em que conjuntos de problemas ou desafi os estão muito mais próximos entre si, ou de suas soluções. É muito mais fácil adequar um módulo de ERP para trabalhar com o departamento no fi nal do corredor, do que com a interligação de dez subdepar-tamentos localizados a alguns quilômetros de distância, a Internet e as VPNs (Virtual Private Network) estejam lá ou não...

Ferramentas de gestão, não gestão de ferramentas Foi pensando nisso que várias empresas voltaram-se, maciçamente, para o mercado de soluções para as PMEs. A necessidade de uma carga bem menor de custos de planejamento e ferramentas massivas de consultoria permitiu o desenvolvimento de ferramentas de ERP/CRM mais acessíveis, tanto do lado dos clientes, quanto da oferta de produto por parte dos desenvolvedores. É o que convencionou-se defi nir com a frase paradigmática “ferramentas de ges-tão, não gestão de ferramentas”.

O modelo de desenvolvimento de Có-digo Aberto fez uso desse novo paradigma, preocupando-se em desenvolver softwares de ERP e CRM com excelência técnica, e relegando a preocupação com a venda

de serviços e consultorias anexos para uma segunda etapa. Muitos dos projetos de Có-digo Aberto desenvolveram ERPs com os fontes disponíveis e distribuição livre, como é o caso do Compiere [1], apoiando-se fi -nanceiramente, após a adoção da solução por milhares de usuários, na prestação de serviços de consultoria e implementação. Assim, criou-se a ferramenta e se fez a sua distribuição, preocupando-se com a sua excelência e usabilidade, para só depois imaginá-la como veículo de consultoria.

Antes, os proprietários Essa característica, muito comum, será o enfoque dado por boa parte das empresas ou comunidades que produzem ERP e CRM no formato de software de código aberto. Aqui tratamos, obviamente, de softwares que funcionam em modo online, seja pela Internet, seja usando a arquitetura cliente-servidor dentro de uma rede interna.

Em relação a sua constituição lógica, existem majoritariamente dois grandes grupos de ERP/CRM: os baseados em sis-temas LAMP (Linux, Apache, MySQL e PostgreSQL) ou WAMP (Windows, Apa-che, MyDQL e PostgreSQL) e os sistemas dependentes da linguagem de programa-ção Java, desenvolvido pela Sun.

Nos ERP/CRM proprietários, é claro, existe uma gama maior de divisões, já que cada empresa desenvolve sua própria tec-nologia de recolhimento, análise e acesso a dados, obviamente com código fechado.

Grande parte do mercado ERP mun-dial está dividido entre empresas de código fechado: SAP (R/3, mySAP [2]), Oracle (E-Business Suite [3]), PeopleSoft J.D. Edwards (adquirida pela Oracle em 2004),

http://supertuxbr.blogspot.com

Page 43: 30 - Gestao e Produtividade_mai_2007

43

| CAPAERP e CRM

Linux Magazine #30 | Maio de 2007

Sage (ausente do mercado brasileiro): todos com compatibilidade e disponibilidade para servidores Linux. Também é obrigatório citar a Microsoft (Axapta e Navision). Um estudo de 2004 do grupo Gartner divide o mercado mundial de aplicações ERP entre os grandes fornecedores segundo o gráfico indicado na figura 1.

No Brasil, a TOTVS/Microsiga [4], que agora agrega também as soluções da Logocenter e da RM Sistemas, detém o maior quinhão dos 48,7% de participação de outros fornecedores do mercado de so-luções ERP. Voltadas para o mercado de pequenas e médias empresas, as soluções da TOTVS também abocanham a maior parte dos 5,8% de participação do Sage, sistema ERP também focado nesse segmento. A solução ERP da Datasul também merece menção aqui. Tanto a solução da TOTVS quanto a da Datasul possuem compatibi-lidade com ambientes Linux.

O modelo de negócios desses fornecedo-res de soluções é baseado no licenciamento tradicional do software. Além disso, há custos adicionais relacionados a serviços em geral, como instalação, parametrização e suporte, que, em geral, são cobrados anualmente. Há uma forte tendência no mercado contem-plando o modelo ASP (terceirização dos serviços com hospedagem externa).

Um exemploEntre os sistemas de ERP proprietários, cabe dar destaque ao mySAP ERP, que combina ERP com uma plataforma tecno-lógica aberta e flexível, que pode expandir e integrar sistemas SAP e não-SAP.

O mySAP ERP é comercializado, vem com quatro soluções individuais que atendem aos processos principais de uma empresa: ➧ mySAP ERP Financials ➧ mySAP ERP Administração de Ca-

pital Humano ➧ mySAP ERP Operações ➧ mySAP ERP Serviços Corporativos

O mySAP ERP redefine o planeja-mento de recursos empresariais, trazendo características e funções que dão suporte às seguintes atividades empresariais: ➧ Apresentação do Serviço para o

usuário final; ➧ Interfaces amigáveis e apoio aos

diferentes papéis empresariais; ➧ Simplificam o acesso à informação

e dão mais poder aos funcionários e administradores, enquanto aumen-tam a motivação, produtividade e eficiência.

➧ Análises com apoio completo e abran-gente para a administração estratégi-

ca empresarial, análises financeiras, análises operacionais, e análises do quadro de empregados;

➧ Funções para automatizar a contabili-dade financeira e administrativa,como administração da cadeia produtiva, lhe dão uma visão financeira mais profunda através de toda a empresa. Um suporte rigoroso para mandatos de governança corporativa, como Basel II e Sarbanes-Oxley, facilitam iniciativa de conformidade corporativa. Estas atividades se tornam possíveis por meio do mySAP ERP Financials;

➧ Funções que lidam com Administração de Capital Humano e administração de talentos, administração do quadro de funcionários e a distribuição destes mesmos funcionários. Estas atividades são chamadas de mySAP ERP Admi-nistrador de Capital Humano;

➧ Uma abrangente série de funções de logística administrativa ajudam a inte-grar ciclos empresariais, como os ciclos compra-para-pagar e produtos sob medi-da. Estas atividades se tornam possíveis através do mySAP Operações;

➧ Funcionalidade de administração permite que você otimize tanto os serviços centralizados quanto os descentralizados para gerenciar imóveis, administração do portifó-lio de projetos, viagens corporati-vas, ambiente, saúde e segurança (environment, health, and safety – EH&S); e controle de qualidade. Estas atividades são feitas pelo my-SAP ERP Serviços Corporativos.

Oracle E-Business Suite Outra solução proprietária que merece ser menciona-da é o Oracle E-Business Suite, um conjunto de aplicativos de negócios que lhe permite gerenciar as interações com os clien-tes, fabricar produtos, fazer remessa de pedidos, cobrar pagamentos de maneira eficiente, dentre outras funcionalidades, tudo a partir de um sistema de negócios que compartilha uma única base tecnológi-ca, 100% integrada. Imple-mentando-se um ou vários dos módulos disponíveis, a Oracle E-Business Suite

permite ao cliente aprimorar os processos de negócios, tomar decisões mais bem-in-formadas e reduzir despesas.

Com isso, o cliente é capaz de obter acesso a informações de forma mais rápida e econômica em uma única instância global, automatizar os processos de negócios em toda a empresa e gerenciá-la com base em fatos, através do uso de um sistema integrado de Business Intelligence.

Os seguintes módulos estão disponí-veis na Oracle E-Business Suite: ➧ Compras ➧ Contratos ➧ Gestão de desempenho corporativo ➧ Gestão de dados de clientes ➧ Gestão de relacionamento com o

cliente ➧ Financeiro ➧ Gestão de recursos humanos ➧ Módulo de Inteligência

O CRM De modo geral, sistemas CRM modernos abrangem hoje a automatização da gestão de marketing, da gestão comercial, do canal e da força de vendas, bem como a gestão dos serviços ao cliente. Tais siste-mas registram contatos com clientes de forma centralizada, independentemen-te do meio de comunicação utilizado, e que pode ser telefone, fax, email, chat, SMS, MMS, dentre outros. Esses siste-mas catalogam todas essas chamadas e as informações geradas a partir de sua recepção (anotações, cadastros, respos-tas a consulentes), de modo a fornecer informações relevantes para tomadas de decisões. Além disso, mais do que ser um meio de consulta a um catálogo de

Figura 1 Principais fornecedores de soluções ERP no mercado mundial.

0,0%

5,0%

10,0%

15,0%

20,0%

25,0%

30,0%

35,0%

40,0%

45,0%

50,0%

SAP PeopleSoftJD Edwards

Oracle Sage Microsoft OutrosFornecedores

http://supertuxbr.blogspot.com

Page 44: 30 - Gestao e Produtividade_mai_2007

44 http://www.linuxmagazine.com.br

CAPA | ERP e CRM

informações estático, os sistemas CRM se tornaram uma ferramenta para atua-lizar constantemente o entendimento das necessidades e do comportamento dos clientes.

Da mesma forma que ocorre com os sistemas ERP, de acordo com o grupo Gartner praticamente 50% do mercado mundial de sistemas CRM se encontra dividido entre quatro fornecedores de tecnologia: SAP, Siebel (adquirida pela Oracle em 2005), PeopleSoft (adquirida pela Oracle em 2004) e Oracle, com to-das oferecendo suporte a Linux. Outras soluções incluem SalesLogix (da Sage), SalesForce.com (que segue o modelo on-Demand CRM), SAS Customer Intelli-gence, Amdocs (que agrega a gestão de parcerias ao CRM), Onyx, Telemation e Microsoft Dynamics CRM – somente o último não contemplando a plataforma Linux. A Figura 2 ilustra a participação dessas soluções no mercado mundial de sistemas CRM em 2004 e 2005.

No mercado brasileiro podem ainda ser mencionadas as soluções CRM da TOTVS/Microsiga e da Datasul – am-bas disponíveis também para a platafor-ma Linux.

Agora os abertos... Os sistemas ERP de Código Aberto dispo-níveis atualmente são, do ponto de vista de tecnologia, competidores sérios dos sistemas proprietários. Há que se anali-sar, entretanto, questões como responsa-bilidades em caso de prejuízos ou mal funcionamento do sistema, cronograma de desenvolvimento e de atualizações, manutenção e serviços em geral.

Entre os sistemas ERP de código aberto disponíveis atualmente, podemos citar: Compiere, SQL-Ledger [5], Persa-

piens [6], OpenERP [7], Freedom [8], Sagu [9], dentre outros.

Sistemas CRM de código aberto Da mesma forma que ocorre com sistemas ERP, há um grande número de projetos de sistemas CRM de código aberto que já atingiram nível para uso em sistemas de missão crítica. Tais sistemas desfrutam das mesmas vantagens descritas para os sistemas ERP.

Entre os principais projetos de siste-mas CRM de código aberto disponíveis atualmente, podemos citar o SugarCRM, vTiger CRM, TUTOS, OpenCRX e o TinyCRM: sem nos esquecermos do Compiere, que além de ERP também é CRM.

No Brasil podemos ainda citar o lâm-padaCRM e HighCRM, ambos baseados no SugarCRM.

De novo o CompiereDeve-se notar que, ao falar dos sistemas de ERP e CRM proprietários, mostra-mos que boa parte dessas plataformas – senão a sua totalidade – é baseada na arquitetura de pacotes ou módulos de funcionalidade. O problema dessa ar-quitetura – sobretudo ao ligá-la aos sis-temas proprietários – é que a inclusão de novos pacotes ou módulos, além de sua customização e “amarração” em relação ao sistema existente, necessitam de nova contratação da empresa produtora do software ou de seus parceiros comerciais, com pagamento extra de taxas por mó-dulo, desconhecimento técnico de como o módulo é integrado, delineamento ou migração de ERP e CRM que duram meses (ás vezes anos) são apenas para

citar as situações que mais saltam aos olhos. Se bem muitos desses problemas costumam – e devam realmente – ser creditados a más parce-rias e a integradoras sem excelência na prestação de seus serviços. Vale também lembrar que o modelo proprietário de software, nesse caso aplicado a algo tão de-licado como o ERP de uma empresa, dá mar-gem a esse tipo de con-tratempos.

Os problemas com ERP/CRM de có-digo-aberto, em relação a parceiros, inte-gradores ou consultorias que dão suporte a um determinado produto podem, sim, ser semelhantes aos problemas vistos com os softwares proprietários. A diferença reside, contudo, no fato de que a empresa usuária da solução não está atrelada a uma única parceria com a empresa fabricante do soft-ware, ou a esta própria: com o código-fonte aberto, pode-se partir para a a contratação de mão-de-obra especializada ou, em um modelo mais conservador, simplesmente cumprir as leis do Capitalismo e de sua lei “da oferta e da procura”, procurando uma empresa ou consultoria mais “afina-da” com suas necessidades.

Esse é o caso, novamente, do Compiere, que já foi citado no início desta matéria. O Compiere, enquanto software, já foi baixado por dezenas de milhares de pessoas, que po-dem ou não partir para a instalação e custo-mização feita por equipes de desenvolvimento internas. Quando isso não é possível, passa-se imediatamente a procura de consultoria ha-bilitada para o uso do programa... com total liberdade de escolha do usuário.

As questões relacionadas a responsa-bilidade sobre o software e a sua aplica-ção em ambiente corporativo parecem ser respondidas satisfatoriamente pelo Compiere com a adoção de diversos padrões de excelência na distribuição de suporte e serviços. Por meio de uma configuração flexível, que permite uma implantação fácil e rápida, o Compiere permite a redefinição de seus parâmetros de configuração a qualquer momento. Além disso, o Compiere estabeleceu uma rede mundial de parceiros para atender todas as necessidades de suporte e desenvolvimento. ■

Figura 2 Principais fornecedores globais de CRM.

0,0%

2,5%

5,0%

7,5%

10,0%

12,5%

15,0%

17,5%

20,0%

22,5%

25,0%

27,5%

SAP Siebel Oracle PeopleSoft Salesforce.com Amdocs

Mais Informações[1] Página oficial do Compiere:

www.compiere.org.

[2] mySAP: www.sap.com/solutions/business-suite/erp/index.epx

[3] Oracle E-business Suite: www.oracle.com/applications/index.html

[4] Totvs-Microsiga: www.microsiga.com

[5] SQL Ledger: www.sql-ledger.org

[6] Persapien: www.persapiens.org

[7] openERP: sourceforge.net/projects/theopenerp

[8] Freedom: www.freedom.org.br

[9] Sagu: http://sagu.solis.coop.br

http://supertuxbr.blogspot.com

Page 45: 30 - Gestao e Produtividade_mai_2007

45Linux Magazine #30 | Maio de 2007

AN

ÁLIS

E

Desktop nacional talentoso

Insigne representante A versão 5.0 (Momentum) do Imagine Linux

desenvolvido pela Insigne Free Software.por Tadeu Carmona

A abertura do Programa Com-putador para Todos, iniciativa do Governo Federal para po-

pularização da Informática, no final de 2005, proporcionou o acesso de milhares de pessoas a computadores pessoais (PCs). Muito mais do que dar acesso a tecnologia, integrando-a ao mundo doméstico de uma parcela da

população, no entanto, o programa atraiu o interesse da população co-mum a tecnologias como a Internet, o acesso digital a serviços essenciais, a elaboração eletrônica de documentos e o Software Livre.

Desde o início do programa, estabe-leceu-se como meta o financiamento, com auxílio do BNDES (Banco Na-

cional de Desenvolvi-mento Econômico e Social), de computado-res com valor de até R$ 1400,00. Esse valor en-globava, além de todo o hardware constituinte do PC, também o siste-ma operacional.

Para sua homologa-ção pelo projeto, um sistema operacional deve obedecer várias regras, incluindo ma-nuais e suporte em lín-gua portuguesa [1]. Do

ponto de vista do seu desenvolvimen-to e apresentação, um software apto a participar do projeto deve possuir também: ➧ Permissão de análise e estudos

da execução do software, sem restrições de divulgação do re-sultado;

➧ Os aplicativos não poderão ser versões de demonstração e nem possuir restrições de funcionali-dades artificialmente implanta-das.

Software Livre preferencialEsse conjunto de diretrizes a serem seguidas fez com que sistemas opera-cionais livres, seguidos de aplicativos também livres, fossem adotados como padrão. Existiram, é claro, modelos de PC com Windows pré-instalado (usando a versão limitada conhecida Figura 1 Opções avançadas de boot do Insigne Linux.

http://supertuxbr.blogspot.com

Page 46: 30 - Gestao e Produtividade_mai_2007

46 http://www.linuxmagazine.com.br

ANÁLISE | Insigne Linux

como Starter Edition), mas em número muitíssimo menor do que seus equiva-lentes equipados com Linux.

O programa governamental teve, as-sim, um efeito, senão inusitado, ao menos curioso: diversas distribuições Linux nacio-nais, voltadas para desktops domésticos e munidas com as facilidades que esse nicho dos sistemas operacionais deve possuir, começaram a surgir. Uma das mais bem sucedidas dentre elas é o Insigne Linux [2], distribuição produzida pela Insigne Free Software do Brasil Ltda. Com mais de 5 anos de existência e atualmente em sua versão 5.0.1.1, o Insigne atualmente acompanha PCs de grandes fabricantes, como a CCE, Semp Toshiba e Aiko. Já comercializado maciçamente por grandes redes de supermercados, como o Wal Mart, o Insigne melhorou continuamente com o passar dos anos. Com suas primeiras versões construídas a partir do zero, temos agora uma versão 5.0.1.1 fortemente aparentada

com a família Debian e utilizando o geren-ciador de janelas Gnome (versão 2.14.2) – a mesma opção adotada por distribuições de grande porte como o Ubuntu.

O casamento entre padrão Debian e Gnome é capaz de resultar em uma distribuição Linux para desktop de qua-lidade? O resultado é visível, e 100% em língua portuguesa, e é o que iremos mostrar em nossa análise.

Quick InstallO disco de instalação do Insigne fun-ciona tanto como LiveCD, permitindo o uso da distribuição sem necessidade de alterar o disco rígido, quanto como CD de instalação. A diferença está no modo como isso é feito.

O Insigne Linux trabalha com vá-rios scripts de boot, cada um com um sistema e características específicas a serem carregados. Ao contrário do

Ubuntu [3], que rea-liza por padrão o boot do sistema LiveDVD, para só depois permitir a instalação por meio do ícone Install – o disparador do script de instalação em modo gráfico –, o Insigne Li-nux realiza esses proce-dimentos em separado. Apertando a tecla [F2] no momento do boot (figura 1) é possível es-colher entre as diversas formas de boot apresen-

tadas, incluindo LiveCD e Instalação Avançada.

A opção live executa o sistema a partir do CD, sem grandes mistérios. É pedida a quantidade de memória míni-ma de 256 MB, por motivos bem perti-nentes: rodando o Gnome – a escolha do Insigne, com várias customizações – uma quantidade razoável de memó-ria é necessária para usar o sistema sem lentidão e mesquinharias na abertura de programas e páginas da Web. Como estamos falando de um sistema que foi pensado para ser instalado, mas cuja mídia de instalação também funciona como LiveDVD, o Insigne é razoavel-mente mais lento ao rodar diretamente do DVD, se bem seja utilizável.

Opções de instalaçãoPara a instalação padrão do DVD, basta apertar a tecla [Enter] durante o boot. Após o carregamento do kernel é aber-to o aplicativo gráfico da Insigne para instalação e recuperação do sistema, o Quick Restore. Essa opção, no entanto, só deve ser utilizada em computadores recém-formatados, ou nos quais apenas o Insigne será instalado, como explica-remos a seguir, lembrando que o Insig-ne possui diversos scripts e esquemas de inicialização e instalação.

Assim que a tela do Quick Restore é iniciada (figura 2) temos acesso a três fer-ramentas específicas. Clicando no botão Instalação padrão, realiza-se uma insta-lação automática do sistema. Ideal para usuários inexperientes ou que conhecem muito pouco de Linux, ela, no entanto, não é aconselhável para uso em computa-dores que compartilhem espaço em disco com outros sistemas operacionais ou com dados considerados essenciais.

Essa opção realiza o particiona-mento automático de todo o espaço do disco rígido, apagando todas as partições previamente existentes e, é claro, os dados nelas contidos. Ao cli-car no ícone, pede-se a confirmação clicando no botão em forma de vista para iniciar a operação.

O botão Liberar espaço em disco deve ser utilizado quando se instala o Insig-ne em um HD no qual serão instalados outros sistemas operacionais. O script de instalação, nesse caso, cria as partições / ( raiz ), swap e /home para a instalação do Insigne, reservando cerca da metade do espaço total do disco para a posterior instalação de outros sistemas, na forma de espaço livre (figura 3).

Figura 2 O Quick Restore proporciona ferramentas gráficas para instalação e manuten-ção do sistema.

Figura 3 Uma olhada no cfdisk mostra como o botão Liberar espaço em disco se comporta...

http://supertuxbr.blogspot.com

Page 47: 30 - Gestao e Produtividade_mai_2007

47

| ANÁLISEInsigne Linux

Linux Magazine #30 | Maio de 2007

Conserto Em casos nos quais uma instalação do Windows tenha sido feita após a insta-lação do Linux, o Grub (gerenciador padrão do Insigne) é apagado da MBR (Master Boot Record), região do disco rígido onde é instalado o gerenciador de boot (bootloader) responsável pelo carregamento dos sistemas. Em seu lugar, é colocado o gerenciador de boot padrão do Windows, que reco-nhece apenas sistemas da Microsoft de forma automática.

O Insigne possui uma ferramen-ta, dentro do Quick Restore, que faz a restauração do setor de boot origi-nal, permitindo que o sistema possa ser novamente iniciado no boot. Essa ferramenta é acessada pelo botão Re-cuperar Gestor de Boot.

Nos nossos testes em um compu-tador com o Insigne, Ubuntu e Win-dows instalados, o boot do Insigne foi restaurado, mas sem a presença da instalação do Windows assinalada no Grub. O Ubuntu também não foi assinalado, além de não ser possível recuperá-lo com a própria ferramenta para acesso de sistemas instalados do LiveCD do Ubuntu. Está aí uma coi-sa para o pessoal do Insigne melhorar no sistema.

Instalador avançado No mesmo menu iniciado pela tecla [F2], existem algumas opções avançadas para a instalação do DVD. Uma delas é a opção linux expert, que carrega o Quick

Restore com a adição de mais um botão, o Instalador Avançado (Figura 4).

Essa é a opção ideal, na verdade, para a instalação do Insigne em máquinas que já possuam uma versão do Windows ou Linux instalada, ou mesmo para a reins-talação do Linux em computadores da linha PC para Todos.

Ao se clicar no botão, é aberta uma tela que permite a escolha de um parti-cionador gráfico (na verdade o Gparted [4] ou do uso do xterm para resolver certos problemas via linha de coman-do – inclusive com a disponibilidade do particionador em modo texto cfdisk. Ao utilizar o Gparted vale a pena aten-tar para o fato de que o primeiro disco mostrado não é o disco rígido instalado na máquina, mas um cloop (compressed loopback device), um volume, montado a partir de um módulo do kernel, que

garante a descompressão de programas e informações, de forma transparente, em dispositivos somente de leitura, como Li-veCDs ou discos de recuperação – os dois casos se aplicando ao DVD do Insigne Linux. Mas basta clicar na seta ao lado e procurar por /dev/hda (ou /dev/sda se você possui discos SATA) para que as partições e sistemas de arquivos de seu computador sejam mostrados corretamente.

Conclusão Nos ativemos a instalação e configuração do sistema por constituírem o primeiro passo que diferencia um “usuário” de um “técnico”. O Insigne Linux parece caminhar para a criação de um sistema de instalação e configuração simples e “para todos” – e parece inclusive ter conseguido alguma coisa na opção padrão de instala-ção, que faz com que um sistema gráfico robusto e com suporte técnico a diversos recursos multimídia e de acessibilidade seja instalado em menos de meia hora. Após o primeiro acesso, feito sem usuá-rio, o sistema será reiniciado nas demais vezes com o usuário padrão insigne, se-nha também insigne. O sistema também pode ser acessado, se necessário, com a conta de usuário root, usando também a senha insigne. Recomenda-se vivamente a alteração das senhas padrão dos usuários por novas senhas (botão Insigne, Centro de Controle, Usuários e Grupos).

Para ter acesso a drivers, plugins e softwares proprietários, que devem ser baixados dos sites de seus fabricantes e não podem ser distribuídos livremente, a Insigne preparou o programa Insigne Mágico, muito parecido com o Easy-Ubuntu [5]. Após clicar no ícone, locali-zado na área de trabalho, basta escolher os programas que se deseja adicionar, incluindo suporte a Flash, Java Runti-me e drivers das placas de vídeo NVidia (Figura 5). ■

Figura 4 O Instalador Avançado tem um melhor controle sobre o particionamento do disco.

Mais Informações[1] Definições do Programa

Computador Para Todos: http://www.computadorparatodos.gov.br/projeto/def_sw

[2] Insigne Linux: http://www.insignesoftware.com/default.php

[3] Ubuntu: http://www.ubuntu.com/

[4] Gparted: gparted.sourceforge.net/

[5] EasyUbuntu: http://easyubuntu.freecontrib.org/

Figura 5 Pacotes extras proprietários são instalados com o Insigne Mágico.

http://supertuxbr.blogspot.com

Page 48: 30 - Gestao e Produtividade_mai_2007

48

TUTO

RIA

L

http://www.linuxmagazine.com.br

Quinta aula da preparação LPI

LPI nível 1: Aula 5Aprenda os fundamentos de redes, incluindo a configuração de servidores de email e do poderoso Apache.por Luciano Siqueira

Tópico 112: Fundamentos de Redes

Objetivo 1.112.1: Fundamentos de TCP/IP

Peso: 4

Endereço IPEndereços IP no formato xxx.xxx.xxx.xxx (dotted quad) são a expressão, em números decimais, de um endereço de rede binário. Cada um dos quatro cam-pos separados por pontos corresponde a um byte, geralmente chamado de octeto. Por exemplo, o número IP 192.168.1.1 corresponde à forma binária 11000000.10101000.00000001.00000001

A tabela 1 mostra a coversão de valores binários para decimais.

Cada interface de rede numa mesma rede deverá ter um endereço IP único.

Endereço de rede, máscara de rede e endereço broadcastAlém do endereço da interface, um número IP contém o endereço de sua rede, que é determinado através da más-cara de rede ou máscara de sub-rede. O

cálculo é feito a partir da forma binária dos números IP.

Máscara de 16 bits:

11111111.11111111.00000000.00000000 = ➥255.255.0.0

Máscara de 17 bits:

11111111.11111111.10000000.00000000 = ➥255.255.128.0

Na primeira máscara (16 bits), perten-cerão à mesma rede os IPs cujos dois pri-meiros octetos do endereço não difiram. Na segunda máscara (17 bits), pertencerão à mesma rede os IPs cujos dois primeiros octetos e o primeiro bit do terceiro octeto do ende-reço não difiram. Dessa forma, dois endereços de interface 172.16.33.8 e 172.16.170.3 estarão na mesma rede se a máscara for de 16 bits, mas não se a máscara for de 17 bits.

As máscaras de rede variam dependendo do contexto da rede. Conse-qüentemente, o endere-ço da rede corresponde à parte do número IP determinado pelos bits

marcados da máscara de rede. Para uma máquina 172.16.33.8 com máscara de rede 255.255.0.0, o endereço da rede será 172.16.0.0.

O endereço broadcast é o número IP que designa todas as interfaces numa rede. Para um endereço de rede 172.16.0.0, o endereço broadcast será 172.16.255.255.

Através do uso de operadores mate-máticos lógicos (AND, OR e NOT), os endereços binários são calculados bit a bit. Assim, os IPs da rede e de broadcast resultam das operações: ➧ IP de rede = IP de interface AND

máscara de rede; ➧ Broadcast = IP de rede OR NOT

máscara de rede.

Tabela 1: Conversão de binários para decimais

Binário Potência de 2 Decimal

00000001 2^0 1

00000010 2^1 2

00000100 2^2 4

00001000 2^3 8

00010000 2^4 16

00100000 2^5 32

01000000 2^6 64

10000000 2^7 128

http://supertuxbr.blogspot.com

Page 49: 30 - Gestao e Produtividade_mai_2007

49

| TUTORIALPreparação LPI

Linux Magazine #30 | Maio de 2007

Classes de RedesPara redes privadas (LANs) há uma certa gama específica de IPs que po-dem ser usados e que não devem ser aplicados a interfaces ligadas à Inter-net. São eles: ➧ Classe A: 1.0.0.0 até 127.0.0.0. En-

dereços de rede de 8 bits e endereços de interfaces de 24 bits. O primeiro octeto do número IP representa o endereço da rede. A máscara padrão será 255.0.0.0. Permite aproximada-mente 1,6 milhões de IPs de interface por rede;

➧ Classe B: 128.0.0.0 até 191.255.0.0. Endereços de rede de 16 bits e en-dereços de interfaces de 16 bits. Os dois primeiros octetos representam o endereço da rede. A máscara pa-drão é 255.255.0.0. Permite 16.320 redes, com 65.024 IPs de interface para cada uma;

➧ Classe C: 192.0.0.0 até 223.255.255.0. Endereços de rede de 24 bits e en-dereços de interfaces de 8 bits. Os três primeiros octetos representam o endereço da rede. A máscara padrão é 255.255.255.0. Permite aproxima-damente 2 milhões de redes, com 254 IPs de interface cada.

SubredesSubredes podem ser definidas através da máscara de rede, avançando sobre os bits referentes à interface. Dessa forma, uma rede pode ser dividida em redes menores, sem classe, chamadas CIDR – Classless Inter-Domain Rounting.

Por exemplo, uma rede classe C 192.168.1.0; ativando o primeiro bit do quarto octeto na máscara de rede, os pri-meiros 25 bits do IP seriam referentes ao endereço da rede.

Máscara de rede:

11111111.11111111.11111111.10000000255.255.255.128

Conseqüentemente, a rede classe C foi subdividida em duas subredes sem classe, de 25 bits: ➧ Primeira SubRede: 192.168.1.0

Os caracteres x correspondem aos bits de interface nessa subrede:

11000000.10101000.00000001.0xxxxxxx192.168.1.1 até 192.168.1.126

Endereço de broadcast:

11000000.10101000.00000001.01111111192.168.1.127

➧ Segunda SubRede: 192.168.1.128Os caracteres x correspondem aos bits

de interface nessa subrede:11000000.10101000.00000001.1xxxxxxx192.168.1.129 até 192.168.1.254

Endereço de broadcast:

11000000.10101000.00000001.11111111192.168.1.255

Uma rede de 26 bits resultaria no se-guinte cenário:

Máscara de rede:

11111111.11111111.11111111.11000000255.255.255.192

Subredes resultantes: ➧ Primeira SubRede: 192.168.1.0

Interfaces:11000000.10101000.00000001.00xxxxxx192.168.1.1 até 192.168.1.62

Broadcast:

11000000.10101000.00000001.00111111192.168.1.63

➧ Segunda SubRede: 192.168.1.64Interfaces:11000000.10101000.00000001.01xxxxxx192.168.1.65 até 192.168.1.126

Broadcast:

11000000.10101000.00000001.01111111192.168.1.127

➧ Terceira SubRede: 192.168.1.128Interfaces:11000000.10101000.00000001.10xxxxxx192.168.1.129 até 192.168.1.190

Broadcast:

11000000.10101000.00000001.10111111192.168.1.191

➧ Quarta SubRede: 192.168.1.192Interfaces:11000000.10101000.00000001.11xxxxxx192.168.1.193 até 192.168.1.254

Broadcast:

11000000.10101000.00000001.11111111192.168.1.255

É importante lembrar que, como cada subrede ocupa dois IPs para seus

respectivos endereços de rede e broad-cast, o total de IPs para as interfaces será proporcionalmente reduzido. O número possível de máquinas para cada subrede pode ser calculado com a fórmula 2 x (32-másc)-2, onde másc é o número de bits usados para a máscara de rede.

Um endereço IP pode demonstrar a informação de endereço da rede, más-cara de rede e broadcast numa forma abreviada. Por exemplo:

192.168.1.129/25

O número 25 após a barra indica a quantidade de bits reservados para o en-dereço de rede. Conclui-se que é uma rede CIDR com máscara de sub-rede 255.255.255.128, de endereço 192.168.1.128 e broadcast 192.168.1.255.

IPv4 e IPv6O padrão tradicional de 32 bits (quatro octetos de bits) dos números IP é conhe-cido como IPv4. Há outro padrão mais recente, conhecido como IPv6, que consiste de uma seqüência de 128 bits. A vantagem óbvia do IPv6 sobre o IPv4 é a disponibilidade de uma quantidade muito maior de números IP. Enquanto o IPv4 é capaz de gerar 4,3×109 (4,3 bi-lhões) de endereços, o IPv6 disponibiliza 3,4×1038 de endereços.

Um endereço IPv6 normalmente é escrito na forma de oito grupos de quatro números hexadecimais. Exemplo de um endereço IPv6:

2001:0db8:85a3:08d3:1319:8a2e:0370:7334

O IPv4 ainda é muito mais difundido, e é possível a intercomunicação entre os dois padrões. Porém, à medida que cada vez mais dispositivos demandarem o uso de um endereço IP, o padrão IPv6 tornar-se-á o vigente.

Protocolos de redeVários protocolos são necessários para a transmissão de dados numa rede. Proto-colos constituem a “linguagem” usada na comunicação entre duas máquinas, permitindo a transmissão de dados. Os principais protocolos são: ➧ IP - Internet Protocol: Protocolo do

qual se utilizam os protocolos TCP, UDP e ICMP, para endereçar e lo-calizar a transmissão de dados;

➧ TCP - Transfer Control Protocol: Pro-tocolo de controle da formatação e integridade dos dados transmitidos. O processo não sofre interferência

http://supertuxbr.blogspot.com

Page 50: 30 - Gestao e Produtividade_mai_2007

50 http://www.linuxmagazine.com.br

TUTORIAL | Preparação LPI

da esfera de atuação do aplicativo transmissor dos dados;

➧ UDP - User Datagram Protocol: Exerce a mesma função do TCP, porém os procedimentos são reali-zados na esfera de atuação do apli-cativo transmissor dos dados;

➧ ICMP - Internet Control Message Protocol: Permite a comunicação entre roteadores e hosts para que identifiquem e relatem o estado de funcionamento da rede;

➧ PPP - Point-to-point Protocol: Per-mite a conexão entre dois com-putadores, geralmente através de uma interface serial ligada a um modem, possibilitando seu uso como interface de rede.

Portas TCP e UDPOs protocolos de rede tornam possível a comunicação dos serviços de rede (FTP, HTTP, SMTP etc.), assinalando uma porta específica para cada um de-les. É muito importante que todos os computadores interligados respeitem os números de porta corretos para cada serviço. A lista oficial de portas e servi-ços associados é controlada pela IANA – Internet Assigned Numbers Authority, e está disponível em [1].

No Linux, a lista de serviços conhecidos e suas portas consta em /etc/services. As portas são campos de 16 bits, existindo,

portanto, um máximo de 65535 portas. O exemplo 1 mostra o trecho de /etc/servi-ces relativo às principais portas.

Rotas de EndereçosPara que os dados possam chegar ao seu destino, é necessário que haja uma ta-bela de rotas na máquina de origem dos dados. A tabela de rotas determina o que fazer com cada pacote de dados que seja encaminhado para fora através de uma interface de rede.

Estruturalmente, as máquinas numa rede podem se comunicar apenas com outras na mesma rede. Se a máquina de destino pertencer a alguma rede ligada à de origem, o pacote será co-locado nessa rede. Se a máquina de destino não pertencer a alguma rede ligada à máquina de origem, o pacote deverá ser direcionado para a rota pa-drão, à qual são encaminhados todos os destinos desconhecidos pela máquina local. A máquina ou dispositivo que recebe esses pacotes é chamada de roteador ou gateway, e se encarregará

de encaminhar os pacotes para as re-des apropriadas.

Há quatro configurações comuns de tabelas de rotas: ➧ Mínima: Para redes isoladas, ge-

ralmente feita quando a interface é iniciada;

➧ Estática: Para redes com um ou mais gateways. Geralmente é criada atra-vés de scripts automáticos ou manu-almente, através do comando route. Se a rede mudar, a tabela precisará ser manualmente atualizada;

➧ Dinâmica: Em redes maiores, as informações de rotas e gateways são dinamicamente fornecidas através de protocolos de roteamento. A desvan-tagem é que a criação dinâmica de tabelas gera maior tráfego na rede;

➧ Estática/Dinâmica: Geralmente as tabelas de rota contêm informações estáticas para encaminhamento de pacotes dentro da rede local, e uma rota padrão para demais pacotes, que aponta para um gateway que traba-lha com roteamento dinâmico.

A alocação dinâmica da tabela de rotas é feita através do daemon gated. O exemplo 2 mostra uma tabela de rotas. À máquina 200.228.60.1, serão encami-nhados todos os pacotes de dados que não se destinem a máquinas nas redes 200.228.60.0 ou 127.0.0.0 (rede loopback local). Portanto, 200.228.60.1 é o gateway padrão, que se encarregará de encami-nhar corretamente os demais pacotes aos seus destinos.

Alguns comandos são úteis para ve-rificar o correto funcionamento de uma rede. O comando ping envia pacotes ICMP ECHO_REQUEST para a máquina especifica-da, e aguarda o retorno ECHO_REPLY. O comando host converte nomes para IPs e vice-versa, através de pesquisa no servidor DNS, como mostra o exemplo 3.

O comando dig (Domain Information Groper) retorna informações úteis para o diagnóstico de problemas em servidores DNS. Se nenhum argumento for utiliza-do, o comando realizará o teste padrão no(s) servidor(es) encontrados em /etc/resolv.conf.traceroute é um utilitário que mostra as rotas percorridas por um pacote até chegar ao seu destino. Limitando o

Exemplo 1: Principais portas e serviços, extraído de /etc/services:ftp-data 20/tcp #File Transfer [Default Data]ftp-data 20/udp #File Transfer [Default Data]ftp 21/tcp #File Transfer [Control]ftp 21/udp #File Transfer [Control]ssh 22/tcp #Secure Shell Loginssh 22/udp #Secure Shell Logintelnet 23/tcptelnet 23/udp#private 24/tcp any private mail system#private 24/udp any private mail systemsmtp 25/tcp mail #Simple Mail Transfersmtp 25/udp mail #Simple Mail Transferdomain 53/tcp #Domain Name Serverdomain 53/udp #Domain Name Serverhttp 80/tcp www www-http #World Wide Web HTTPhttp 80/udp www www-http #World Wide Web HTTPpop3 110/tcp #Post Office Protocol - Version 3pop3 110/udp #Post Office Protocol - Version 3nntp 119/tcp usenet #Network News Transfer Protocolnntp 119/udp usenet #Network News Transfer Protocolntp 123/tcp #Network Time Protocolntp 123/udp #Network Time Protocolnetbios-ssn 139/tcp #NETBIOS Session Servicenetbios-ssn 139/udp #NETBIOS Session Serviceimap 143/tcp imap2 imap4 #Interim Mail Access Protocol v2imap 143/udp imap2 imap4 #Interim Mail Access Protocol v2snmp 161/tcpsnmp 161/udp

Exemplo 2: Uma tabela de rotas# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface200.228.60.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 200.228.60.1 0.0.0.0 UG 0 0 0 eth0

http://supertuxbr.blogspot.com

Page 51: 30 - Gestao e Produtividade_mai_2007

51

| TUTORIALPreparação LPI

Linux Magazine #30 | Maio de 2007

campo TTL (Time To Live) dos pacotes, o traceroute recebe respostas de erro ICMP TIME_EXCEEDED de cada máquina percorrida.

O comando whois pesquisa por um nome de domínio na base da dados whois, que retorna informações sobre o registro do domínio e sobre o proprietário, como nome e contatos.

Objetivo 1.112.3: Configuração e Resolução de Problemas de Redes TCP/IP

Peso: 7

Arquivos de configuraçãoOs principais arquivos de configuração da rede são: ➧ /etc/HOSTNAME ou /etc/hostname, que

contém o nome atribuído a máquina local;

➧ /etc/hosts, que associa os números IP da rede a nomes. Ele é mais prá-tico para pequenas redes;

➧ /etc/networks, que, de forma seme-lhante ao /etc/hosts, atribui nomes a números de rede;

➧ /etc/nsswitch.conf, que determina os locais de busca por aliases, nú-meros de rede, bancos de usuários e senhas etc. Palavras-chave como files, nis e dns determinam qual deve ser a origem para o requeri-mento de sistema, como mostra o exemplo 4;

➧ /etc/host.conf, com a mesma função de /etc/nssitch.conf em sistemas pré-glibc2;

➧ /etc/resolv.conf, para especificar o(s) servidor(es) DNS (exemplo 5).

Cada distribuição organiza de maneira própria os scripts de configuração de inter-faces de rede. No Slackware, informações para cada interface de rede podem cons-tar no arquivo /etc/rc.d/rc.inet1.conf. Enquanto, no Debian, as configurações para cada interface de rede podem ser manualmente determinadas em /etc/ne-twork/interfaces.

Configuração da interfaceFundamental para o funcionamento da rede é que a interface de rede esteja confi-gurada corretamente. Estando o hardware corretamente preparado – tanto na parte física da rede quanto no carregamento do módulo referente à interface local –, a interface pode ser configurada manu-almente através do programa ifconfig. Uma interface de rede também pode

ser configurada automa-ticamente pelo sistema durante a inicialização, dependendo dos scripts de configuração da dis-tribuição.

O comando ifconfig possui muitas opções, mas sua principal é de-finir um endereço IP para a interface de rede, como por exemplo:

ifconfig eth0 192.168.1.2 up

À interface eth0, foi atribuído o IP 192.168.1.2. Para desfazer as alterações, usa-se down no lugar de up, e os demais argumentos são desnecessários. A máscara de rede para a interface também pode ser especificada:

ifconfig eth0 192.168.1.2 netmask ➥255.255.255.0 up

O ifconfig também é usado para inspecionar as configurações de uma interface. Sem argumentos, ele mostra as configurações de todas as interfaces ativas do sistema:

# ifconfig eth0eth0 Link encap:Ethernet HWaddr 00:➥D0:09:76:B7:6C inet addr:200.228.60.237 ➥Bcast:255.255.255.255 Mask:255.255.255.0 UP BROADCAST NOTRAILERS RUNNING ➥MULTICAST MTU:1500 Metric:1 RX packets:920058 errors:0 ➥dropped:0 overruns:0 frame:0 TX packets:826694 errors:0 ➥dropped:0 overruns:0 carrier:0 collisions:434 txqueuelen:1000 RX bytes:397187958 (378.7 Mb) ➥TX bytes:471065517 (449.2 Mb) Interrupt:9 Base address:0xde00

Configuração de RotasO comando route mostra e cria rotas de rede. O exemplo 2 demonstra a saída do comando route -n. O campo Flags mostra o estado de funcionamento da rota, po-dendo conter os seguintes caracteres: ➧ U: Rota ok; ➧ H: O alvo é um host; ➧ G: É a rota Gateway; ➧ R: Restabelecer rota por roteamento

dinâmico; ➧ D: Rota estabelecida dinamicamente

por daemon ou redirecionamento; ➧ M: Modificada por daemon ou redi-

recionada; ➧ !: Rota rejeitada.

Por exemplo, para criar uma rota na interface eth0, para a rede 192.168.1.0,

usando a máscara de rede 255.255.255.0, o comando seria:

# route add -net 192.168.1.0 netmask ➥255.255.255.0 dev eth0

O termo dev pode ser omitido.Já para criar uma rota padrão pela

máquina 200.228.60.1 (usá-la como ga-teway), usaríamos:

# route add default gw 200.228.60.1

Por sua vez, o comando para remover a rota padrão pela máquina 200.228.60.1 é:

# route del default gw 200.228.60.1

Clientes DHCPO sistema DHCP permite que uma inter-face seja configurada automaticamente pelo servidor. O daemon dhcpcd envia uma requisição para a rede através da interface especificada, e o servidor res-ponde com informações de endereço IP, máscara de rede, broadcast etc., que serão usadas para configurar a interface local. Se o nome da interface não for especificado, eth0 será usado.

Os arquivos de configuração do dhcp-cd são armazenados em /var/lib/dhcpc. Informações para cada interface utilizan-do DHCP são armazenadas em arquivos nesse diretório. O PID para dhcpcd é ar-mazenado em /var/run/dhcpcd-interface.

Exemplo 3: Uso do comando host# host www.gnu.orgwww.gnu.org is an alias for gnu.org.gnu.org has address 199.232.41.10;; reply from unexpected source: 200.212.223.100#53, expected 200.230.210.6#53;; Warning: ID mismatch: expected ID 1737, got 56531www.gnu.org is an alias for gnu.org.www.gnu.org is an alias for gnu.org.gnu.org mail is handled by 30 mx30.gnu.org.gnu.org mail is handled by 10 mx10.gnu.org.gnu.org mail is handled by 20 mx20.gnu.org.

Exemplo 4: /etc/nsswitch.confhosts: files dnsnetworks: files

services: filesprotocols: filesrpc: filesethers: filesnetmasks: filesnetgroup: filesbootparams: files

Exemplo 5: /etc/resolv.confdomain meuservidor.com.brnameserver 200.230.224.1nameserver 200.230.224.2

http://supertuxbr.blogspot.com

Page 52: 30 - Gestao e Produtividade_mai_2007

52 http://www.linuxmagazine.com.br

TUTORIAL | Preparação LPI

pid, onde interface é o nome da interface à qual o cliente dhcpcd está vinculado, como por exemplo eth0.

Comandos de configuração e inspeçãoOs seguintes comandos são úteis na con-figuração e inspeção de redes: ➧ hostname: Mostra ou altera o nome

da máquina do sistema; ➧ domainname: Mostra ou altera o nome

do domínio no qual o sistema se encontra;

➧ dnsdomainname: Simplesmente mos-tra o nome do domínio DNS usado pelo sistema;

➧ ping: Envia pacotes ICMP ECHO_RE-QUEST para a máquina especificada, e aguarda retorno de ECHO_REPLY. Por exemplo:

# ping -c 3 www.gnu.orgPING gnu.org (199.232.41.10) 56(84) bytes ➥of data.64 bytes from 199.232.41.10: icmp_seq=1 ➥ttl=52 time=1273 ms64 bytes from www.gnu.org (199.232.41.10): ➥icmp_seq=2 ttl=52 time=325 ms64 bytes from www.gnu.org (199.232.41.10): ➥icmp_seq=3 ttl=52 time=567 ms

--- gnu.org ping statistics ---3 packets transmitted, 3 received, 0% ➥packet loss, time 10617msrtt min/avg/max/mdev = 325.392/722.193/127➥3.725/402.319 ms, pipe 2

O exemplo 3 mostra como host con-verte nomes para IPs e vice-versa, através de pesquisa no servidor DNS. ➧ tcpdump: Retorna os cabeçalhos

de pacotes numa determinada interface de rede, opcionalmente utilizando filtros;

➧ netstat: Mostra as tabelas de rotas, as conexões ativas e estatísticas relaciona-das. Por exemplo, o comando netstat -rn tem saída idêntica à do comando route -n, mostrada no exemplo 2. O exemplo 7 mostra ainda todas as cone-xões TCP ativas, sem qualquer resolu-ção de nome, enquanto o exemplo 8 mostra as estatísticas de transmissão para todas as interfaces. Nele, os campos RX correspondem aos pacotes recebidos, e TX representa os pacotes enviados.

Objetivo 1.112.4: Configurar o Linux como um Cliente PPP

Peso: 3O Protocolo Ponto-a-Ponto (PPP) per-mite estabelecer uma conexão de rede através de uma interface serial. É o tipo de protocolo usado em conexões via linha telefônica. Os dispositivos neces-sários para criar uma conexão PPP são uma interface serial e um modem. Esses dispositivos podem se apresentar separa-damente – modem externo ligado à por-ta serial – ou serem integrados – placa interna ISA ou PCI.

Nesse tipo de transmissão, cada byte é enviado à porta serial bit por bit, numa freqüência denominada baud rate. Estan-do o modem corretamente instalado no sistema, é possível enviar comandos, como ATZ e ATDT, diretamente para sua respecti-va porta serial. O programa minicom age como um terminal de comunicação com o modem, podendo realizar diagnósticos e discar números.

Outro programa comum para co-municação com o modem é o wvdial.

Através do comando wvdialconf, o mo-dem é automaticamente localizado nas portas seriais, e o arquivo de configu-ração /etc/wvdial.conf é criado. Nesse arquivo, são adicionadas as informações sobre o telefone do provedor de acesso e dados de autenticação do usuário. A discagem é realizada invocando-se wvdial nome-provedor.

Realizada a discagem e a autenticação, o daemon pppd deverá ser apropriada-mente iniciado para controlar a conexão. Diferentemente do minicom, o wvdial executa automaticamente o pppd.

É possível invocar a conexão direta-mente pelo pppd, através da utilização de um script chat. Esse script é uma seqüência de instruções no formato ‘condição esperada’ ‘resposta’, usadas para a comunicação com o servidor, como mostra o exemplo 9. Com ele, o pppd pode ser invocado da seguin-te forma:

# pppd /dev/ttyS3 115200 \ nodetach lock debug crtscts asyncmap ➥0000000 \ connect “/usr/sbin/chat -f /etc/ppp/chat/➥script”

Por comodidade, os argumentos do pppd podem ser salvos no arquivo /etc/ppp/options. O pppd estabelecerá então a conexão PPP. Um número IP será atri-buído à interface pppN através do script /etc/ppp/ip-up. Quando terminada a co-nexão, a interface será desligada através do script /etc/ppp/ip-down.

O diretório /etc/ppp/peers/ contém arquivos de perfil para possibilitar a cone-xão a diferentes provedores sob diferentes usuários. Dessa forma, também é possí-vel a usuários comuns realizar conexões via pppd. É necessário que haja entradas correspondentes no arquivo /etc/ppp/chap-secrets ou /etc/ppp/pap-secrets. O pppd poderá então ser invocado na forma pppd call nome-peer.

Exemplo 7: Saída de netstat -nta# netstat -ntaActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:4662 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN tcp 0 13032 200.228.60.237:55022 84.120.229.63:4662 ESTABLISHED tcp 0 0 200.228.60.237:4662 87.235.107.221:4314 ESTABLISHED tcp 0 0 200.228.60.237:50648 207.46.27.21:1863 ESTABLISHED tcp 0 0 200.228.60.237:4662 200.114.228.210:2243 ESTABLISHED tcp 0 0 200.228.60.237:4662 62.43.114.0:2121 ESTABLISHED tcp 0 13068 200.228.60.237:4662 83.58.240.201:22493 ESTABLISHED tcp 0 0 200.228.60.237:49824 207.46.6.46:1863 ESTABLISHED

Exemplo 8: Saída de netstat -i# netstat -iKernel Interface tableIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgeth0 1500 0 1023387 0 0 0 941820 0 0 0 BMNRUlo 16436 0 30881 0 0 0 30881 0 0 0 LRU

Exemplo 9: Script chat‘ABORT’ ‘BUSY’‘ABORT’ ‘ERROR’‘ABORT’ ‘NO CARRIER’‘ABORT’ ‘NO DIALTONE’‘ABORT’ ‘Invalid Login’‘ABORT’ ‘Login incorrect’‘’ ‘ATZ’‘OK’ ‘ATDT 99999999’‘CONNECT’ ‘’‘ogin:’ ‘adamastor’‘sword:’ ‘qwerty’TIMEOUT’ ‘5’

http://supertuxbr.blogspot.com

Page 53: 30 - Gestao e Produtividade_mai_2007

53

| TUTORIALPreparação LPI

Linux Magazine #30 | Maio de 2007

Tópico 113: Serviços de Rede

Objetivo 1.113.1: Configurar e Administrar o inetd, xinetd e Serviços Relacionados

Peso: 4Serviços de rede podem rodar continua-mente como aplicações independentes, aguardando conexões em suas respecti-vas portas e lidando diretamente com os clientes, ou então ser invocados pelo daemon de rede inetd ou xinetd.

inetdGeralmente disparado na inicialização do sistema, o daemon inetd espera por conexões em portas específicas. Dessa forma, o daemon específico para cada serviço será iniciado apenas quando o respectivo serviço for solicitado.

O arquivo /etc/inetd.conf configura o daemon. Cada linha corresponde à confi-guração para um serviço válido, que deve constar em /etc/services. A linha de confi-guração contém os seguintes campos: ➧ service name: Nome de um serviço

válido em /etc/services; ➧ socket type: stream, se TCP, ou dgram,

se UDP. Outros valores possíveis são raw, rdm e seqpacket;

➧ protocol: Protocolo válido em /etc/protocols, como tcp ou udp;

➧ wait/nowait: Especifica se o inetd deve esperar ou não o programa servidor retornar para continuar aceitando conexões para o mesmo;

➧ user.group: Rodar o programa servi-dor como user.group. Dessa forma, é possível rodar o programa servidor com permissões diferentes de root. O grupo é opcional;

➧ server program: Caminho do programa a ser executado quando um pedido existir no respectivo socket. Para controle dos pedidos, deve ser /usr/sbin/tcpd;

➧ server program arguments: Quando tcpd é usado para controlar os pedi-dos, esse campo deverá conter o ca-minho para o programa que de fato é o servidor do serviço. Por exemplo, a linha de @/etc/inetd.conf para o servidor de email popa3:

pop3 stream tcp nowait root /usr/➥sbin/tcpd /usr/sbin/popa3d

Para desativar o uso de um servidor, basta comentá-lo com o caractere #, como em:

# pop3 stream tcp nowait root /usr/➥sbin/tcpd /usr/sbin/popa3d

Após alterar o arquivo /etc/inetd.conf, é necessário fazer com que o dae-mon inetd releia as configurações, o que pode ser feito reiniciando o daemon ou enviando o sinal SIGHUP através do co-mando kill. O PID para o daemon inetd pode ser consultado através do arquivo /var/run/inetd.pid.

xinetdO xinetd é uma versão aprimorada do ser-vidor inetd. O daemon tcpd não é mais ne-cessário para controlar os pedidos, pois isso é feito pelo próprio xinetd. A configuração é feita através do arquivo /etc/xinetd.conf, ou através de arquivos correspondentes a cada serviço, em /etc/xinetd.d/.

Os valores de configuração para cada serviço são como os do /etc/inetd.conf, porém o formato do arquivo difere. Se iniciado com a opção -inetd_compat, o xi-netd usará também as configurações em /etc/inetd.conf (caso existam). O exemplo

10 mostra a estrutura de configuração de um serviço em /etc/xinetd.conf.

Como ocorre no daemon inetd, é neces-sário fazer com que o xinetd leia novas con-figurações, o que pode ser feito reiniciando o daemon ou enviando o sinal SIGHUP através do comando kill. O log do xinetd é arma-zenado no arquivo /etc/xinetd.log.

Configuração de ServiçosCada serviço controlado por inetd/xi-netd é configurado separadamente e de diferentes formas. Um exemplo desses serviços é o FTP – File Transfer Protocol – para o qual um dos muitos programas servidores que podem ser utilizados é o vsftp – Very Secure FTP.

O arquivo de configuração do vsftp é o /etc/vsftp.conf. Nele, são determinados vá-rios aspectos de funcionamento do daemon vsftp, como o controle de acessos anônimos. Cada linha encerra uma opção no formato opção=valor. Uma opção importante é listen, que determina se o vsftp deve ou não rodar separadamente do inetd/xinetd. Para ser disparado por inetd/xinetd, deve ser usado listen=no, que é o padrão.

O daemon deverá constar correta-mente no arquivo de configuração do inetd/xinetd. Em /etc/inetd.conf, a linha adequada seria:

ftp stream tcp nowait root /usr/sbin/➥tcpd /usr/sbin/vsftpd

e em /etc/xinetd.conf seria:

ftp { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/vsftpd}

Controle de PedidosTanto quanto o inetd (através do tcpd) quan-to o xinetd permitem o uso de regras para aceitar ou recusar pedidos de serviços feitos por determinadas máquinas da rede. Essas regras de controle são chamadas tcpwra-ppers, e são configuradas através dos arquivos /etc/hosts.allow e /etc/hosts.deny.

O arquivo /etc/hosts.allow contém as regras para os hosts que poderão acessar a máquina local. Se um host correspon-der a uma regra em /etc/hosts.allow, o mesmo será liberado, e o arquivo /etc/hosts.deny não será consultado. O ar-quivo /etc/hosts.deny contém as regras para os hosts que não poderão acessar a máquina local. Se um host não constar em /etc/hosts.allow nem em /etc/hosts.deny, o mesmo será liberado.

Cada regra é escrita em uma linha, e o formato é o mesmo para ambos os arquivos: serviço : máquina : comando. O campo serviço comporta um ou mais no-mes de daemon de serviço ou instruções especiais, enquanto host deve conter um ou mais endereços ou instruções espe-ciais, e o campo opcional comando refere-se ao comando a ser executado no caso de cumprimento da regra.

Máquinas podem vir na forma de do-mínios, IPs de rede ou IPs incompletos. Os caracteres curinga ? e * podem ser utilizados. Instruções especiais são ALL, LOCAL, KNOW, UNKNOWN e PARANOID. O operador EXCEPT exclui um host ou grupo de hosts de uma determinada regra.

Para exemplificar, vejamos a linha que deve estar presente em /etc/hosts.allow para liberar todos os serviços a todos os hosts no domínio no-ip.org, à exceção do host castor:

ALL: .no-ip.org EXCEPT castor.no-ip.org

Para bloquear todos os serviços a todas as máquinas que não constarem em qual-quer regra de /etc/hosts.allow, a linha de /etc/hosts.deny seria:

ALL: ALL

A documentação completa para a criação de regras pode ser encontrada na página de manual hosts_access(5).

http://supertuxbr.blogspot.com

Page 54: 30 - Gestao e Produtividade_mai_2007

54 http://www.linuxmagazine.com.br

TUTORIAL | Preparação LPI

Objetivo 1.113.2: Operação e Configuração Fundamental de MTA

Peso: 4O programa responsável por administrar o envio e recebimento de mensagens de correio eletrônico, local e remotamente, é chamado MTA – Mail Transport Agent. Há várias opções de MTAs, entre as quais o sendmail, o postfix, o qmail e o exim. O MTA roda como um daemon do sistema, geralmente monitorando a porta 25, res-ponsável pelo protocolo SMTP.

O MTA mais utilizado ainda é o sen-dmail, e os demais geralmente oferecem opções de interoperabilidade com ele, salvo as peculiaridades de cada um.

SendmailO principal arquivo de configuração do sendmail é /etc/mail/sendmail.cf (alterna-tivamente, ele pode estar em /etc/sendmail.cf). Por ser deveras complicado editá-lo dire-tamente, o comando m4 é usado para gerar o arquivo a partir de um arquivo matriz, de configurações mais simples. Esses arquivos matriz geralmente acompanham o sendmail, e seus nomes são terminados em .mc. Nesses arquivos, pode ser configurado o nome do servidor, opções de redirecionamento etc. O exemplo 11 mostra um arquivo matriz. Com ele, o arquivo de configuração do sendmail pode ser gerado através do comando:

# m4 arquivo.mc > /etc/mail/sendmail.cf

O sendmail depende de arquivos e dire-tórios de suporte para funcionar. Os cami-nhos podem ser alterados nos arquivos de configuração do sendmail, mas geralmente encontram-se nos locais padrão: ➧ /etc/mail/access: Lista de hosts au-

torizados a enviar emails por este servidor;

➧ /etc/mail/aliases ou /etc/aliases: Vincula nomes diferentes para des-tinatários no sistema. Após alterar esse arquivo, é necessário executar o comando newaliases para gerar o arquivo /etc/mail/aliases.db, e só então os aliases serão utilizados pelo sendmail. A seguir, um exemplo do arquivo /etc/mail/aliases:

manager: rootdumper: rootwebmaster: rootabuse: root

➧ ~/.forward: Pode conter um ou mais endereços para os quais os emails

recebidos pelo usuário em questão serão direcionados;

➧ /var/spool/mail/: Diretório onde são armazenados os emails após serem recebidos pelo sendmail. É criado um arquivo para cada usuário, que será lido pelo cliente de email do mesmo usuário;

➧ /var/spool/mqueue/: Diretório de fila para os emails enviados pelos usuá-rios do sistema.

Objetivo 1.113.3: Operação e Configuração Fundamental do Apache

Peso 4O Apache é o servidor Web (HTTP) mais utilizado no mundo. O daemon respon-sável pelo Apache é o /usr/sbin/httpd. Os arquivos de configuração encontram-se em /etc/apache/ e, dentre eles, o mais im-portante é /etc/apache/httpd.conf. Outros arquivos, embora em desuso, ainda podem ser utilizados, como /etc/apache/access.conf e /etc/apache/srm.conf.

Algumas configurações fundamentais no arquivo de configuração: ➧ ServerType valor: Define se o httpd

deve rodar separado ou através do daemon inetd. O campo valor pode ser standalone ou inetd;

➧ ServerRoot caminho: Define o topo do caminho de diretório onde estão os arquivos de configuração, erro e log do Apache;

➧ PidFile caminho: Define o arquivo que armazenará o valor do PID para o processo httpd. O padrão é /var/run/httpd.pid;

➧ ServerAdmin email: Endereço de email do administrador do servidor, para onde deverão ser encaminhadas as informações de erro;

➧ DocumentRoot caminho: Caminho do diretório que armazena os documen-tos disponibilizados no site. Geral-mente, caminho é /var/www/html/ ou /var/www/htdocs.

O servidor pode ser iniciado, termi-nado ou reiniciado através do comando apachectl, usando as seguintes opções: ➧ start: Inicia o servidor; ➧ stop: Termina o servidor; ➧ restart: Reinicia ou inicia o servidor,

caso haja alterações de configuração; ➧ graceful: Reinicia ou inicia o ser-

vidor se houver alterações em sua configuração, mas antes espera as conexões ativas terminarem;

➧ configtest: Verifica se há erros de sintaxe nas configurações.

Os arquivos de log que registram todas as transações realizadas pelo Apache são estes: /var/log/apache/error_log e /var/log/apache/acces_log. ■

Exemplo 10: Estrutura de /etc/xinetd.confnome do servi&ccedil;o { disable = yes/no socket_type = stream,dgram,raw,rdm ou seqpacket protocol = Protocolo v&aacute;lido em /etc/protocols wait = yes/no user = Usu&aacute;rio de in&iacute;cio do servidor group = Grupo de in&iacute;cio do servidor server = Caminho para o programa servidor do servi&ccedil;o solicitado}

Exemplo 11: Um arquivo matriz .mc01 FEATURE(`use_cw_file’)dnl02 FEATURE(`use_ct_file’)dnl03 FEATURE(`mailertable’,`hash -o /etc/mail/mailertable.db’)dnl04 FEATURE(`virtusertable’,`hash -o /etc/mail/virtusertable.db’)dnl05 FEATURE(`access_db’, `hash -T<TMPF> /etc/mail/access’)dnl06 FEATURE(`blacklist_recipients’)dnl07 FEATURE(`local_procmail’,`’,`procmail -t -Y -a $h -d $u’)dnl08 FEATURE(`always_add_domain’)dnl09 FEATURE(`redirect’)dnl

Mais Informações[1] Lista de serviços e portas TCP e UDP:

http://www.iana.org/assignments/port-numbers

O autorLuciano Siqueira é editor da Revis-ta Easy Linux, publicada pela Linux New Media do Brasil. Formado em psico-logia, Luciano trabalha com Linux há dez anos e tem certificado LPI 1.

http://supertuxbr.blogspot.com

Page 55: 30 - Gestao e Produtividade_mai_2007

Melodi T - www.sxc.hu

55Linux Magazine #30 | Maio de 2007

TUTO

RIA

L

Autenticação de usuários com PostgreSQL

Todos para o banco Se a autenticação local dos usuários é impraticável e o LDAP é complexo demais para as suas necessidades, talvez um banco de dados ofereça o nível ideal de praticidade e funcionalidade. por Claudinei Matos

Um dos maiores problemas enfrentados pela maioria dos administradores de redes é a

autenticação do usuário. Cada pro-grama e serviço usa seu próprio meio de autenticação e armazenamento das informações, ou muitas vezes se baseiam em arquivos de texto como o passwd . Para piorar, cada máquina tem seu próprio arquivo passwd .

Com o passar do tempo, foram de-senvolvidas técnicas para facilitar o gerenciamento de tais informações, além de tornar possível a propagação dos dados entre as estações da rede. Uma das soluções mais antigas é o NIS ( Network Information Server ) que, apesar de não ter uma configuração muito complicada, não chega a ser tão prático.

Outra solução largamente conhe-cida é o LDAP ( Lightweight Directory Access Protocol ), um serviço de dire-tório que, embora seja bem completo e disponha do suporte de uma vasta

gama de softwares, não possui uma administração tão simples. Esse fator pode complicar a vida de administra-dores com menos experiência, ou até mesmo de programadores que neces-sitam fazer com que algum sistema autentique os usuários nessa base.

Com o objetivo de facilitar a ad-ministração e centralização de tais informações, começaram a surgir so-luções utilizando o banco de dados livre MySQL para o armazenamento e consulta das informações. Hoje em dia, já é possível utilizar também o PostgreSQL para tal fi m, e a cada dia mais serviços e sistemas adicionam su-porte aos dois bancos de dados livres mais famosos.

Neste artiugo será exemplificada a utilização do PostgreSQL como solução de autenticação e armazenamento de informações de contas, além de algu-mas outras configurações um pouco mais complexas. O objetivo é centra-lizar a autenticação da rede, além de

torná-la prática, adicionando suporte inicialmente aos principais serviços, como NSS , PAM , Samba , Postfix e o Courier Authlib ( Imap / Pop ).

Neste primeiro artigo, será exemplifi ca-da a confi guração do PAM e do NSS .

NSS Nos sistemas operacionais Linux e ou-tros derivados do Unix, é comum utili-zarmos o NSS ( Name Service Switch ) em conjunto com o PAM ( Pluggable Authentication Modules ) para cuidar da autenticação dos usuários e do ge-renciamento de permissões de acesso a arquivos e diretórios.

O NSS tem por objetivo prover bancos de dados para substituir ou adicionar in-formações aos arquivos Unix tradicionais ( passwd , shadow , group , hosts e outros). Os programas que desejam verifi car infor-mações em tais bancos utilizam funções padrão da biblioteca C do projeto GNU ( glibc ), como por exemplo getpwent para

http://supertuxbr.blogspot.com

Page 56: 30 - Gestao e Produtividade_mai_2007

56 http://www.linuxmagazine.com.br

TUTORIAL | Autenticação

recuperar informações sobre uma conta de usuário. Programas como ls e id, por exemplo, verificam as informações do usuário via funções da glibc, que por sua vez busca as informações via Libnss.

PAMO PAM, por sua vez, como o próprio nome diz, tem como principal objetivo oferecer uma interface comum e mo-dular para autenticação de usuários a qualquer serviço que utilize suas cha-madas de função. Processos como login e su, por exemplo, utilizam o PAM para autenticar o usuário.

É claro que o PAM não fica limita-do à autenticação; ele também pode ser utilizado para trocar a senha do usuário ou para limitar os recursos da máquina utilizados pelo mesmo. A cada dia, sur-gem mais módulos do PAM, tornando seu uso mais abrangente e talvez até um pouco fora do contexto original.

NSS ou PAM?É possível utilizar tanto a libnss-pgsql (para o NSS) quanto o pam-pgsql (para o PAM) no sistema, de modo a centralizar as informações dos usuários. No entanto, vale observar que cada um exerce uma função diferente.

Como já vimos anteriormente, o NSS exerce funções diferentes do PAM e, apesar

de alguns processos poderem utilizá-lo diretamente para autenticar usuários, sua função principal é verificar as permissões de acesso dos usuários e grupos, portanto seu uso se torna obrigatório.

Atualmente, algumas distribuições utilizam uma variação do módulo pam_unix geralmente chamado de pam_unix2 (responsável pela autenticação via ar-quivos Unix tradicionais), fazendo com que o mesmo utilize a libnss disponível no sistema para realizar os processos de autenticação.

Caso sua distribuição (como a Red Hat, Suse ou Gentoo) utilize essa varia-ção do pam_unix, pode ser suficiente utilizar apenas a libnss e deixar o PAM com sua configuração padrão.

Instalação do NSSA instalação do libnss-pgsql é rápida e fácil, e exige que a biblioteca Libpq (ver-são 7.4 ou superior) esteja instalada no sistema. Usuários do Gentoo Linux terão as dependências resolvidas com:

# emerge libnss-pgsql

Como a máquina de testes utiliza arquitetura de 64 bits e o ebuild só está disponível para arquiteturas x86 de 32 bits, é necessário enganar o gerencia-dor de pacotes Portage para conseguir compilar o pacote. Isso pode ser feito

adicionando uma linha ao arquivo pa-ckage.keywords:

# echo ‘sys-auth/libnss-pgsql ~x86’ >> /➥etc/portage/package.keywords

Usuários de outras distribuições po-dem fazer o download do código-fonte no site do PgFoundry [1] instalando-o em seguida com o famoso trio de comandos ./configure, make e make install.

Modelagem dos dadosO primeiro passo a ser tomado é a modelagem dos dados (estruturação do banco). Para o funcionamento do sistema, é necessário um mínimo de três tabelas; uma delas armazenará os usuários (/etc/passwd), outra conterá os grupos (/etc/group) e a terceira será res-ponsável pelo relacionamento entre os usuários e os grupos (também presente em /etc/group).

A instalação do libnss-pgsql dispõe de um arquivo de exemplo, o qual contém as tabelas a serem criadas, em /usr/sha-re/doc/libnss-pgsql-x.y.z/examples/dbs-chema.sql (onde x.y.z representa a versão do pacote).

Apesar do exemplo de instalação recomendar o uso de uma tabela separada para armazenar a senha e

Quadro 1: Uso do ebuild do libnss-pgsql com a correção# mkdir -p /usr/local/portage/sys-auth/# /usr/local/portage/sys-auth/# cp -a /usr/porta/sys-auth/libnss-pgsql .# cd libnss-pgsql/files# wget http://www.claudineimatos.com/files/libnss-pgsql/libnss-pgsql-1.4.0-setgrent_fixed.patch# cd ..# wget http://www.claudineimatos.com/files/libnss-pgsql/libnss-pgsql-1.4.0.ebuild# ebuild libnss-pgsql-1.4.0.ebuild manifest

Após criados os diretórios e copiados os aquivos, é necessário adicionar uma linha ao arquivo /etc/make.conf para que o Portage saiba onde procurar um repositório personalizado:

PORTDIR_OVERLAY=”/usr/local/portage”

Uma vez feito isso, instale normalmente a biblioteca com emerge libnss-pgsql.

Para voltar a utilizar as versões providas pela árvore oficial do Portage, comente ou remova a linha no arquivo make.conf.

Exemplo 1: pam-pgsql com patch no Gentoo Linux# mkdir -p /usr/local/portage/sys-auth/pam-pgsql/files # cd /usr/local/portage/sys-auth/pam-pgsql/files # wget http://www.claudineimatos.com/files/pam-pgsql/pam-pgsql-0.6.3-no_strict_aliasing.patch # wget http://www.claudineimatos.com/files/pam-pgsql/pam_pgsql.conf # cd .. # wget http://www.claudineimatos.com/files/pam-pgsql/pam-pgsql-0.6.3.ebuild # ebuild ebuild digest # emerge pam-pgsql

http://supertuxbr.blogspot.com

Page 57: 30 - Gestao e Produtividade_mai_2007

57

| TUTORIALAutenticação

Linux Magazine #30 | Maio de 2007

outras informações da conta (/etc/shadow), seu uso não é obrigatório, e as informações extras do shadow podem ser adicionadas na tabela de usuários (passwd).

Inicialmente, será coberta a criação das tabelas mínimas necessárias para o uso do NSS. Futuramente, o banco de dados poderá ser expandido para suportar outros serviços desejados.

Antes de mais nada, é necessário criar o usuário que terá acesso ao banco de dados. Isso pode ser feito com o comando # createuser -P db. Em seguida, caso o banco de dados ainda não exista, é necessário criá-lo com o comando # createdb -O db -E UTF8 db.

Logo após, conecte-se ao banco e execute os seguintes comandos:

CREATE SEQUENCE grupo_gid MINVALUE 3000 ➥MAXVALUE 2147483647 NO CYCLE;CREATE SEQUENCE usuario_uid MINVALUE 3000 ➥MAXVALUE 2147483647 NO CYCLE;

CREATE TABLE “usuarios” (“login” character varying(64) NOT NULL,“senha” character varying(128) NOT NULL,“uid” int4 NOT NULL DEFAULT ➥nextval(’usuario_uid’),

“gid” int4 NOT NULL,“desc” character varying(128),“homedir” character varying(256) NOT NULL,“shell” character varying DEFAULT ‘/bin/➥bash’ NOT NULL,PRIMARY KEY (”login”),UNIQUE (”uid”));

CREATE TABLE “grupos” (

“gid” int4 NOT NULL DEFAULT ➥nextval(’grupo_gid’),“nome” character varying(16) NOT NULL,“desc” character varying,“senha” character varying(20),PRIMARY KEY (”gid”),UNIQUE (”gid”));

CREATE TABLE “usuarios_grupos” (

“gid” int4 NOT NULL,“uid” int4 NOT NULL,PRIMARY KEY (”gid”, “uid”),CONSTRAINT “ug_gid_fkey” FOREIGN KEY ➥(”gid”) REFERENCES “grupos”(”gid”),CONSTRAINT “ug_uid_fkey” FOREIGN KEY ➥(”uid”) REFERENCES “usuarios”(”uid”));

Apesar do README do libnss-pgsql informar que é necessária uma tabela para os dados do shadow, é possível utili-lizar a mesma tabela de usuários tanto para passwd quanto para shadow. Após

criadas as tabelas, é necessário inserir no banco alguns dados de teste:

INSERT INTO grupos (nome) values ➥(’clovis’);INSERT INTO grupos (nome) values (’outro_➥grupo’);INSERT INTO usuarios (login, senha, ➥homedir, gid,uid)VALUES (’clovis’,md5(’teste’),’/home/➥clovis’,3000,1002);INSERT INTO grupos_usuarios(3001,1002);

Os GIDs 3000 e 3001 são gerados automaticamente ao inserir dados na tabela de grupos. O UID 1002 é utiliza-do por motivo de compatibilidade com a instalação da máquina de testes, e seria gerado automaticamente caso não fosse especificado.

passwd e groupA configuração da libnss-pgsql não pos-sui muitos mistérios, e resume-se a editar três arquivos de configuração. Primei-ramente, é necessário editar o arquivo /etc/nss-pgsql.conf, que armazena as informações referentes aos arquivos pas-swd e group. Um arquivo de exemplo é fornecido com a instalação, e pode ser encontrado no diretório de documentos da biblioteca (/usr/share/doc/libnss-pgs-ql-x.y.z/examples/).

Nesse arquivo são definidas as consultas SQL e a conexão ao banco. O arquivo de exemplo vem com uma consulta para o método getgroupmembersbygid, que verifi-ca apenas os grupos efetivos na tabela de usuários. Sendo assim, podemos alterar a consulta para verificar na tabela usua-rios_grupos, de modo a retornar todos os usuários de um dado grupo.

# Conexão com o banco de dadosconnectionstring = hostaddr=localhost ➥dbname=db user=postgres password= connect_➥timeout=1 # Retorna os dados do usuário de acordo ➥com o login especificadogetpwnam = SELECT login, senha, ‘desc’ AS ➥gecos, homedir, shell, uid, gid FROM ➥usuarios WHERE login=$1 # Retorna os dados do usuário de acordo ➥com o UID especificadogetpwuid = SELECT login, senha, ‘desc’ AS ➥gecos, homedir, shell, uid, gid FROM ➥usuarios WHERE uid=$1 # Retorna os dados de todos os usuáriosallusers = SELECT login, senha, ‘desc’ AS ➥gecos, homedir, shell, uid, gid FROM ➥usuarios # Retorna os dados do grupo de acordo com ➥o nome de grupo especificadogetgrnam = SELECT nome, senha, gid FROM ➥grupos WHERE nome=$1 # Retorna os dados do grupo de acordo com

➥o GID especificadogetgrgid = SELECT nome, senha, gid FROM ➥grupos WHERE gid=$1 # Retorna os dados de todos os gruposallgroups = SELECT nome, senha, gid FROM ➥grupos # Retorna todos os grupos que o usuário ➥pertence exceto o grupo primáriogroups_dyn = SELECT g.gid FROM usuarios ➥JOIN grupos g USING (uid) where login = $1 ➥and g.gid <> $2 # Retorna todos os usuários de um grupo ➥de acordo com o GID especificadogetgroupmembersbygid = SELECT login FROM ➥usuarios JOIN usuarios_grupos g USING ➥(uid) where g.gid = $1

Vale lembrar que como esse arquivo deve ter permissão de leitura para todos, o usuário a ser utilizado para conexão com o banco deve ter seus poderes limitados a consultar as três tabelas necessárias e, se possível, sem acesso à senha, mesmo que criptografada, para evitar a utiliza-ção de ataques de força bruta para des-vendar a senha.

shadowO arquivo /etc/nss-pgsql-root.conf, por sua vez, armazena as informações re-ferentes ao shadow e, apesar de não ser obrigatório existir uma tabela específica para o shadow, seu arquivo de configura-ção deve ser criado caso se deseje utili-zar informações adicionais, como por exemplo a data de expiração da conta (informações referentes à idade da conta só estão disponíveis no shadow).

Nesse caso mais simples, as informações de idade da conta e tamanho da senha se-rão forçadas pela consulta ao banco. No entanto, configurações mais complexas podem utilizar o shadow para aplicar tais parâmetros. Nesse caso, é necessário que a senha seja verificada na tabela do shadow para que o esquema funcione.

Uma forma mais prática de utilização do shadow com password na mesma tabela é retornar a senha sempre como “x” (assim como no tradicional passwd) na consulta do passwd, e criar campos adicionais para os parâmetros desejados, como por exem-plo para a data de expiração da conta. Caso nenhuma dessas informações seja necessária, é possível retornar valores es-táticos na consulta ao shadow, conforme o trecho de código abaixo.

# Conexão com banco de dadosshadowconnectionstring = ➥hostaddr=127.0.0.1 dbname=db user=db password=db connect_timeout=1@ # Retorna os dados do usuário ➥especificadoshadowbyname = SELECT login, senha, ‘1�,

http://supertuxbr.blogspot.com

Page 58: 30 - Gestao e Produtividade_mai_2007

58 http://www.linuxmagazine.com.br

TUTORIAL | Autenticação

➥‘0�, ‘99999�, ‘0�, ‘0�, ‘-1�

FROM usuarios WHERE login = $1@ # Retorna os dados de todos os usuáriosshadow = SELECT login, senha, ‘1�, ‘0�, ➥‘99999�, ‘0�, ‘0�, ‘-1�FROM usuarios

É altamente recomendável alterar as permissões do arquivo, deixando-o legível somente para o usuário root, com o comando # chmod 640 /etc/nss-pgsql-root.conf.

nsswitchPor último, é necessário alterar o arquivo /etc/nsswitch.conf de modo que as con-sultas de usuário e grupo sejam feitas no banco PostgreSQL, em adição aos arquivos passwd, group e shadow.

As páginas de manual do arquivo nsswi-tch.conf explicam melhor o seu formato e as várias opções de configuração disponí-veis. Entretanto, para uma configuração simples de autenticação, basta adicionar a palavra-chave pgsql em cada linha refe-rente aos arquivos mantidos pelo banco de dados, conforme o exemplo:

passwd: files pgsqlshadow: files pgsqlgroup: files pgsql

É absolutamente recomendado man-ter um editor de texto com permissões de root aberto, com o arquivo /etc/ns-switch.conf, para desfazer as alterações caso algo saia errado, pois configurações erradas nesse arquivo podem impedir o login na máquina.

TestesTestar o sistema é bem simples, e pode ser feito tentando logar-se na máquina ou utilizando o comando id, para verificar, por exemplo, os grupos aos quais deter-minado usuário está associado.

É possível, por exemplo, misturar as informações do /etc/group às tabelas do banco de dados, para adicionar o usuá-rio vindo do banco aos grupos disponí-veis apenas na máquina local (no grupo wheel, por exemplo).

# id clovisuid=1002(clovis) gid=3000(clovis) groups=3➥000(clovis),10(wheel),3001(outro_grupo)

No trecho acima, o usuário foi adicio-nado ao grupo wheel através do arquivo /etc/group. Porém, nesse caso, o uso da libnss-pgsql inutiliza os comandos de ge-renciamento de usuários e grupos para os usuários vindos do banco de dados. Por isso é obrigatório que essa ação seja feita manualmente.

Resolução de falhasA versão 1.4.0 da libnss-pgsql possui uma falha que faz com que a resolução de usuários e grupos entre em loop infinito caso o banco de dados esteja inacessível. Esse comportamento pode ser muito pe-rigoso em máquina em produção, uma vez que, se um processo do usuário root, por exemplo, tentar buscar as informa-ções do usuário, o processo vai entrar em loop e a carga da máquina aumentará consideravelmente. Apesar de a falha já estar documentada desde 2006, algum

motivo está impedindo o lançamento de uma correção para ela.

Um patch de correção feito de acor-do com as informações sobre o proble-ma que encontrei na internet pode ser baixado em[2]. Os procedimentos para o uso do ebuild[3] para o Gentoo Linux são mostrados no quadro 1.

pam-pgsqlAtualmente existem dois projetos di-ferentes do pam-pgsql; um deles pode ser encontrado no Sourceforge, e está na versão 0.6.3, enquanto o outro está disponível no PgFoundry, assim como a libnss-pgsql, e está na versão 1.0.

A versão 1.0 disponível no PgFoundry é baseada na versão 0.5 disponível no Sourceforge e, apesar de parecer mais recente, seu último lançamento ocorreu quase um ano antes da versão disponível no Sourceforge. Sendo assim, utiliza-mos aqui a versão 0.6.3 encontrada no Sourceforge.

InstalaçãoA instalação do pam-pgsql não é muito complicada, e exige que esteja instalada a biblioteca Libpq (versão 7.4 ou supe-rior), além da Libmhash. Apesar de o pam-pgsql ainda não estar disponível na árvore do Portage, é possível utili-

Exemplo 2: Arquivo de configuração do pam-pgsql# Conexão com banco de dadosconnect = dbname=db user=db password=db connect_timeout=15# Retorna a senha do usuário especificadoauth_query = SELECT senha FROM usuarios WHERE login = %u@# Retorna informações sobre a senha em formato booleano: senha expirada, requisitar nova senha e senha nula.# Esses campos não são obrigatórios, e podem ter seu valor fixo caso não sejam utilizados.acct_query = SELECT 0, 0, 0 FROM usuarios WHERE login = %u# Atualiza a senha do usuário especificadopwd_query = UPDATE usuarios SET senha = %p WHERE login= %u# Utiliza senhas no formato crypt com md5pw_type = crypt_md5# Imprime mensagens de debug no syslogdebug

Exemplo 3: pam_unix padrão do Gentoo Linuxauth required pam_env.soauth sufficient pam_unix.so likeauth nullokauth required pam_deny.so

account required pam_unix.so

password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3password sufficient pam_unix.so nullok md5 shadow use_authtokpassword required pam_deny.so

session required pam_limits.sosession required pam_unix.so

http://supertuxbr.blogspot.com

Page 59: 30 - Gestao e Produtividade_mai_2007

59

| TUTORIALAutenticação

Linux Magazine #30 | Maio de 2007

zar o ebuild disponível no bugzilla do Gentoo[4].

A versão 0.6.3, quando compilada com a GCC 4.0 ou superior, alerta sobre alguns métodos incorretos de programa-ção (na realidade, são alterações do tipo da variável) que podem ser suprimidos se o GCC for executado com a opção -fno-strict-aliasing. Os usuários do Gen-too podem baixar o ebuild, o patch e o arquivo de configuração de exemplo no diretório overlay do Portage (que deve ter sido previamente criado), como mostra o exemplo 1.

Usuários de outras distribuições podem baixar o código-fonte do pam-pgsql nos sites da Libmhash[5] e do pam-pgsql[6], e utilizar os comandos ./configure && make && make install.

Configuração do pam-pgsqlA configuração do pam-pgsql, assim como da libnss-pgsql, é simples. Toda-via, é necessário prestar muita atenção aos arquivos alterados, pois um erro pode tornar impossível registrar-se novamente no sistema.

Como o pam-pgsql também fará al-terações no banco de dados (para alterar a senha, por exemplo), é necessário que o usuário que acessa o banco possua tais permissões. Além disso, como já foi dito anteriormente, é altamente recomen-dável empregar um usuário separado para esse fim.

O arquivo /etc/pam_pgsql.conf ar-mazena as configurações do módulo, e seu formato é parecido com a confi-guração da libnss-pgsql. No Gentoo, o ebuild instala um exemplo do arquivo de configuração em /usr/share/doc/pam-pgsql-x.y.z/examples/, semelhante ao exemplo 2.

Assim como com o arquivo referente ao shadow, é altamente recomendável alterar as permissões do arquivo pam-pgsql.conf, deixando-o legível somente para o usuário root, com o comando chmod 640 /etc/pam-pgsql.conf, princi-palmente se o usuário especificado do banco tiver permissão de alteração das tabelas.

Após configurado o módulo, é ne-cessário configurar o PAM para utilizar o novo método em seus processos de autenticação. No Gentoo, assim como em outras distribuições, o arquivo do PAM responsável pela autenticação é o /etc/pam.d/system-auth. A alteração a ser feita no arquivo é relativamente simples, resumindo-se basicamente a adicionar linhas referentes ao novo mó-dulo e alterar algumas outras referentes ao pam_unix.

Embora o conteúdo desse arquivo possa variar de uma distribuição para outra, geralmente ele costuma ser bem similar em suas variações. O exemplo 3 demonstra o conteúdo do arquivo padrão do Gentoo Linux, e o exemplo 4 define como o mesmo arquivo deve ficar após as alterações para que o pam-pgsql fun-cione corretamente.

TestesApós tudo configurado, é possível alterar a senha usando o comando passwd, ou mesmo fazer um login no sistema e verificar no syslog as linhas referentes ao pam_pgsql, caso a de-puração esteja habilitada. Também é possível configurar outros serviços que se utilizem do PAM para empregar o pam_pgsql na autenticação.

Vale lembrar que, como agora exis-tem dois módulos a serem verificados para a autenticação do usuário, eles serão usados na ordem em que forem

inseridos. Isso significa que, no caso acima, a configuração verificará o usu-ário primeiramente no PostgreSQL, e só depois na libnss (que retornará ao PostgreSQL) ou nos arquivos tradi-cionais. Um exemplo disso é que, na hora de entrar no sistema como root, a senha será requisitada duas vezes, retor-nando um erro na primeira tentativa, a menos que o usuário root também esteja cadastrado no banco de dados, o que não é recomendável. ■

Exemplo 4: pam_unix com autenticação por PostgreSQLauth required pam_env.soauth sufficient pam_pgsql.so # linha novaauth sufficient pam_unix.so likeauth nullokauth required pam_deny.so

account sufficient pam_pgsql.so # linha novaaccount sufficient pam_unix.so # linha modificadaaccount required pam_deny.so # linha nova

password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3password sufficient pam_pgsql.so use_first_pass # linha novapassword sufficient pam_unix.so nullok md5 shadow use_authtokpassword required pam_deny.so

session required pam_limits.sosession required pam_unix.so

Mais Informações[1] PgFoundry:

http://pgfoundry.org/projects/sysauth

[2] Patch de correção para o libnss-pgsql: http://www.claudineimatos.com/files/libnss-pgsql/libnss-pgsql-1.4.0-setgrent_fixed.patch

[3] Ebuild com patch para o libnss-pgsql: http://www.claudineimatos.com/files/libnss-pgsql/libnss-pgsql-1.4.0.ebuild

[4] Ebuild do pam-pgsql: http://bugs.gentoo.org/show_bug.cgi?id=34517

[5] Libmhash: http://sourceforge.net/ projects/mhash

[6] PAM-pgsql: http://sourceforge.net/projects/ pam-pgsql

[7] Libnss-pgsql: http://sysauth-pgsql.sourceforge.net/docs/index.html

[8] Documentação do NSS-MySQL e PAM-MySQL: http://www.weltraumsofa.de/pam_mysql/doku_pamnssmysql_jh_en.pdf

http://supertuxbr.blogspot.com

Page 60: 30 - Gestao e Produtividade_mai_2007

60

TUTO

RIA

L

http://www.linuxmagazine.com.br

Visualização de grafos com o Graphviz

Comando para desenharA ferramenta de linha de comando Graphviz é capaz de acelerar o processo de criação de imagens, usando apenas texto.por Tim Schürmann

O Graphviz é uma valiosa fer-ramenta para se ter por perto quando se precisa gerar grafos

de forma automatizada (veja o quadro

1). Os usuários de computador costu-mam enfrentar problemas ao tentar ge-rar grafos, começando com diagramas E/R para visualização de esquemas de bancos de dados, e chegando a estru-turas hierárquicas em árvores para re-presentar as ações de uma empresa ou uma cadeia de comando. Normalmen-te, a informação se localiza em caixas quadradas que devem ser posicionadas cuidadosamente, sem sobrepor outras caixas, antes de desenhar qualquer seta de conexão. Esse é o tipo de desafio

no qual o Graphviz se sobressai – os usuários simplesmente especificam os relacionamentos entre os elementos, e a ferramenta automaticamente gera um atraente desenho.

Nem é preciso procurar um so-fisticado editor gráfico no qual seja possível especificar os relacionamen-tos. Em vez disso, o Graphviz lê uma descrição textual do grafo em uma linguagem de marcação especial. A linguagem LaTeX utiliza uma téc-nica semelhante, embora os dois sistemas nada tenham em comum a fora isso.

O Graphviz já está incluído há anos em todas as distribuições Linux popu-lares. Instalar o pacote é fácil – apenas clique em seu gerenciador de pacotes preferido. Também se pode baixar o código-fonte da versão mais recente do programa em sua página ([1]), e seguir o procedimento padrão para compilá-lo e instalá-lo:

configure && make && make install

Qualquer que seja a forma escolhida de instalação, deve-se ter uma coleção de ferramentas no disco ao final.

Quadro 1: TerminologiaUm grafo utiliza linhas para conectar múltiplas caixas. As caixas são chamadas de vértices, e as linhas são as arestas. Um exemplo de grafo poderia ser um mapa rodoviário, no qual as cidades são os vértices e as estradas são as arestas. Um grafo no qual as ligações são representadas por setas são chamados de grafos direcionados (ou digrafo). Sem as setas, ele se torna um grafo não direcio-nado (ou simplesmente grafo). Arestas direcionadas podem ser comparadas as ruas de mão única.

Existe uma forma matematicamente elegante – e, portanto levemente críptica, – de expressar isso. Um grafo (direcionado):

G = (V,E)

compreende um conjunto de vértices, e também um conjunto de arestas (E), onde a letra contém pares de vértices (direcionados) na forma:

e = (x,y)Figura 1 A descrição do exemplo 1 cria

este grafo direcionado.

pai

filho filha

http://supertuxbr.blogspot.com

Page 61: 30 - Gestao e Produtividade_mai_2007

61

| TUTORIALGraphviz

Linux Magazine #30 | Maio de 2007

Não se esqueça de escreverAntes de pôr em uso as ferramentas do Graphviz, é necessária a descrição do grafo a ser criado. Para gerar uma descri-ção, é preciso escrever um arquivo texto na linguagem dot, fácil de aprender. O exemplo 1 implementa um grafo simples e direcionado.

A descrição começa definindo um grafo direcionado chamado G, com três vérti-ces: pai, filho e filha. Diferentemente de várias outras linguagens de programação, não há necessidade de declarar os vértices explicitamente. As setas especificam quais vértices são conectados pelas arestas. Lo-ops são permitidos. Essa linha apontaria para si mesma:

pai -> pai

Um ponto-e-vírgula opcional termina cada linha. Como se pode ver pelos parênte-ses, a sintaxe se parece com a da linguagem C, que também é a fonte para a marcação dos comentários, com /* e */.

Ferramenta dotPara converter essa descrição para uma figura, é necessário executar a ferra-menta dot. A ferramenta utiliza o mes-mo nome da linguagem de marcação.

O comando a seguir cria um arquivo PNG (figura 1):

dot -Tpng exemplo1.dot -o exemplo1.png

Além disso, o dot suporta PostScript (pa-râmetro -Tps), JPG, GIF, Fig, SVG e vários outros formatos mais ou menos exóticos. Ainda não há suporte para a saída direta em PDF, mas pode-se usar a ferramenta ps2pdf do Ghostscript para contornar essa limita-ção. É importante lembrar de especificar a opção -o junto com o nome do arquivo, caso contrário, a ferramenta direcionará a saída diretamente para o console. O mes-mo se aplica ao parâmetro -T: sem ele, o dot simplesmente mostrará uma descrição em modo texto do grafo.

Alerta vermelhoSe a descrição não contiver instruções em contrário, o dot criará vértices ovais, com seus nomes estampados. Para mudar isso em nosso exemplo, vamos alterar o nome de pai, usando retângulos ver-melhos cheios. A linguagem dot possui vários atributos que nos ajudam a imple-mentar essas mudanças. Para modificar um atributo específico como cor ou texto, só é necessário atribuir um valor diferente a ele:

color = redlabel = “Clovis Bornay”

É preciso separar por vírgulas os atributos, inserindo-os após o nome do vértice entre colchetes. No caso de pai, a sintaxe seria assim:

pai [shape = box, style = filled, color = ➥red, label = “Clovis Bornay”];

Em seguida, devemos inserir essa linha em algum ponto entre as chaves no grafo. A abordagem recomendada é definir primeiro a aparência dos vér-tices, antes de prosseguir com a defi-nição das arestas.

Se isso funcionar para os vértices, é de se esperar que também funcione com as arestas que, assim como os primeiros, podem ser coloridas, ter seu estilo de linha alterado ou rece-ber rótulos de texto. Mais uma vez, só é necessário inserir pares de valores entre colchetes à aresta em questão, como nesse caso:

pai -> filha [style = bold, label = ➥“primogenito”, color = “blue”]

O exemplo 2 mostra uma árvore gene-alógica, e seus resultados após a execução pelo dot são mostrados na figura 2.

Um por todosAlterar o formato de todos os vértices em um grande grafo pode parecer mui-to trabalhoso. A linguagem de marcação dot utiliza duas palavras-chave – node (vértice) e edge (aresta) – para facilitar a tarefa. Alterar os atributos das pala-vras-chave aplica as mudanças a todos os elementos do grafo. Por exemplo, o trecho de código:

digraph G { node [shape = box]; ...}

atribui uma borda quadrada aos vérti-ces – a menos que o vértice individual contenha instruções de atributos em contrário. A instrução edge faz o mesmo com as arestas.

DivisívelSubgrafos também são muito úteis. Pode-se usá-los para agrupar vértices que pre-cisem ficar próximos, como mostra o exemplo 3.

Exemplo 1: exemplo.dot01 digraph G {02 /* O pai tem um filho e uma filha */03 pai -> filho;04 pai -> filha;05 }

Figura 2 Com poucas instruções, o Graphviz consegue colorir de vermelho o vértice do pai.

Clovis Bornay

Clovina

Primogenito

Clovisson

Figura 3 A descrição do exemplo 3 destaca o subgrafo com os filhos.

filhos

ClovinaClovisson

Clovis

Figura 4 Um pequeno diagrama UML definido no exemplo 4.

Empregado

+ salário : int+ nome : string

+ trabalho() : void

empresa

+ pagaSalário() : void

11..*

http://supertuxbr.blogspot.com

Page 62: 30 - Gestao e Produtividade_mai_2007

62 http://www.linuxmagazine.com.br

TUTORIAL | Graphviz

Nesse caso, introduzimos um sub-grafo que contém a filha e o filho. Para forçar o dot a destacar o agrupamento na saída, é necessário iniciar o nome com um prefixo cluster. Os outros atri-butos pertencem ao subgrafo. Nesse caso, eles definem a cor e o rótulo. A figura 3 mostra os resultados.

ClassesAté agora, os vértices do exemplo receberam apenas rótulo simples. Entretanto, o diagrama de classe UML referido anteriormente ne-cessita de vértices com múltiplas subdivisões.

Para essa tarefa com o dot, primeiro será necessário alterar as bordas para um modo especial – record:

no [shape = record]

A partir desse ponto do código, o dot fará algo especial com o rótulo desse vértice, acrescentando linhas verticais que irão subdividir o vértice em múlti-plas seções:

empregado [label = “{Empregado|+ salario : ➥int\l+ nome : string\l + trabalho() : ➥void\l}” ]

Os termos \l acrescentam uma nova linha, e os | inserem barras verticais. Isso oferece uma representação mais ou menos perfeita da classe UML; depois disso, apenas os rótulos e as arestas são necessários. Em UML, as

cardinalidades podem ser posicionadas em ambas as extremidades de uma aresta. Para fa-zer isso, pode-se usar os atributos headlabel e taillabel:

edge [headlabel = “1”, taillabel = “1..*” ]

O exemplo 4 mostra a descrição de um pequeno diagrama UML, enquanto a figura 4 apresenta seu resultado final.

SlotsUm record pode fazer mais. Os usuários podem utilizar as divisões do vértice para controlar as ligações com múltiplos vértices subseqüentes, como mostram o exemplo 5 e a figura 5. Os

valores entre < e > marcam pontos especiais, conhecidos como slots, dos quais as setas do diagrama saem ou chegam.

Sem direçãoGrafos direcionados são a especialida-de do dot; se você precisar de grafos não direcionados, é possível usar outra ferramenta da coleção – o neato. Nova-mente, a ferramenta espera descrições em dot; porém, ela só suporta a palavra-chave graph, em vez de digraph. Arestas direcionadas são convertidas em não

Exemplo 3: exemplo3.dot01 digraph G {02 subgraph cluster_filhos {03 style = filled;04 color = lightgrey;05 label = “Filhos”;0607 filha [label =”Clovina”];08 filho [label = “Clovisson”];09 }1011 pai [label = “Clovis Bornay”];1213 pai -> filha;14 pai -> filho;15 }

Exemplo 4: Diagrama UML01 digraph G {02 node [shape = record] /* linhas verticais no rótulo são desenhadas como linhas */03 edge [arrowhead = “none”, headlabel = “1”, taillabel = “1..*” ]04 /* chaves significam: desenhe uma linha horizontal, e não uma barra vertical ➥(rotacione a caixa 90 graus) */05 empregado [label = “{Empregado|+ salario : int\l+ nome : string\l | + trabalho() ➥: void\l}” ]06 empresa [label = “{Empresa| | + pagarsalario() : void\l}” ] empregado -> empresa07 }

Exemplo 5: Ligações complexas01 digraph G02 {03 vertice [shape = record];04 /* As “portas” são mostradas entre colchetes */05 pai [ label =”<left> | <center> Pai | <right>”];06 filho [ label =”<left> | <center> Filho | <right>”];07 filha [ label =”<left> | <center> Filha | <right>”];0809 <a href=”center”>pai</a> -> “filho”: left;10 <a href=”center”>pai</a> -> “filha”:right;11 }

Figura 5 Os slots do exemplo 5 suportam o tipo de vértices que precisam ser visualizados, como funções hash e vetores.

Pai

Filho Filha

Quadro 2: AlternativasO programa Graphviz espera uma curta descrição do grafo, a qual é automaticamente conver-tida em um diagrama. Isso dá aos usuários poucas opções para influenciar o tipo de resultados obtidos. Se você aprecia os benefícios oferecidos por linguagens de descrição, mas preferiria ter um controle mais granular sobre a posição e a forma dos elementos individuais do gra-fo, talvez seja preferível um dos concorrentes do Graphviz. O Asymptote[3] e o GLE[4], em particular, merecem menção. Ambos podem ser acessados a partir de documentos LaTeX. As linguagens baseadas em XML, como o popular SVG[5], também seguem uma abordagem semelhante, entretanto, há muito pouco nessa linha de softwares disponível no momento.

Exemplo 2: exemplo2.dotdigraph G {02 pai [shape = box, style = filled, color = red, label=”Clovis Bornay”];03 filha [label =”Clovina”];04 filho [label = “Clovisson”];05 pai -> filho;06 pai -> filha [style = bold, label = “primogenito”, color = blue];07 }

http://supertuxbr.blogspot.com

Page 63: 30 - Gestao e Produtividade_mai_2007

63

| TUTORIALGraphviz

Linux Magazine #30 | Maio de 2007

direcionadas usando dois traços (--). O exemplo 6, juntamente com as figuras 6 e 7, mostram o processo de criação de diagramas pelo neato.

As ferramentas usadas pelo dot e neato utilizam algoritmos de desenho distin-tos. Enquanto o dot organiza os vértices hierarquicamente, o neato substitui as arestas por molas virtuais e utiliza gravi-dade simulada para calcular a distância correta entre os vértices, criando assim um layout simétrico.

As ferramentas twopi e circo também merecem atenção, pois arranjam os vértices em um padrão circular. Para mais detalhes dos algoritmos empregados para esse fim, veja a documentação do Graphviz[2].

FiltrosCom alguma ajuda de pipes e filtros, a ferramenta de linha de comando dot tam-bém pode ser usada para fazer scripts, ou integrada a outros programas para Linux. Para isso, primeiro é necessário preparar a descrição do grafo em um buffer de tex-

to, e então passá-la para dot, e ao final recolher os resultados. Um script de shell poderia fazer assim, por exemplo:

echo “digraph G {pai->filho; pai->filha;}” ➥| dot -Tpng >exemplo7.png

Nesse exemplo, a saída do comando dot é simplesmente redirecionada para um arquivo, mas, obviamente, poderia entrar outro script (de shell ou não) nesse ponto, para outros processamentos.

O editor gráfico dotty funciona da mesma forma. Ele não é particularmen-te conveniente, mas permite que se use apenas o mouse para criar grafos.

Se esses recursos não fornecerem todas as opções necessárias, sempre é possível criar um programa em C para acessar as funções da biblioteca do Graphviz. Ela possui funções convenientes para tratar arquivos de texto em formato dot, e para redirecionar os resulta-dos para uma estrutura de dados projetada explicitamente com esse propósito.

Também é possível manipular grafos na memória e mostrar seus resultados.

O programa no exemplo 7 oferece uma rápida demonstração. Ele examina um arquivo texto com comandos dot, desenha um grafo com uma pequena ajuda do algoritmo do dot, e mostra como saída os resultados. Na realidade, o próprio dot é feito basicamente dessa forma.

Há alguns outros exemplos de progra-mas no diretório dot.demo que vem com o pacote do código-fonte. A página do Graphviz possui uma extensa referência da API. Caso você use a API para seu próprio desenvolvimento, favor notar que as bibliotecas estão licenciadas sob a Common Public License.

ConclusõesUma vez que o usuário adquira fami-liaridade com a linguagem de descri-ção de grafos dot, as ferramentas do Graphviz serão muito apreciadas. É difícil encontrar uma forma mais veloz de se criar grafos. Graças aos pipes e filtros, o dot e companhia são fáceis de integrar a outras seqüências e scripts de shell. Além disso, se o pacote não agradar, pode-se procurar algo seme-lhante no quadro 2. ■

Mais Informações[1] Página do Graphviz:

http://www.graphviz.org

[2] Informações sobre os algoritmos usados pelo Graphviz (em inglês): http://www.graphviz.org/Documentation.php

[3] Página do Asymptote: http://asymptote.sourceforge.net

[4] Página do GLE: http://www.gle-graphics.org

[5] Especificações do formato SVG: http://www.w3.org/Graphics/SVG/

Exemplo 6: Grafo não direcionado01 graph G {02 servidor [label = “Servidor principal Samba”];0304 servidor -- cliente_bornay;05 servidor -- cliente_trinta;06 servidor -- cliente_zica;07 servidor -- cliente_meyer;08 }

Exemplo 7: API em C do Graphviz01 #include <gvc.h>0203 int main()04 {05 GVC_t *context;06 graph_t *graph;07 FILE *fp;0809 contexto = gvContext();10 fp = fopen(“exemplo.dot”, “r”);11 grafo = agread(fp); /* Parsear o grafo */12 gvLayout(contexto, grafo, “dot”); /*Cria o layout com o algoritmo do dot */13 gvRender(contexto, grafo, “png”, stdout); /* Mostra o grafo em formato PNG */14 /*Limpa */15 gvFreeLayout(contexto, grafo);16 agclose(grafo);17 gvFreeContext(contexto);18 }

Figura 6 O grafo não direcionado do exemplo 6, renderizado pelo dot.

Servidor Principal Leo

cliente_bornay cliente_trinta cliente_zica cliente_meyer

Figura 7 O grafo não direcionado do exemplo 6, renderiza-do pelo neato.

Servidor Principal Samba

cliente_bornay

cliente_trinta

cliente_zica

cliente_meyer

http://supertuxbr.blogspot.com

Page 64: 30 - Gestao e Produtividade_mai_2007

64

SY

AD

MIN

http://www.linuxmagazine.com.br

Backup de dados e sistema com Mondo e Mindi

Ataque dos clonesA simplíssima ferramenta Mondo prova que backups não precisam ser difíceis e trabalhosos.por Karl Deutsch

Imagine que você tenha passado dias configurando cada parte de seu sistema até que tudo estivesse

funcionando perfeitamente. As parti-ções estão exatamente como deveriam, os sistemas operacionais estão insta-lados, e tudo transcorre satisfatoria-mente. Antes de efetivamente usar o sistema, talvez seja interessante fazer um backup dessa máquina dos sonhos, de forma a facilitar a restauração do sistema em caso de desastres.

O utilitário de backup de código aberto Mondo[1] consegue fazer uma cópia de segurança das configurações do sistema operacional. O programa é capaz de fazer o backup de toda uma instalação de Linux, ou até mesmo um disco rígido inteiro – incluindo o particionamento e o gerenciador de inicialização – em um DVD, CD ou servidor NFS externo. Pode-se usar o Mondo para criar uma cópia do sis-tema que seja fácil de restaurar. Um dos objetivos da ferramenta é permitir mudanças no sistema subjacente – as-

sim como no hardware ou no sistema de arquivos – e ainda preservar a con-figuração anterior do mesmo.

O Mondo permite encolher ou expandir partições, trocar o sistema de arquivos, mudar a atribuição de

dispositivos ou acrescentar volumes, e ainda consegue preservar o sistema anterior sem necessidade de uma reinstalação.

O Mondo é feito para funcionar com outro utilitário, chamado Min-

Figura 1 O Mondo permite a criação de backups através de uma conveniente interface em modo texto.

http://supertuxbr.blogspot.com

Page 65: 30 - Gestao e Produtividade_mai_2007

65

| SYSADMINBackup

Linux Magazine #30 | Maio de 2007

di[1], que cria uma imagem de CD ou DVD com as informações de backup do sistema geradas pelo Mondo.

Essa dupla pode ser usada em conjunto para salvar sua configura-ção do Linux em um CD ou DVD inicializável. Se um backup comple-to for grande demais para caber em um único disco, é possível acomo-dar seus dados ao longo de múltiplas imagens de disco.

Backup profissionalO Mondo é uma solução de backup rápida e confiável, usada por empresas como Siemens, HP e IBM. Devido a sua capacidade de usar tanto a linha de comando quanto uma interface em texto para controlar o programa, até mesmo usuários de Linux menos experientes conseguem utilizar a ferramenta.

O Mondo suporta LVM 1 e 2, RAID por software ou hardware, e os sistemas de arquivos Ext2, Ext3, JFS, XFS, ReiserFS e VFAT. Duran-te a etapa de restauração, é possível modificar a geometria do disco rígido e também o sistema de arquivos, caso seja necessário.

O programa suporta ainda a migra-ção de discos individuais para arranjos RAID, assim como a migração de sistemas RAID para discos individuais. Ele não

armazena partições físicas individuais do disco rígido, diferentemente do Partition Image[2]; em vez disso, é possível copiar tanto um disco inteiro quanto diretórios individuais.

Se uma mídia única não for sufi-cientemente grande para abrigar todo o backup, o utilitário Mondo gravará os dados em múltiplas mídias.

RequisitosOs requisitos mínimos do Mondo são um PC com ao menos 128 MB de memória, 800 MB livres em disco e

uma unidade para backup, que pode ser óptica (CD-R/RW, DVD-R/RW, DVD+R/RW), remota (um diretório NFS), ou simplesmente um pouco mais de espaço em disco.

É recomendado um kernel 2.2.19 ou mais recente. As dependências de soft-ware do Mondo incluem os pacotes afio, gzip, mkisofs e busybox.

A maioria das distribuições inclui esses softwares por padrão. Então é bem fácil instalá-los com o gerenciador de pacotes nativo de sua distribuição.

Teste e recuperação com MindiO Mondo se baseia no Mindi para criar mídias inicializáveis. Pode-se usar o Mindi para criar um CD de recuperação com o kernel, módulos, ferramentas e biblio-tecas do seu sistema.

Antes de começar a usar o Mondo, provavelmente é uma boa idéia certifi-car-se de que o Mindi realmente cria um CD inicializável de testes para seu sistema. Para confirmar isso, entre com o superusuário e digite mindi para iniciar o processo.

Vários prompts são mostrados. É interessante responder às perguntas confirmando o uso de seu próprio kernel, e negando o uso do LILO e a criação da inicialização e dos dados. Ao final, confirme a criação da ima-gem de CD inicializável. O aplicati-vo guardará a imagem mindi.iso em /root/images/mindi.

Ainda como superusuário, quei-me a imagem em um disco com o comando cdrecord -v -data /root/images/mindi/mindi.iso. Em seguida,

Tabela 1: Parâmetros do programa

Parêmtro Efeito

O Alvo de saída (confira a tabela 2)

d Dispositivo ou diretório para a saída

s Capacidade da mídia ou do arquivo a ser criado(a)

9 Taxa de compactação, de 0 (nenhuma) a 9 (compactação máxima)

E Diretórios para omitir

V Verificar o backup

p Nome do arquivo(1)

g Interface em modo texto(2)

D Gravar apenas os dados alterados

I Diretório de início

H Ao restaurar, particionar o disco rígido e ins-talar o carregador de inicialização

l Gerenciador de inicialização a ser usado, como o Grub

f Disco rígido que contém o gerenciador de inicialização, como /dev/hda, por exemplo

(1) O nome padrão para arquivos ISO é mondorescue-numeroserial.iso. Se forem necessários múltiplos backups para máquinas diferentes, o parâmetro -p nome atribui o nome nome-numeroserial.iso aos arquivos.

(2) Executar o Mondo com esse parâmetro o faz mostrar mensagens e prompts de statusem uma tela de texto baseada em diálogos. Esse modo não é adequado para inclusão de scripts em tarefas do cron.

Figura 2 É possível incluir e excluir caminhos específicos dos alvos do backup.

http://supertuxbr.blogspot.com

Page 66: 30 - Gestao e Produtividade_mai_2007

66 http://www.linuxmagazine.com.br

SYSADMIN | Backup

inicie a máquina a partir do CD re-cém-criado, assim já deve ser possí-vel acessar um console de texto no sistema de recuperação.

Se o processo de inicialização funcio-nar, você conseguirá usar o utilitário de backup em seu sistema.

Backup completoFeche todos os aplicativos que não forem necessários no momento, para evitar a interrupção do backup – isso é particularmente importante para bancos de dados e conexões com es-tes. Crie um diretório como /tmp/iso/ para as imagens ISO.

A seguir, execute o Mondo com privilégios de superusuário numa ja-nela de terminal, usando o comando mondo-archive. Se não for fornecido qualquer parâmetro adicional, deve-se ver o texto em diálogos conforme a figura 1.

A linha de comando é bem mais fle-xível. O exemplo a seguir mostra como usar a maior compressão possível para arquivos ISO (-9) e criar um arquivo de 650 MB ou menos no diretório /tmp/iso/. O comando não faz backup dos diretórios /proc/, /tmp/ e /home/. Como superusuário, digite:

mondoarchive -Oi -d /tmp/iso -s 650m -0 -H ➥-E /proc -E /tmp -E /home

Veja mais detalhes nas tabelas 1 e 2.Ao ser iniciado, o Mondo analisa sua

máquina, e então cria os arquivos ISO com o backup completo.

Se o disco de sua máquina possuir múltiplos sistemas em partições diver-sas, o Mondo apenas salvará aquele pelo qual ele foi chamado, juntamente

com quaisquer partições que porventura estejam montadas.

Durante uma re-cuperação interativa, pode-se usar a ferra-menta integrada para

modificar a tabela de partições com fins de garantir que o Mondo recupe-re somente as partições que possuam backup.

É importante notar que, caso o ge-renciador de inicialização utilizado seja o Grub, é necessário acrescentar os seguintes parâmetros adicionais ao comando:

-l GRUB -f /dev/hda

Também é fundamental substituir /dev/hda pelo disco que contém o setor de inicialização.

Depois, o Mondo pergunta se o usu-ário deseja criar um disco de inicializa-ção (figura 3), que só é necessário caso seus dados se encontrem numa unidade de fita ou num servidor NFS.

Em seguida, grave seus arquivos ISO em um CD ou DVD; é possí-vel iniciar a partir da primeira mídia mais tarde.

Evitando a corrupçãoApesar de o problema presente no utilitário de backup Mondo não ter gerado arquivos cor-rompidos desde maio de 2000, ainda é importante verificar seus arquivos em vez de simplesmente confiar na sorte.

Para checá-los, ini-cie seu sistema a partir do primeiro CD ou DVD de backup, ou pelo disco de inicia-lização. No prompt, digite compare, siga as instruções que apare-

cem na tela e espere os resultados da comparação.

O Mondo registra as mudanças no arquivo /tmp/changed.txt; pode-se espe-rar diferenças em arquivos dinâmicos, como os de registro, e também nas entradas em /var/.

Se não houver discrepâncias inco-muns, pode-se concluir que o backup está correto.

RecuperaçãoApós inserir um novo disco, é necessá-rio restaurar o sistema completo. Não importa para o Mondo se a capacidade total do novo disco é maior ou menor do que o disco original, contanto que haja espaço suficiente.

Iniciando a partir da primeira mídia (CD, DVD ou disquete), basta digitar o comando restore no prompt de iniciali-zação para restaurar o sistema.

Se for especificado o parâmetro -H no estágio de backup, o Mondo fará automaticamente o particio-namento e a formatação do disco, e instalará também o gerenciador de inicialização no registro mestre de inicialização (MBR, ou Master Boot Record).

Para personalizar a restauração, bas-ta omitir essa opção, formatar o disco interativamente, e então recuperar os

Tabela 2: Alvos de saída

Parâmetro Efeito

-Oi Arquivo ISO

-Oc CD-R

-Ow CD-RW

-Or DVD-R

-On Unidade em servidor NFS

Figura 3 Após criar uma imagem ISO, o Mondo pergunta se o usuário deseja criar um disco de inicialização. Esse disco só é necessário caso seus dados estejam numa unidade de fita ou num servidor NFS.

Figura 4 Com o Mondo, pode-se salvar diretórios individuais, como seu diretório home. A opção -D restringe a ISO aos dados que tenham sido modificados.

http://supertuxbr.blogspot.com

Page 67: 30 - Gestao e Produtividade_mai_2007

67

| SYSADMINBackup

Linux Magazine #30 | Maio de 2007

diretórios e arquivos individuais con-forme necessário.

Insira o próximo disco quando for pedido, e então remova a mídia final, e reinicie seu sistema.

Salvando seu diretório homePara criar um backup inicial de seu di-retório home, /home/nome_do_usuario, é preciso tornar-se superusuário e digitar o seguinte comando:

mondoarchive -Oi -d /tmp/iso -s 4200m -9 -➥I /home/nome_do_usuario

Obviamente, é necessário substituir nome_do_usuario pelo nome do seu usuá-rio (figura 4).

É interessante queimar os arquivos ISO com seus dados de usuário em um DVD. O Mondo pede que seja especifi-cado o tamanho da imagem ISO.

Após navegar com sucesso pelo pri-meiro backup, pode-se usar a opção -D para rodadas sucessivas:

mondoarchive -Oi -d /tmp/iso -s 4200m -9 -➥D -I /home/nome_do_usuario

Um home para chamar de seuPara restaurar seu diretório home, inicie a partir do primeiro disco e, no prompt de inicialização, digite interactive. Nos prompts que se seguirão, responda “não” às consultas sobre particionamento, for-matação e recuperação completa do disco. Em seguida, digite o caminho para seu diretório home quando for perguntado qual caminho deve ser restaurado.

Ao ser perguntado a respeito da instalação de um gerenciador de ini-cialização, responda negativamente e espere a recuperação ser finalizada, removendo, enfim, o último disco, e reiniciando a máquina.

Backups agendadosO Mondo geralmente faz o backup de dados e sistemas no modo inerativo. Se for omitido o parâmetro -g ao se iniciar o programa, ele será executado sem in-teração com o usuário.

O Mondo suporta tarefas do Cron em modo interativo, embora esse uso só faça sentido em condições especiais, como: ➧ quando apenas uma mídia for ne-

cessária para o backup, ou ➧ quando o backup estiver sendo fei-

to num diretório no disco ou num servidor NFS.

Para usar a tarefa do Cron de forma interativa, é necessário um macete, usando o At e o multiple-xador de terminais Screen, conforme consta na página 22 do manual do Mondo[3].

Caso a MBR de seu disco falhe, inicie a partir da primeira mídia. Di-gite expert no prompt de inicializa-ção e espere o programa iniciar. O comando para recuperar a MBR é mondorestore -mbr.

FuturoO Mondo elimina as dores de cabeça do backup de sistemas. O abrangente manual possui mais exemplos de apli-

cação ([3] e [4]). As FAQ e listas de email também são muito úteis caso seja preciso solucionar algum proble-ma específico.

Caso seja necessário migrar o tipo de disco de IDE para SATA ou de SCSI para SATA durante uma restauração, o Mondo auxiliará nessa tarefa. Um guia escrito por François-Xavier Horel[5] ex-plica como fazer isso. Além disso, existe suporte profissional para o Mondo.

Se o Mondo não satisfizer total-mente suas necessidades, talvez valha a pena averiguar o Mkcdrec (Make CD-ROM Recovery) e o Rear (Relax & Recover). ■

Mais Informações[1] Mondo e Mindi:

http://www.mondorescue.org

[2] Partition Image: http://www.partimage.org

[3] Manual do Mondo (PDF): http://www.mondorescue.org/docs/mondorescue-howto.pdf

[4] Documentação do Mondo: http://www.mondorescue.orgdocs.shtml

[5] François-Xavier Horel, “Linux image deployment from SCSI server to SATA server”: http://www.mondorescue.org/docs/HOWTO-_Deploy_Linux_from_SCSI_to_SATA.pdf

O autorKarl Deutsch é autor de “Linux para ad-ministradores de Windows”, professor de TI e proprietário do website it-works.co.at. Karl já utilizou várias distribuições Linux em seu trabalho cotidiano desde 1997.

Quadro 1: WindowsApesar de o Mondo ter sido originalmente desenvolvido para fazer backup de sistemas Linux, também é possível utilizá-lo em sistemas Windows. No entanto, deve-se estar atento às seguintes restrições:

➧ Windows 95/98/ME: As partições precisam ser montadas primeiro, antes do backup, como as partições Linux.

➧ Windows NT/2000/XP: O Mondo restaura partições NTFS em arquivos grandes. É necessá-rio especificar a unidade que abriga a partição WIndows através da linha de comando, usando o parâmetro -x, como em -x /dev/hda1, por exemplo.

Figura 5 O Mondo permite que se especifique um nível de compactação para o arquivo.

http://supertuxbr.blogspot.com

Page 68: 30 - Gestao e Produtividade_mai_2007

68

SY

SA

DM

IN

http://www.linuxmagazine.com.br

Bash versus Powershell

Embate das shellsA Powershell, da Microsoft, baseia-se no framework .NET.

Mas isso supera as funcionalidades do Bash?

por Marcus Nasarek

Tanto o Bash quanto a Powershell, apresentada ao mundo através do novo sistema operacional

da Microsoft, incluem comandos para navegar através dos diretórios, gerenciar arquivos e chamar outros programas. A administração do siste-ma é uma importante função da shell, e os dois representantes comparados neste artigo são equipados para ajudar a gerenciar sistemas a partir da linha de comando.

Enquanto o Bash normalmente depende de uma combinação de novas ferramentas e utilitários clás-sicos do Unix, a Powershell possui seu próprio conjunto de programas de linha de comando. O Windows se refere aos comandos da Powershell como cmdlets. O cmdlet chamado Get-Process é o equivalente ao ps, e o Get-Content corresponde ao less. A Powershell tem diferenças significati-vas em relação às shells de comando presentes nas versões anteriores do Windows. Neste artigo mostramos

como a Powershell do Windows Vista se compara ao Bash.

Para suportar o controle de progra-mas, uma shell precisa de elementos para execução condicional. Os termos for e while avaliam uma variável para suportar um número definido de ite-rações. O quadro 1 compara a saída de um contador com for na Powershell e no Bash.

Ambas as shells são semelhantes com relação ao controle de fluxo com if e switch. A definição de funções, o uso de variáveis de ambiente, a definição de escopos, o uso de expressões regulares e a avaliação do valor de retorno dos programas são semelhantes nos dois sistemas.

Permissão limitadaUma diferença inicial entre a Power-shell e o Bash se mostra quando um script é executado. A Powershell não executa arquivos de script por padrão, e portanto só suporta o uso interativo. Entretanto, a shell da Microsoft roda

scripts que tenham sido assinados di-gitalmente. A assinatura digital iden-tifica o autor do script, pois essa é a única pessoa capaz de criar a assinatura por meios digitais. Aceitar o certifi-cado de assinatura do autor significa que o usuário merece sua confiança.

Quadro 1: LaçosUm laço for na Powershell:

PS:> for ($i=1;$i -le 3;$i++) {Write-Host $i }123PS:>

O mesmo laço no Bash:

bash[~]$ for ((i=1;i<=3;i++)); doecho $i; done123bash[~]$

http://supertuxbr.blogspot.com

Page 69: 30 - Gestao e Produtividade_mai_2007

69

| SYSADMINBash e Powershell

Linux Magazine #30 | Maio de 2007

A Powershell não executa nenhum script “desconhecido”. Para executar um script sem assinatura, é necessário mudar a política de execução para Re-moteSigned (assinado remotamente) na linha de comando, assim:

PS:> Set-ExecutionPolicy RemoteSigned

Esse comando ordena que a Power-shell aceite todos os scripts locais. Caso os dados tenham sido baixados, ou se tiverem sido anexados a um email, a shell continuará insistindo com relação à assinatura. A capacidade de evitar a execução de comandos de fontes exter-nas é um novo recurso de segurança, e vírus em scripts como o Love Letter[1] perdem sua virulência.

De forma bastante diferente, o Bash não depende apenas de assinaturas digitais para avaliar as permissões de execução de um script. Em vez disso, as permissões do sistema de arquivos determinam se o script pode ser executado.

As duas shells compartilham um nú-mero surpreendente de recursos na for-ma como lidam com a configuração do sistema. Uma novidade no mundo do Windows, contudo, é a forma como sua shell trata tudo como um sistema de arqui-vos, navegando não apenas nos sistemas de arquivo e nas unidades, mas também no temível Registro, o armazém de certi-

ficados e as variáveis de ambiente. Pode-se copiar, renomear e mover valores do Registro da mesma forma simples como se faz com arquivos em uma unidade de armazenamento. A Powershell se refere a esses sistemas de arquivo virtuais como Providers (provedores), implementando, então, uma filosofia que o Linux sempre ofereceu no Bash: “tudo é um arquivo”.

EncaminhamentoA ferramenta mais poderosa da Power-shell é o pipe, que suporta a passagem de valores ordenada, permitindo assim que se use a saída de um comando como entrada de outro. O Bash evidentemente também suporta pipes, mas não exige nada dos arquivos de entrada e saída. Ele confia na capacidade do próximo comando em fazer algo de útil com a saída do comando anterior.

Os objetos podem ser consultados com o comando Get-Member, que gera como saída os elementos e funções do objeto, como mostra o exemplo 1. Por exemplo, o comando:

PS:> Get-Content Arquivotexto.txt | Sort { ➥$_.Length }

pemite que se ordene as linhas de um ar-quivo texto de acordo com a propriedade Length (comprimento) do objeto.

Apesar de a passagem de dados ser um pouco mais complexa, essa orien-tação a objetos ajuda a padronizar as operações, e suporta o tratamento de estruturas de dados complexas. O Bash não pode competir nesse ponto; em vez disso, ele utiliza as capacidades de programas externos para lidar com estruturas de dados.

Por exemplo, o Bash precisa de um parser de XML externo, como o Saxon ou o Xalan-J, para examinar arquivos XML. O exemplo 2 é um pequeno script de Powershell que carrega um feed RSS da Internet na forma de um arquivo XML. O script define a função Mostra-LinuxRSS, que obtém os feeds RSS atuais.

ConclusõesDe uma forma, a Powershell se baseia no conceito do Unix segundo o qual vários pequenos utilitários são melhores que um único e grande programa. Ao mesmo tem-po, ela adota uma abordagem orientada a objetos que simplifica a composição de grandes projetos ao custo de uma curva de aprendizado mais íngreme. O maior problema com objetos é a necessidade de investir muito tempo para descobrir de qual função ou objeto se precisa. O cmdlet Get-Member provavelmente verá um uso intensivo na Powershell.

O Bash é útil como ferramenta sim-ples e direta para a maioria das tarefas cotidianas. Se houver a necessidade de se utilizar estruturas de dados mais complexas, pode-se lançar mão de lin-guagens mais complexas, como Python, Perl, Ruby, Tcl... ■

Exemplo 1: Saída de Get-Member01 PS:> Get-Content Textdatei.txt | Get-Member0203 TypeName: System.String0405 Name MemberType Definition06 ---- ---------- ----------07 Clone Method System.Object Clone()08 CompareTo Method System.Int32 CompareTo(Object value), System.Int32 CompareTo(String strB)09 Contains Method System.Boolean Contains(String value)10 CopyTo Method System.Void CopyTo(Int32sourceIndex, Char[] destination, Int32 destinationIn...11 ...12 Length Property1314 PS:>

Exemplo 2: Mostra-LinuxRSS.ps101 # Show-RSS.ps102 # Declaracao de variaveis para a URL03 $feed=”http://rss.news.yahoo.com/rss/linux”)04 Write-Host -ForegroundColor “green” “RSS-Feed: “ $feed05 # Baixar o feed RSS06 $wco = New-Object System.Net.WebClient07 $rss = [xml]$wco.DownloadString($feed)08 # Mostrar o titulo09 Write-Host -ForegroundColor “red” $rss.rss.channel.title10 # Mostrar o formulario pequeno11 $rss.rss.item | Select-Object title,description | format-table12 # Mostrar titulo e descricao das entradas13 $rss.rss.channel.item | Select-Object title,pubDate,description | format-list

Mais Informações[1] Alerta do CERT CA-2000-04 “Love

Letter Worm”: http://www.cert.org/advisories/CA-2000-04.html

http://supertuxbr.blogspot.com

Page 70: 30 - Gestao e Produtividade_mai_2007

70

PR

OG

RA

MA

ÇÃ

O

http://www.linuxmagazine.com.br

Os algoritmos da ferramenta diff

Qual é a diferença?O diff busca diferenças entre duas versões de um arquivo. Mostraremos como o programa as encontra sem afetar os recursos do sistema.por Andreas Romeyke

Para usuários da linha de comando, descobrir as diferenças entre dois arquivos de texto é fácil: basta um

simples comando, como diff versao1.txt versao2.txt. Entretanto, examinando mais de perto, parece que o programa necessitaria de grandes quantidades de memória e alguns algoritmos engenhosos para comparar arquivos.

Este artigo investiga como o diff con-segue encontrar semelhanças e diferenças em arquivos de vários megabytes sem con-sumir todos os recursos do sistema.

Distância de ediçãoToda cadeia de caracteres pode ser trans-formada em outra mediante a inserção, remoção ou substituição de caracteres individuais.

Um possível método para se conver-ter rato em ano seria efetuar as seguin-tes alterações: rato -> ato -> ao-> ano. Porém, uma solução alternativa com menos passos intermediários seria: rato -> ato -> ano.

O menor número de passos neces-sários para uma alteração oferece uma métrica para avaliarmos a similaridade de duas cadeias de caracteres. Essa métrica

é chamada de Métrica de Levenshtein, ou distância de edição, e esse método é a base usada pelo diff para marcar alterações.

Em aplicações práticas, a maior parte dos arquivos permanecerá inalterada na maioria das comparações. Portanto, o pri-meiro passo é excluir os trechos idênticos. Para encontrar as alterações, mesmo que estejam diferentes do estado original, é necessário organizarmos o texto em uma matriz, como mostra a figura 1.

Os números da tabela se referem às dife-renças entre os valores, em byte, dos caracteres individuais. Assim, um zero representa um

Quadro 1: Programação dinâmicaA programação dinâmica é um conceito importante na ciência da computa-ção, e freqüentemente representa a melhor abordagem para se resolver proble-mas de otimização. Em muitos casos, é mais fácil desmembrar um problema, resol-ver suas sub-tarefas e usar os resultados num outro passo de processamento.

Calcular potências é um exemplo simples que data da época em que os recursos computacionais eram escassos: para calcular a oitava potência de um número, pode-se desmembrar o cálculo n*n*n*n * n*n*n*n em passos intermediários de ((n*n) * (n*n) * (n*n) * (n*n)). Se forem armazenados temporariamente os resultados de (n*n) e ((n*n) * (n*n)), serão necessárias apenas três multiplicações, em vez de sete.

Figura 1 A visão de matriz facilita a visualização das coin-cidências (valores zero), apesar de a posição dos caracteres ter sido alterada entre os dois arquivos.

17 0 19 144 13 6 13 14 5 0

r a t o

ano

http://supertuxbr.blogspot.com

Page 71: 30 - Gestao e Produtividade_mai_2007

71

| PROGRAMAÇÃODiff

Linux Magazine #30 | Maio de 2007

caractere inalterado. A coincidência (tam-bém chamada de “casamento”) mais longa é chamada de maior subseqüência comum, ou LCS, na sigla em inglês.

A distância de edição pode ser dedu-zida a partir do comprimento da LCS, aplicando-se a seguinte fórmula: d(X, Y) = n + m - 2 * |LCS|, onde X = x_1 … x_n e Y = y_1 … y_m.

Numa matriz como essa, as modifica-ções são fáceis de detectar: na compara-ção entre assar e fossa (figura 2), os zeros (casamentos) localizam-se ao longo de uma linha descendente paralela à diago-nal principal da matriz (aquela que vai do canto superior esquerdo até o canto inferior direito).

Trocas (rato para rtao, figura 3) são mostradas como interrupções na matriz, com os zeros a 90 graus da diagonal prin-cipal, atravessando seu centro.

Palíndromos (ordem dos caracteres invertida) aparecem como uma seqüência de valores zero, desde o canto superior direito até o inferior esquerdo (diagonal secundária), na matriz (figura 4).

Otimização durante o usoO tamanho da matriz depende do com-primento dos textos comparados. Se forem usados dois arquivos de 10 KB, o número de comparações torna-se sur-preendentemente grande: 10 mil vezes 10 mil, totalizando 100 milhões, o que significa que são necessários 100 MB de memória RAM apenas para armazenar a matriz. Buscar casamentos exige ainda mais memória.

Processos computacionais que cal-culam valores repetidamente podem ser otimizados. A programação dinâmica (quadro 1) reduz o consumo de memória

Exemplo 1: Busca da LCS01 sub lcs {02 my $refmatrix=shift;03 my $refxlst=shift;04 my $refylst=shift;05 my $m=scalar @$refxlst-1;06 my $n=scalar @$refylst-1;07 foreach my $i (1 .. $m) {08 foreach my $j (1 .. $n) {09 if ($refxlst->[$i] eq $refylst->[$j]) {10 $refmatrix->[$i]->[$j] = $refmatrix->[$i-1]->[$j-1]+1;11 } elsif ($refmatrix->[$i-1]->[$j] >= $refmatrix->[$i]->[$j-1]) {12 $refmatrix->[$i]->[$j] = $refmatrix->[$i-1]->[$j];13 }14 else {15 $refmatrix->[$i]->[$j] = $refmatrix->[$i]->[$j-1];16 }17 }18 }19 return $refmatrix;20 }

Figura 2 Trechos que casam são visíveis como diagonais de zeros paralelas à diagonal principal da matriz.

5 13 13 5 1214 4 4 14 318 0 0 18 1

a s s a r

fos

18 0 0 18 10 18 18 0 17

sa

Figura 3 Trocas de caracteres aparecem na matriz como diagonais de zeros interrompidas. Os caracteres trocados (em amarelo) localizam-se em uma linha a 90 graus da diagonal.

0 2 17 317 19 0 142 0 19 5

r t a o

ra

3 5 14 0to

Figura 4 Palíndromos (caracteres com ordem invertida) aparecem na matriz como diagonais que vão do canto superior direito até o canto inferior esquerdo.

18 15 10 18 00 3 8 0 188 5 0 8 18

a d i a s

sai

3 0 5 3 150 3 8 0 18

da

http://supertuxbr.blogspot.com

Page 72: 30 - Gestao e Produtividade_mai_2007

72 http://www.linuxmagazine.com.br

PROGRAMAÇÃO | Diff

e economiza tempo computacional, pois mantém baixo o número de comparações ao comparar duas versões de um texto em uma matriz. Isso é possível porque, em vez de armazenar a diferença em bits entre os dois caracteres, a matriz mostrada na figura

5 guarda o número de caracteres que casam, desde o início da cadeia de caracteres. O

exemplo 1 mostra o código em Perl usado para implementar essa técnica.

Usando os valores mostrados na fi-

gura 5, um algoritmo de backtracking pode rapidamente determinar a maior subseqüência comum em uma cadeia de caracteres: ➧ Comece com o valor máximo. Se-

lecione a maior entrada acima e à esquerda, ou à esquerda, ou acima da posição atual;

➧ Se houver múltiplas entradas com valores iguais, use o caminho acima e à esquerda;

➧ Percorrendo a matriz, a LCS é encon-trada se ocorrerem múltiplas entradas com o mesmo valor máximo.

A figura 6 mostra o caminho que esse algoritmo percorre ao longo da matriz. O exemplo 2 implementa o algoritmo de comparação em Perl. Para permitir que o script termine corretamente, a cadeia de caracteres deve conter uma seqüência de valores nulos no início, como mostrado nas figuras 5 e 6.

Não é necessário acrescentar muito ao algoritmo discutido na última seção para mostrar as diferenças entre dois ar-quivos ou cadeias de caracteres como o diff. Sempre que o caminho de volta ao longo da matriz mudar de direção para cima ou para a esquerda, um caractere terá sido deletado ou inserido na nova versão.

O script do exemplo 3 detecta essas mudanças. O laço while nas linhas 43 e 47 assegura que o algoritmo leve em consi-deração os caracteres representados por zeros na matriz.

Apesar de a programação dinâmica evitar cálculos repetitivos, os desenvolve-dores do diff para Unix (depois conhecido como diff-utils[1]) precisaram tirar uma nova carta da manga. A ferramenta diff foi criada principalmente para uso com código-fonte. Para conseguir lidar com tamanhos de arquivos comuns com a me-mória disponível nos computadores da década de 1980, o diff não compara letra por letra, e sim linha por linha.

Exemplo 2: Backtracking01 # efetua o backtracking numa matriz lcs02 sub backtracking_lcs {03 my $refmatrix=shift;04 my $ref_xlst=shift;05 my $ref_ylst=shift;06 my @lcs;07 my $x=scalar @$ref_xlst -1;08 my $y=scalar @$ref_ylst -1;09 while ($y>0 && $x>0) {10 my $valor_real=$refmatrix->[$x]->[$y];11 my $x_real=$x;12 if (13 ($refmatrix->[$x-1]->[$y-1] >= $refmatrix->[$x-1]->[$y]) &&14 ($refmatrix->[$x-1]->[$y-1] >= $refmatrix->[$x]->[$y-1])15 ) { # seguir para a esquerda e para cima16 $x--; $y--;17 } elsif ($refmatrix->[$x-1]->[$y] >= $refmatrix->[$x]->[$y-1]) { # seguir para a esquerda18 $x--;19 } else { # seguir para cima20 $y--;21 }22 # verificar se o valor mudou, e entao inserir (push) em @lcs23 if ($valor_real > $refmatrix->[$x]->[$y]) {24 push @lcs, $x_real;25 }26 }27 @lcs=reverse @lcs; # eh reverse por causa do backtracking28 return \@lcs;29 }3031 # imprimir a matriz lcs32 sub print_lcs {33 my $ref_matrix=shift;34 my $ref_xlst=shift;35 my $ref_ylst=shift;36 print “LCS: ‘”;37 foreach my $i (@{backtracking_lcs($ref_matrix,$ref_xlst,$ref_ylst) }) {38 print $ref_xlst->[$i];39 }40 print “’\n”;41 }

Figura 5 Em vez de usar as distâncias entre os valores dos caracteres, é mais eficiente mostrar o comprimento das subseqüências na análise inicial.

0 0 0 0 00 1 1 1 10 1 1 2 2

t i e r

te

0 1 1 2 20 1 1 2 3

er

http://supertuxbr.blogspot.com

Page 73: 30 - Gestao e Produtividade_mai_2007

73

| PROGRAMAÇÃODiff

Linux Magazine #30 | Maio de 2007

Para isso, o programa primeiro cal-cula uma hash para cada linha, antes de calcular as diferenças entre as hashes na segunda etapa.

O programa não precisa comparar as linhas letra por letra caso suas hashes sejam idênticas. Essa técnica economiza muita memória.

Em 1986, Eugene Myers desenvolveu um algoritmo veloz que é a base da po-pular diff-utils[2]. As alternativas gráficas ao programa de linha de comando diff, como o Meld[3] e a ferramenta Kompa-

re[4], do KDE, baseiam-se nessa técnica. Na realidade, apesar dos gráficos sofisti-cados, o Kompare de fato se baseia na ferramenta diff legada sob o capô.

Mais aplicaçõesA técnica empregada pelo diff é adequada não apenas para descobrir diferenças em có-digos-fonte. Ao invés de encontrar diferenças, o algoritmo do diff também pode encontrar coincidências, mostrando assim a reutiliza-ção de código. Em projetos de software de

grande escala, a ocorrência de muitas duplicatas de código é uma prova de sucesso na reutilização de código. Uma variante do tema do diff consegue até comparar notas tocadas com os tons produzidos por um músico.

Se a matriz de distân-cias (figura 4) mostrar a diferença entre as teclas pressionadas em um tecla-do (chamando-se, nesse caso, de distância de di-gitação), ela poderá ser usada para tentar adivi-

nhar o que uma pessoa queria escrever, no caso de erros de digitação. Uma aplicação interessante do diff encontra-se na biologia, mais especificamente na bioinformática, onde o algoritmo é utilizado para comparar seqüências de DNA e proteínas. ■

Exemplo 3: Algoritmo do Diff01 # Efetua o backtracking na matriz lcs02 sub backtracking_lcs {03 my $refmatrix=shift;04 my $ref_xlst=shift;05 my $ref_ylst=shift;06 my @lcs;07 my $x=scalar @$ref_xlst -1;08 my $y=scalar @$ref_ylst -1;09 while ($y>0 && $x>0) {10 my $valor_real=$refmatrix->[$x]->[$y];11 my $x_real=$x;12 my $y_real=$y;13 my $direcao_real;14 if (15 ($refmatrix->[$x-1]->[$y-1] >= $refmatrix->[$x-1]->[$y]) &&16 ($refmatrix->[$x-1]->[$y-1] >= $refmatrix->[$x]->[$y-1])17 ) { # seguir para a esquerda e para cima18 $x--; $y--;19 $direcao_real=”ul”;2021 } elsif ($refmatrix->[$x-1]->[$y] >= $refmatrix->[$x]->[$y-1]) { # ir

➥para a esquerda22 $x--;23 $direcao_real=”l”;24 } else { # ir para cima25 $y--;26 $direcao_real=”u”;27 }28 # checa se o valor mudou, e entao insere (push) em @lcs29 if ($valor_real > $refmatrix->[$x]->[$y]) {30 # push @lcs, $x_real;31 push @lcs, “(“.$ref_xlst->[$x_real].”)”;32 } else {33 if ($direcao_real eq “u”) {

34 push @lcs,”+(“.$ref_ylst->[$y_real].”)”;35 } elsif ($direcao_real eq “l”) {36 push @lcs,”-(“.$ref_xlst->[$x_real].”)”;37 } else {38 push @lcs,”+(“.$ref_ylst->[$y_real].”)”;39 push @lcs,”-(“.$ref_xlst->[$x_real].”)”;40 }41 }42 }43 while ($y > 0) { # pega o ultimo valor de ylst44 push @lcs, “+(“.$ref_ylst->[$y].”)”;45 $y--;46 }47 while ($x > 0) { # pega o ultimo valor de xlst48 push @lcs, “-(“.$ref_xlst->[$x].”)”;49 $x--;50 }51 @lcs=reverse @lcs; # invertido devido ao backtracking52 return \@lcs;53 }5455 # imprimir matriz lcs56 sub print_diff {57 my $ref_matrix=shift;58 my $ref_xlst=shift;59 my $ref_ylst=shift;60 print “DIFF: ‘”;61 foreach my $i (@{ backtracking_lcs($ref_matrix,$ref_xlst,

➥$ref_ylst) }) {62 print $i;63 }64 print “’\n”;65 }

Figura 6 Para encontrar a subseqüência mais longa, inicie pelo valor máximo da tabela e retorne (backtracking) pelos campos, usando um algoritmo simples.

0 0 0 0 00 1 1 1 10 1 1 2 2

t i e r

te

0 1 1 2 20 1 1 2 3

er

Mais Informações[1] Manual do GNU Diffutils, 2002:

http://www.gnu.org/software/diffutils/manual/diff.html

[2] E. W. Myers, “An o(ND) difference algorithm and its variations” (em inglês): Algorithmica, 1(2), pg.251-266, 1986; http://citeseer.ist.psu.edu/myers86ond.html

[3] Meld: http://meld.sourceforge.net

[4] Kompare: http://www.caffeinated.me.uk/kompare

O autorApós graduar-se em Telecomunicações e Ciência da Informação, Andreas Romeyke agora trabalha como desenvolvedor de soft-ware para o Instituto Max Planck de Neuro-ciências e Ciências Cognitivas, em Leipzig, Alemanha. Andreas é co-fundador do Linux Usergroup Leipzig, e também da Socieda-de pela Aplicação de Sistemas Abertos.

http://supertuxbr.blogspot.com

Page 74: 30 - Gestao e Produtividade_mai_2007

74

PR

OG

RA

MA

ÇÃ

O

http://www.linuxmagazine.com.br

Algoritmos genéticos com o Acovea

Evolução na compilaçãoO Acovea imita a evolução de organismos vivos para definir as melhores opções de compilação do GCC.por Pablo Hess

O papel de principal ferramenta de desenvolvimento de todas as distri-buições Linux rende ao conjunto de

compiladores GCC (GNU Compiler Collec-tion)[1] um certo misticismo. Na verdade, é até compreensível que um compilador C, C++, Objective-C, Fortran, Ada e Java que funciona em mais de 20 plataformas seja tratado como algo sobrenatural.

Especificamente em relação a C e deri-vados (Objective-C e C++), entre as tarefas altamente especializadas efetuadas pelo GCC, a mais freqüentemente encarada como “feitiçaria” é a otimização de código binário para uma determinada microarquitetura de processadores. Por exemplo, basta passar ao compilador as opções -march=athlon-xp -O2 para que seu código seja compilado de forma a rodar significativamente mais rápido em processadores AMD Athlon XP.

Como demonstração, um pequeno aplicativo de benchmark baseado em uma aplicação científica, disponível em[2], roda em 463 segundos sem qualquer oti-mização, enquanto o tempo de execução com um bom nível de otimização (opções -march=athlon-xp -O3) é de 249 segundos.

O extenso manual do GCC[3] aborda todas as opções de compilação, incluindo tanto as genéricas quanto aquelas específicas para cada arquitetura de processador (são 51 opções para a arquitetura x86, no GCC 4.1.2). Contudo, a simples existência dessas opções não facilita muito a vida do programador. A opção -finline-functions, por exemplo, pode tornar um código mais rápido, pois embute as funções no corpo do código, economizando com isso algumas chamadas de função. No entanto, ela também torna o código binário maior, o que pode fazê-la degradar o de-sempenho do programa quando usada em conjunto com outras opções.

Chega-se então a um problema comple-xo: como saber quais funções interagem bem entre si, contribuindo positivamente para gerarem o código binário mais veloz possí-

vel? Os acadêmicos oferecem duas classes de soluções a esse tipo de problema: ➧ Busca exaustiva: todas as combinações

possíveis seriam testadas, e escolhe-ríamos a melhor dentre todas;

➧ Busca heurística: em vez de varrermos todo o espaço de possibilidades de combinações das opções disponíveis, seguimos algum tipo de algoritmo para eliminar de antemão aqueles que parecerem pouco promissores.

Entra DarwinEmbora a busca exaustiva pareça sim-ples, ela geralmente demanda um tem-po maior do que pessoas normais estão dispostas a esperar. Levando em conta as 51 opções existentes para um código C em x86, as combinações possíveis ul-trapassam o número de 2×10^15 (ou dois quatrilhões). Se cada uma dessas opções levar um segundo para ser compilada e executada em nossos testes, levaremos algo como 71 milhões de anos para con-cluir as comparações. Como algumas dessas opções aceitam parâmetros, esse número cresce ainda mais.

Fica claro, então, que é saudável apelarmos para uma busca heurística. Na modesta visão do autor deste artigo, a solução mais interessante para isso é composta pelos algoritmos evolutivos, descritos no quadro 1. Aparentemente, os desenvolvedores do GCC concordam com essa colocação, pois essa é justamente a abordagem empregada por eles.

O Acovea [4] (Analysis of Compiler Options Via Evolutionary Algorithms) é um programa desenvolvido pelo america-no Scott Robert Ladd, da Coyote Gulch Productions. O software é empregado pelos desenvolvedores do GCC para de-terminar quais opções de compilação em C (comumente chamadas de CFLAGS) geram o código mais veloz. Além desse tipo de comparação, o autor ressalta a utili-dade do software no teste de combinações pessimistas de opções, o que permite que se teste, de uma forma geral, a confiabili-dade do próprio compilador.

O principal resultado do uso do Acovea no desenvolvimento do compilador C livre é percebido nas opções genéricas de otimi-zação -On, onde n é um número de 0 a 3, ou a letra s. Uma vez informada ao compilador

Richard Wheeler (Zephyris, Wikipédia)

Figura 1 Mecanismo básico dos algorítimos genéticos

http://supertuxbr.blogspot.com

Page 75: 30 - Gestao e Produtividade_mai_2007

75

| PROGRAMAÇÃOAcovea

Linux Magazine #30 | Maio de 2007

a arquitetura do processador, a opção -O1, ou simplesmente -O, ativa opções básicas de otimização, tornando o código menor (em tamanho) e mais veloz, porém sem alongar muito o tempo de compilação. Naturalmente, as opções -O2 e -O3 prolongam o tempo de compilação progressivamente, aumentando também o número de otimizações aplica-das ao código binário, e tornando-o mais e mais rápido. A opção -Os visa a diminuir o tamanho do executável. Baseada em -O2, ela não utiliza as opções que aumentem o tamanho do binário, e ainda aplica outras destinadas a reduzi-lo.

FuncionamentoEste artigo utiliza como base a versão mais recente do Acovea no momento de sua escrita, a de número 5.1.1. Caso essa versão não esteja disponível para sua distribuição em um pacote binário, é possível baixar seu código-fonte, assim como as bibliotecas ne-cessárias (Libacovea, Libevocosm e Libcoyotl), em[5]. Compile e instale cada uma delas sobre /usr/local/ com o comando ./confi-gure && make && make install. Em seguida, o mesmo procedimento pode ser seguido para o Acovea propriamente dito.

Para utilizar o programa, basta digitar o comando runacovea com os parâmetros obri-gatórios: um arquivo de configuração (locali-zado em /usr/local/share/libacovea/config/, ou /usr/share/libacovea/config/, no Gentoo) e um arquivo de benchmark (em /usr/local/share/libacovea/benchmarks/, ou /usr/share/libacovea/benchmarks, no Gentoo).

O arquivo de configuração utiliza o for-mato XML, e é razoavelmente auto-expli-cativo. É importante ressaltar, no entanto, que seu formato mudou da versão 4.x para a 5.x. A tag <prime> define o comando e as opções que serão usados em todas as compilações. As tags <baseline>, por sua vez, informam ao Acovea quais níveis de otimização padrão serão usados para fins de comparação. Abaixo dessa seção, en-contra-se cada uma das opções que o pro-grama testará, separadas pelo menor nível de otimização que as ativa. Em seguida, há opções não incluídas em nenhum nível de otimização, além daquelas específicas para a arquitetura x86 e das relacionadas à opção -ffast-math. Há arquivos de configuração já construídos para determinados pares de versão do gcc/g++ e microarquiteturas de processador. O arquivo de configuração gcc40_pentium4.acovea, por exemplo, deve ser usado com o GCC 4.0 em processado-res Pentium 4 ou derivados. Esse arquivo contém 86 opções, sendo que sete delas aceitam parâmetros. Voltando ao assunto

de combinações possíveis, o número aqui já ultrapassaria 2×10^26.

É importante notar que o primeiro bloco de opções é constituído por nega-ções das opções incluídas em -O1. Como a linha da tag prime já inclui a opção -O1, isso significa que o Acovea não parte de um ponto sem qualquer otimização; em vez disso, ele utiliza por padrão o nível -O1, apenas negando algumas opções incluídas neste, a cada rodada.

BenchmarksCada arquivo de benchmark, por sua vez, é o código-fonte de um pequeno programa em C. O Acovea utiliza o tempo de compilação e execução do benchmark escolhido para medir a velocidade com cada conjunto de opções. No entanto, os resultados provenien-tes de um único benchmark jamais devem ser considerados suficientes; em vez disso, sempre deve ser usado o maior número pos-

Exemplo 1: gcc412_core2.acovea<?xml version=”1.0”?><acovea_config> <acovea version=”5.1” /> <description value=”gcc 4.1.2 Core 2 (ia32/x86)” version=”1.2.0-personalizado” /> <get_version value=”gcc -dumpversion” /> <quoted_options value=”false” />

<prime command=”gcc” flags=”-lrt -lm -std=gnu99 -O1 -march=nocona ACOVEA_OPTIONS -o ACOVEA_OUTPUT ACOVEA_INPUT” />

<baseline description=”-O1” command=”gcc” flags=”-lrt -lm -std=gnu99 -O1 -march=nocona -o ACOVEA_OUTPUT ACOVEA_INPUT” />

<baseline description=”-O2” command=”gcc” flags=”-lrt -lm -std=gnu99 -O2 -march=nocona -o ACOVEA_OUTPUT ACOVEA_INPUT” />

<baseline description=”-O3” command=”gcc” flags=”-lrt -lm -std=gnu99 -O3 -march=nocona -o ACOVEA_OUTPUT ACOVEA_INPUT” />

<baseline description=”-O3 -ffast-math” command=”gcc” flags=”-lrt -lm -std=gnu99 -O3 -march=nocona -ffast-math -o ACOVEA_OUTPUT ACOVEA_INPUT” />

<baseline description=”-Os” command=”gcc” flags=”-lrt -lm -std=gnu99 -Os -march=nocona -o ACOVEA_OUTPUT ACOVEA_INPUT” />

<!-- Lista de opções que serao “evoluidas” pelo ACOVEA --> <flags>...

Quadro 1: Algoritmos EvolutivosA constatação do fenômeno da Seleção Natural por Charles Darwin influenciou diversas áreas da ciência, incluindo a Ciência da Computação.

Os algoritmos evolutivos, também chamados de algoritmos genéticos, baseiam-se na idéia de sucessi-vas rodadas de descendência com modificações, seguidas da seleção dos sobreviventes (e conseqüen-temente reprodutores), como mostra a figura 1. Partindo da população mais diversa possível – quatro in-divíduos absolutamente diferentes –, os indivíduos reproduzem-se, gerando filhos que possuem uma mistura de suas características. Após a eliminação daquelas variações muito distantes de nosso alvo (cor azul e boca sorridente), a população remanescente entrará em novas rodadas de reprodução e sele-ção, produzindo, ao final, uma população quase inteiramente formada pelas características que selecio-namos. Na figura 1 pode-se ver que todos os indivíduos da população final têm cor azul ou verde (que é semelhante ao azul), ou têm boca sorridente, sendo que muitos possuem ambas as características.

No caso do Acovea, as características presentes em cada indivíduo não são a cor ou o formato da boca, e sim as opções de compilação. E a característica a ser selecionada é a velocidade de execução do programa. Aque-las combinações de opções que alcançarem maior velocidade de execução serão mantidas na população, enquanto as mais lentas serão eliminadas. A reprodução representa a mistura entre as opções de compilação de maior êxito, enquanto a mutação é responsável por perturbar isso, inserindo outras opções de compila-ção aleatoriamente entre as melhores combinações da população. Embora as mutações pareçam prejudiciais ao resultado final, elas têm grande importância para que a combinação de opções de compilação consi-ga atingir o melhor resultado possível, em vez de parar de evoluir ao atingir um valor simplesmente bom.

http://supertuxbr.blogspot.com

Page 76: 30 - Gestao e Produtividade_mai_2007

76 http://www.linuxmagazine.com.br

PROGRAMAÇÃO | Acovea

sível de benchmarks, pois cada um deles se foca em apenas alguns recursos das CPUs modernas. A tabela 1 dá mais detalhes sobre cada um dos benchmarks.

Com o comando runacovea -input /cami-nho/para/almabench.c -config /caminho/para/gcc34_opteron.acovea, por exemplo, execu-taremos uma longa carreira de testes. Por padrão, serão geradas cinco populações (o parâmetro -n pode definir outros números) de 40 indivíduos (parâmetro -p), que evo-luirão por 20 gerações (opção -g), com os parâmetros demostrados no quadro 2.

PersonalizandoTudo isso faz sentido para os desenvolvedores do GCC. Foram justamente eles que veri-ficaram que um determinado conjunto de opções, quando ativadas, produzem código um pouco menor e mais veloz, por isso todas elas são incluídas na opção -O1. Contudo, pode ser necessário um certo nível de per-sonalização nas configurações.

Por exemplo, o Acovea não traz arquivos de configuração para a nova arquitetura Core 2, da Intel, que ainda não possui uma opção adequada para o parâmetro -march do GCC 4.1.2. Se quisermos testar as op-ções de configuração do GCC 4.1.2 para esse processador (em 32 bits), utilizando a opção -march=nocona (recomendada pela Intel para esse processador), precisaremos criar nosso próprio arquivo de configura-ção, como no exemplo 1.

Outros tipos de testes personalizados também podem ser interessantes, como o uso de -mtune ou -mcpu no lugar de -march, por exemplo. Um cenário onde isso pode ser útil é um parque de máquinas composto por múltiplas microarquiteturas, no qual a otimização com -march quebraria a compati-bilidade dos binários com diversas máquinas. As opções -mtune (presente no GCC 4.0 em diante) e -mcpu (versões anteriores do GCC)

ativam apenas as otimizações que não tornam o código binário resultante in-compatível com outras microarquiteturas.

Outra forma de personalização, que também pode ajudar a reduzir o tempo de execução do Acovea, é já partir de um nível seguro de otimização, como -O1. Como ressaltamos acima, o Acovea já parte do nível -O1, mas desfaz algu-mas otimizações através de opções de negação (especificadas na seção <fla-gs> do arquivo de configuração). Para deixar de negar as opções incluídas em -O1, basta comentar as linhas referen-tes a elas, na seção <flags>.

Um último exemplo de uso de opções personalizadas seria a eliminação das me-dições com -mfpmath=sse,387. De acordo com o manual do GCC, o uso dessa opção para aumentar o número de registros res-ponsáveis pelo armazenamento de valores em ponto flutuante pode ter resultados imprevisíveis, pois o alocador de registros do compilador ainda não é capaz de fa-zer uma boa modelagem de unidades de ponto flutuante distintas. Para não utilizar essa opção, basta alterar a linha:

<flag type=”enum” value=”-mfpmath=387|-➥mfpmath=sse|-mfpmath=sse,387” />

para:

<flag type=”enum” value=”-mfpmath=387|-➥mfpmath=sse” />

O arquivo de configuração para pro-cessadores da arquitetura Core 2 com o GCC 4.1.2 está disponível para download em [6]. Um outro arquivo de configu-ração, esse destinado a descobrir qual a melhor opção a ser usada nos parâmetros -march e -mtune com essa arquitetura, pode ser baixado em [7].

Ainda lentoO Acovea adota um algoritmo de alta eficiência para determinar o comporta-mento interativo das opções de compi-lação do GCC. No entanto, por se tratar de um problema complexo, mesmo uma solução heurística eficiente demanda longos tempos de execução. Para execu-tar o Acovea com os parâmetros padrão (veja a tabela 1), passando por todos os benchmarks, geralmente são necessárias mais de 24 horas de processamento. É comum imaginarmos que os culpados sejam os arquivos de benchmark, pos-sivelmente muito grandes. No entanto, qualquer processador moderno é capaz de compilar e executar um dos diminutos benchmarks (o maior binário ocupa 20 KB) em menos de seis segundos.

Naturalmente, a duração dos testes depende do processador utilizado. Proces-sadores de núcleos múltiplos e sistemas multiprocessados podem acelerar bastante os testes através da execução paralela de diferentes benchmarks, desde que o admi-nistrador tome o cuidado de garantir que apenas uma instância do Acovea esteja rodando em cada núcleo ou CPU.

Tamanho ou velocidadeSe o motivo do teste for avaliar o uso da memória, o Acovea também pode ser valioso. Existe a opção, embora não seja muito divulgada, de se utilizar o progra-ma para otimizar, ou seja, minimizar, o uso de memória pelos códigos binários gerados. Para isso, é necessário utilizar a opção de linha de comando -size, como mostra o quadro 2.

Tabela 1: Detalhes dos benchmarks

Benchmark Descrição

almabench.c Abusa das funções sin, cos e sqrt. Pode ser bas-tante beneficiado pela opção -ffast-math.

distbench.c Efetua multiplicações maciças de matrizes. Não faz uso intensivo da unidade de ponto flutuante.

evobench.c Emprega um algoritmo genético para mi-nimizar uma função 2D.

fftbench.c Resolve uma grande equação linear.

huffbench.c Implementa a compressão Huffman. Como o código não está otimizado, é bastante sujeito às decisões do compilador.

linbench.c Mais uma solução de uma grande equação linear.

treebench.c Lida com árvores balanceadas.

Exemplo 2: Início da saída do Acovea01 Acovea completed its analysis at 2007 May 06 08:30:1202 03 Optimistic options:04 05 -fno-cprop-registers (2.366)06 -fexpensive-optimizations (1.819)07 -finline-functions (1.819)08 -fno-function-cse (1.819)09 -ftree-vectorize (2.366)10 -mieee-fp (1.819)11 12 Pessimistic options:13 14 -momit-leaf-frame-pointer (-2.554)15 -fforce-addr (-2.007)16 -funroll-loops (-2.007)17 -fbranch-target-load-optimize2 (-2.007)18 -mfpmath=387 (-1.734)19 -mfpmath=sse (-1.734)

http://supertuxbr.blogspot.com

Page 77: 30 - Gestao e Produtividade_mai_2007

77

| PROGRAMAÇÃOAcovea

Linux Magazine #30 | Maio de 2007

SaídaA saída do Acovea não é absoluta-mente intuitiva. Isso ocorre porque o programa não é projetado para dar um parecer definitivo sobre as opções de compilação, mas sim para calcular tendências. A interpretação dos resul-tados fica totalmente a cargo do usu-ário. O exemplo 2 mostra um trecho da saída da execução do Acovea com o benchmark huffbench.c. Nele, são mostradas as opções que causaram, individualmente, os maiores impac-

tos – positivos e negativos – sobre a velocidade de execução dos binários. Em seguida, o exemplo 3 especifica as combinações de opções que se destaca-ram, com um gráfico do desempenho de cada uma. Barras menores repre-sentam binários mais velozes.

Pode-se ver que as opções -O3 -ffast-math e -O3 obtiveram o melhor resulta-do, enquanto -Os gerou os binários mais lentos. As Common Options são aquelas presentes em todas as populações finais, ou seja, as comuns a todas as combina-ções “vencedoras”.

ConclusãoPlanejar as opções de com-pilação do GCC não é uma tarefa simples, e exige uma enorme quantidade de traba-lho computacional. Os algo-ritmos genéticos empregados pelo Acovea são fundamentais para estudar a melhor com-binação de opções para seu processador. Evidentemen-te, nem sempre é necessário otimizar tão extremamente seus programas, assim como as próprias opções ótimas de compilação costumam ser diferentes entre programas distintos.

Apesar de toda a “magia negra” que o GCC pode fazer, a eficiência de um programa

ainda depende primordialmente do pro-gramador, e não do compilador. Porém, utilizar de forma eficiente os recursos do processador sempre será uma boa idéia, e um bom compilador faz toda a diferença nesse momento. ■

Quadro 2: Parâmetros do AcoveaAlém dos parâmetros obrigatórios -config e -input, é possível utilizarmos outros parâme-tros para ajustar o funcionamento do Acovea. O parâmetro -p define o tamanho das popula-ções. Isso regula o número de variações que competirão pelo melhor desempenho ao mesmo tempo. Quanto maior esse número, mais tempo o programa levará para ser executado.

Enquanto isso, -n especifica o número de populações usadas pelo progra-ma. Quanto maior for esse parâmetro, maior será o número de “melho-res combinações” evoluindo paralelamente, o que é bom para o resultado fi-nal. Porém, o tempo de execução também cresce com esse número.

O valor padrão para -g, o número de gerações, é 20, que deve ser um valor no mí-nimo bom. Quanto maior for esse número, mais confiável será o resultado fi-nal, que em contrapartida também levará muito mais para ser atingido.

Os parâmetros -sr, -mr, -cr e -ir, todos definidos entre 0 e 1, determinam quanta varia-ção será criada (ou mantida, dependendo do parâmetro) na população. Valores muito bai-xos dificultam a substituição de combinações de opções simplesmente boas por outras que sejam melhores. No entanto, se esses valores forem muito altos, combinações ótimas também poderão ser facilmente suplantadas por outras piores. Esses parâmetros não afe-tam o tempo de execução, e seus valores padrão são adequados na maioria dos casos.

A opção -no-scaling simplesmente não deve ser usada, pois desativa a nor-malização das medições, o que torna as comparações menos precisas.

-size deve ser aplicado quando se desejar otimizar não a velocidade de execução, e sim o espaço ocupado pelo código binário na memória. De forma semelhante, -re-tval é a opção certa quando o importante for o valor de retorno do programa.

Todas as execuções do Acovea com os mesmos parâmetros e o mes-mo valor para -seed terão o mesmo resultado.

Exemplo 3: Combinações de opções na saída do Acovea01 Acovea’s Best-of-the-Best:02 gcc -lrt -lm -std=gnu99 -O1 -march=athlon-xp -fno-thread-jumps ...03 04 Acovea’s Common Options:05 gcc -lrt -lm -std=gnu99 -O1 -march=athlon-xp -fno-cprop-registers ...06 07 -O1:08 gcc -lrt -lm -std=gnu99 -O1 -march=athlon-xp ...09 10 -O2:11 gcc -lrt -lm -std=gnu99 -O2 -march=athlon-xp ...

(...)

25 Acovea’s Best-of-the-Best: ************************************************* (4.09586)26 Acovea’s Common Options: ************************************* (3.10256)27 -O1: ************************************* (3.06374)28 -O2: ************************************ (2.98601)29 -O3: ********************************** (2.8677)30 -O3 -ffast-math: ********************************** (2.85065)31 -Os: ************************************************** (4.1257)

Mais Informações[1] GCC, GNU Compiler Collection:

http://gcc.gnu.org

[2] Ziheng Yang, Speed2: http://abacus.gene.ucl.ac.uk/software/speed2.tar.gz

[3] Manual do GCC.4.1.2: http://gcc.gnu.org/onlinedois/

[4] Acovea: http://www.coyotegulch.com/products/acovea/

[5] Download das bibliotecas do Acovea: http://www.coyotegulch.com/ products/

[6] Arquivo gcc412_core2.acovea: http://www.linuxmagazine.com.br/arquivos/LM30/gcc412_core2.acovea

[7] Arquivo gcc412_core2_opcoes.acovea: http://www.linuxmagazine.com.br/arquivos/LM30/gcc412_core2_opcoes.acovea

[8] Algoritmos genéticos, na Wikipédia (em inglês): http://en.wikipedia.org/wiki/Genetic_algorithm

O autorPablo Nehab Hess é editor da Linux Magazi-ne e tem mestrado em genética. Após conhe-cer o Linux através da computação científica, interessou-se imediatamente pela adminis-tração de sistemas e redes, as quais praticou em alguns laboratórios na universidade.

http://supertuxbr.blogspot.com

Page 78: 30 - Gestao e Produtividade_mai_2007

78 http://www.linuxmagazine.com.br

Fornecedor de Hardware = 1 Redes e Telefonia / PBX = 2 Integrador de Soluções = 3

Literatura / Editora = 4 Fornecedor de Software = 5

Consultoria / Treinamento = 6

Linux.local

Empresa Cidade Endereço Telefone Web 1 2 3 4 5 6

CearáF13 Tecnologia Fortaleza Rua Coronel Solon, 480 – Bairro de Fátima

Fortaleza - CE - CEP 60040-270 85 3252-3836 www.f13.com.br ✔ ✔ ✔ ✔

Espírito SantoLinux Shopp Vila Velha Rua São Simão (Correspondência), 18 – CEP: 29113-120 27 3082-0932 www.linuxshopp.com.br ✔ ✔ ✔ ✔

Megawork Consul-toria e Sistemas

Vitória Rua Chapot Presvot, 389 – Praia do Can-to – CEP: 29055-410 sl 201, 202

27 3315-2370 www.megawork.com.br ✔ ✔ ✔

Spirit Linux Vitória Rua Marins Alvarino, 150 – CEP: 29047-660 27 3227-5543 www.spiritlinux.com.br ✔ ✔ ✔

Minas GeraisInstituto Online Belo Horizonte Av. Bias Fortes, 932, Sala 204 – CEP: 30170-011 31 3224-7920 www.institutoonline.com.br ✔ ✔

Linux Place Belo Horizonte Rua do Ouro, 136, Sala 301 – Serra – CEP: 30220-000 31 3284-0575 corporate.linuxplace.com.br ✔ ✔ ✔ ✔

Microhard Belo Horizonte Rua República da Argentina, 520 – Sion – CEP: 30315-490 31 3281-5522 www.microhard.com.br ✔ ✔ ✔ ✔ ✔

TurboSite Belo Horizonte Rua Paraíba, 966, Sala 303 – Savassi – CEP: 30130-141 0800 702-9004 www.turbosite.com.br ✔ ✔ ✔

ParanáiSolve Curitiba Av. Cândido de Abreu, 526, Cj. 1206B – CEP: 80530-000 41 252-2977 www.isolve.com.br ✔ ✔ ✔

Mandriva Conectiva Curitiba Rua Tocantins, 89 – Cristo Rei – CEP: 80050-430 41 3360-2600 www.mandriva.com.br ✔ ✔ ✔ ✔

Rio de JaneiroNSI Training Rio de Janeiro Rua Araújo Porto Alegre, 71, 4ºandar Centro – CEP: 20030-012 21 2220-7055 www.nsi.com.br ✔ ✔

Open IT Rio de Janeiro Rua do Mercado, 34, Sl, 402 – Centro – CEP: 20010-120 21 2508-9103 www.openit.com.br ✔ ✔

Unipi Tecnologias Campos dos Goytacazes

Av. Alberto Torres, 303, 1ºandar - Centro – CEP 28035-581 22 2725-1041 www.unipi.com.br ✔ ✔ ✔ ✔

Rio Grande do SulSolis Lajeado Rua Comandante Wagner, 12 – São Cris-

tóvão – CEP: 95900-00051 3714-6653 www.solis.coop.br ✔ ✔ ✔ ✔ ✔

DualCon Novo Hamburgo Rua Joaquim Pedro Soares, 1099, Sl. 305 – Centro 51 3593-5437 www.dualcon.com.br ✔ ✔ ✔ ✔

Datarecover Porto Alegre Av. Carlos Gomes, 403, Sala 908, Centro Comer-cial Atrium Center – Bela Vista – CEP: 90480-003

51 3018-1200 www.datarecover.com.br ✔ ✔

LM2 Consulting Porto Alegre Rua Germano Petersen Junior, 101-Sl 202 – Hi-gienópolis – CEP: 90540-140

51 3018-1007 www.lm2.com.br ✔ ✔ ✔

Lnx-IT Informação e Tecnologia Porto Alegre Av. Venâncio Aires, 1137 – Rio Branco – CEP: 90.040.193 51 3331-1446 www.lnx-it.inf.br ✔ ✔ ✔ ✔

Plugin Porto Alegre Av. Júlio de Castilhos, 132, 11º andar Centro – CEP: 90030-130 51 4003-1001 www.plugin.com.br ✔ ✔ ✔

TeHospedo Porto Alegre Rua dos Andradas, 1234/610 – Centro – CEP: 90020-008 51 3286-3799 www.tehospedo.com.br ✔ ✔

São PauloWs Host Arthur Nogueira Rua Jerere, 36 – Vista Alegre – CEP: 13280-000 19 3846-1137 www.wshost.com.br ✔ ✔ ✔

DigiVoice Barueri Al. Juruá, 159, Térreo – Alphaville – CEP: 06455-010 11 4195-2557 www.digivoice.com.br ✔ ✔ ✔ ✔ ✔

Dextra Sistemas Campinas Rua Antônio Paioli, 320 – Pq. das Uni-versidades – CEP: 13086-045

19 3256-6722 www.dextra.com.br ✔ ✔ ✔

Insigne Free Software do Brasil Campinas Av. Andrades Neves, 1579 – Castelo – CEP: 13070-001 19 3213-2100 www.insignesoftware.com ✔ ✔ ✔

Microcamp Campinas Av. Thomaz Alves, 20 – Centro – CEP: 13010-160 19 3236-1915 www.microcamp.com.br ✔ ✔

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia, 500 - 06350-080 11 3213-6388 www.pc2consultoria.com ✔ ✔

Savant Tecnologia Diadema Av. Senador Vitorino Freire, 465 – CEP: 09910-550 11 5034-4199 www.savant.com.br ✔ ✔ ✔ ✔

Epopéia Informática Marília Rua Goiás, 392 – Bairro Cascata – CEP 17509-140 14 3413-1137 www.epopeia.com.br ✔

Redentor Osasco Rua Costante Piovan, 150 – Jd. Três Mon-tanhas – CEP: 06263-270

11 2106-9392 www.redentor.ind.br ✔

Go-Global Santana de Parnaíba Av. Yojiro Takaoca, 4384, Ed. Shopping Ser-vice, Cj. 1013 – CEP: 06541-038

11 2173-4211 www.go-global.com.br ✔ ✔ ✔

AW2NET Santo André Rua Edson Soares, 59 – CEP: 09760-350 11 4990-0065 www.aw2net.com.br ✔ ✔ ✔

Async Open Source São Carlos Rua Orlando Damiano, 2212 – CEP 13560-450 16 3376-0125 www.async.com.br ✔ ✔ ✔

Delix Internet São José do Rio Preto

Rua Voluntário de São Paulo, 3066 9º – Centro – CEP: 15015-909

11 4062-9889 www.delixhosting.com.br ✔ ✔ ✔

SE

RV

IÇO

S O maior diretório de empresas que oferecem produtos, soluções e serviços em Linux e Software Livre, organizado por Estado. Sentiu falta do nome de sua empresa aqui? Entre em contato com a gente: 11 2161-5400 ou [email protected]

http://supertuxbr.blogspot.com

Page 79: 30 - Gestao e Produtividade_mai_2007

79

Empresa Cidade Endereço Telefone Web 1 2 3 4 5 6

São Paulo (continuação)4Linux São Paulo Rua Teixeira da Silva, 660, 6º andar – CEP: 04002-031 11 2125-4747 www.4linux.com.br ✔ ✔

A Casa do Linux São Paulo Al. Jaú, 490 – Jd. Paulista – CEP 01420-000 11 3549-5151 www.acasadolinux.com.br ✔ ✔ ✔

Accenture do Brasil Ltda. São Paulo Rua Alexandre Dumas, 2051 – Cháca-ra Santo Antônio – CEP: 04717-004

11 5188-3000 www.accenture.com.br ✔ ✔ ✔

ACR Informática São Paulo Rua Lincoln de Albuquerque, 65 –Perdizes – CEP: 05004-010 11 3873-1515 www.acrinformatica.com.br ✔ ✔

Agit Informática São Paulo Rua Major Quedinho, 111, 5º andar, Cj. 508 – Centro – CEP: 01050-030

11 3255-4945 www.agit.com.br ✔ ✔ ✔

Altbit - Informática Co-mércio e Serviços LTDA.

São Paulo Av. Francisco Matarazzo, 229, Cj. 57 – Água Branca – CEP 05001-000

11 3879-9390 www.altbit.com.br ✔ ✔ ✔ ✔

AS2M -WPC Consultoria São Paulo Av. Tiradentes, 615, Ed. Santiago, 2º an-dar Bom Retiro – CEP: 01101-010

11 3228-3709 www.wpc.com.br ✔ ✔ ✔

Big Host São Paulo Rua Dr. Miguel Couto, 58 – Centro – CEP: 01008-010 11 3033-4000 www.bighost.com.br ✔ ✔ ✔

Blanes São Paulo Rua André Ampére, 153 – 9º andar – Conj. 91 CEP: 04562-907 (próx. Av. L. C. Berrini)

11 5506-9677 www.blanes.com.br ✔ ✔ ✔ ✔ ✔

Commlogik do Brasil Ltda. São Paulo Av. das Nações Unidas, 13.797, Bloco II, 6º an-dar – Morumbi – CEP: 04794-000

11 5503-1011 www.commlogik.com.br ✔ ✔ ✔ ✔ ✔

Computer Consulting Pro-jeto e Consultoria Ltda.

São Paulo Rua Vergueiro, 6455, Cj. 06 – Alto do Ipiranga – CEP: 04273-100 11 5062-3927 www.computerconsulting.com.br ✔ ✔ ✔ ✔

Consist Consultoria, Siste-mas e Representações Ltda.

São Paulo Av. das Nações Unidas, 20.727 – CEP: 04795-100 11 5693-7210 www.consist.com.br ✔ ✔ ✔ ✔

Domínio Tecnologia São Paulo Rua das Carnaubeiras, 98 – Metrô Con-ceição – CEP: 04343-080

11 5017-0040 www.dominiotecnologia.com.br ✔ ✔

EDS do Brasil São Paulo Av. Pres. Juscelino Kubistcheck, 1830 Torre 4 - 5º andar 11 3707-4100 www.eds.com ✔ ✔ ✔

Ética Tecnologia São Paulo Rua Nova York, 945 – Brooklin – CEP:04560-002 11 5093-3025 www.etica.net ✔ ✔ ✔ ✔

Getronics ICT Solu-tions and Services

São Paulo Rua Verbo Divino, 1207 – CEP: 04719-002 11 5187-2700 www.getronics.com/br ✔ ✔ ✔

Hewlett-Packard Brasil Ltda. São Paulo Av. das Nações Unidas, 12.901, 25º andar – CEP: 04578-000 11 5502-5000 www.hp.com.br ✔ ✔ ✔ ✔ ✔

IBM Brasil Ltda. São Paulo Rua Tutóia, 1157 – CEP: 04007-900 0800-7074 837 www.br.ibm.com ✔ ✔ ✔ ✔

iFractal São Paulo Rua Fiação da Saúde, 145, Conj. 66 – Saúde – CEP: 04144-020 11 5078-6618 www.ifractal.com.br ✔ ✔ ✔

Integral São Paulo Rua Dr. Gentil Leite Martins, 295, 2º an-dar Jd. Prudência – CEP: 04648-001

11 5545-2600 www.integral.com.br ✔ ✔

Itautec S.A. São Paulo Rua Santa Catarina, 1 – Tatuapé – CEP: 03086-025 11 6097-3000 www.itautec.com.br ✔ ✔ ✔ ✔ ✔

Linux Komputer Informática São Paulo Av. Dr. Lino de Moraes Leme, 185 – CEP: 04360-001 11 5034-4191 www.komputer.com.br ✔ ✔ ✔ ✔

Linux Mall São Paulo Rua Machado Bittencourt, 190, Cj. 2087 – CEP: 04044-001 11 5087-9441 www.linuxmall.com.br ✔ ✔ ✔

Livraria Tempo Real São Paulo Al. Santos, 1202 – Cerqueira César – CEP: 01418-100 11 3266-2988 www.temporeal.com.br ✔ ✔ ✔

Locasite Internet Service São Paulo Av. Brigadeiro Luiz Antonio, 2482, 3º an-dar – Centro – CEP: 01402-000

11 2121-4555 www.locasite.com.br ✔ ✔ ✔

Microsiga São Paulo Av. Braz Leme, 1631 – CEP: 02511-000 11 3981-7200 www.microsiga.com.br ✔ ✔ ✔

Novatec Editora Ltda. São Paulo Rua Luis Antonio dos Santos, 110 – Santana – 02460-000 11 6979-0071 www.novateceditora.com.br ✔

Novell América Latina São Paulo Rua Funchal, 418 – Vila Olímpia 11 3345-3900 www.novell.com/brasil ✔ ✔ ✔

Oracle do Brasil Sistemas Ltda. São Paulo Av. Alfredo Egídio de Souza Aranha, 100 – Bloco B – 5º andar – CEP: 04726-170

11 5189-3000 www.oracle.com.br ✔ ✔

Proelbra Tecnolo-gia Eletrônica Ltda.

São Paulo Av. Rouxinol, 1.041, Cj. 204, 2º andar Moema – CEP: 04516-001 11 5052- 8044 www.proelbra.com.br ✔ ✔ ✔

Provider São Paulo Av. Cardoso de Melo, 1450, 6º an-dar – Vila Olímpia – CEP: 04548-005

11 2165-6500 www.e-provider.com.br ✔ ✔ ✔

Red Hat Brasil São Paulo Av. Angélica, 2503, 8º andar Consolação – CEP: 01227-200

11 3124-6000 www.redhat.com.br ✔ ✔

Samurai Projetos Especiais São Paulo Rua Barão do Triunfo, 550, 6º andar – CEP: 04602-002 11 5097-3014 www.samurai.com.br ✔ ✔ ✔

SAP Brasil São Paulo Av. das Nações Unidas, 11.541, 16º andar – CEP: 04578-000 11 5503-2400 www.sap.com.br ✔ ✔ ✔

Simples Consultoria São Paulo Rua Mourato Coelho, 299, Cj. 02 Pinheiros – CEP: 05417-010 11 3898-2121 www.simplesconsultoria.com.br ✔ ✔ ✔

Smart Solutions São Paulo Av. Jabaquara, 2940 cj 56 e 57 11 5052-5958 www.smart-tec.com.br ✔ ✔ ✔ ✔

Snap IT São Paulo Rua João Gomes Junior, 131 – Jd. Bonfiglioli – CEP: 05299-000 11 3731-8008 www.snapit.com.br ✔ ✔ ✔

Stefanini IT Solutions São Paulo Av. Brig. Faria Lima, 1355, 19º – Pinheiros – CEP: 01452-919 11 3039-2000 www.stefanini.com.br ✔ ✔ ✔

Sun Microsystems São Paulo Rua Alexandre Dumas, 2016 – CEP: 04717-004 11 5187-2100 www.sun.com.br ✔ ✔ ✔ ✔

Sybase Brasil São Paulo Av. Juscelino Kubitschek, 510, 9º an-dar Itaim Bibi – CEP: 04543-000

11 3046-7388 www.sybase.com.br ✔ ✔

The Source São Paulo Rua Marquês de Abrantes, 203 – Chá-cara Tatuapé – CEP: 03060-020

11 6698-5090 www.thesource.com.br ✔ ✔ ✔

Unisys Brasil Ltda. São Paulo R. Alexandre Dumas 1658 – 6º, 7º e 8º anda-res – Chácara Santo Antônio – CEP: 04717-004

11 3305-7000 www.unisys.com.br ✔ ✔ ✔ ✔

Utah São Paulo Av. Paulista, 925, 13º andar – Cerquei-ra César – CEP: 01311-916

11 3145-5888 www.utah.com.br ✔ ✔ ✔

Visuelles São Paulo Rua Eng. Domicio Diele Pacheco e Sil-va, 585 – Interlagos – CEP 04455-310

11 5614-1010 www.visuelles.com.br ✔ ✔ ✔

Webnow São Paulo Av. Nações Unidas, 12.995, 10º andar, Ed. Plaza Cen-tenário – Chácara Itaim – CEP: 04578-000

11 5503-6510 www.webnow.com.br ✔ ✔ ✔

WRL Informática Ltda. São Paulo Rua Santa Ifigênia, 211/213, Box 02– Centro – CEP: 01207-001 11 3362-1334 www.wrl.com.br ✔ ✔ ✔

Systech Taquaritinga Rua São José, 1126 – Centro - Cai-xa Postal 71 – CEP: 15.900-000

16 3252-7308 www.systech-ltd.com.br ✔ ✔ ✔

| SERVIÇOSLinux.local

Linux Magazine #30 | Maio de 2007http://supertuxbr.blogspot.com

Page 80: 30 - Gestao e Produtividade_mai_2007

80 http://www.linuxmagazine.com.br

Calendário de eventosEvento Data Local Website

Open Source Business Conference 22 e 23 de maio San Francisco, EUA osbc.com

IV Encontro de Software Livre do Amazonas 25 e 26 de maio Manaus, AM www.eslam.comunidadesol.org

Linux Tag 2007 30 de maio a 2 de junho Berlim, Alemanha www.linuxtag.org

3ª Semana do Software Livre da Uni-versidade Federal do Ceará

6 a 9 de junho Fortaleza, CE www.sesol.ufc.br

OSS 2007 11 a 14 de junho Limerick, Irlanda oss2007.dti.unimi.it

Linux Day 23 de junho São Paulo, SP www.fiti.com.br

Latinoware 2007 13 e 14 de novembro Foz do Iguaçu, PR www.latinoware.org

SE

RV

IÇO

S

Índice de anunciantes

Empresa Pág.

Celepar 15

Dextra 39

Easy 43

Fracto 02

Intel 84

Itautec 07

Linux New Media 11

Linux Park 83

Linux Solutions 77

Linux World 81

LPI 55

Microsoft 09

Plugin 13

Xandros 29

http://supertuxbr.blogspot.com

Page 81: 30 - Gestao e Produtividade_mai_2007

����������������

�����������������������������������������������������������������

�������������������������������

������ �������������������� �����������������

������ ����������������������� ����������������������

������ �������������������� �����������������������

�������������� �������������������� ����������������������

�������� ����������������������� �����������������������

���������� ������������������� �����������������������

������� ������������������������ ������������������������

�������� ������������������������������ ���������������������

���������������������������http://supertuxbr.blogspot.com

Page 82: 30 - Gestao e Produtividade_mai_2007

82

Na Linux Magazine #31…

Na EasyLinux #09…

DESTAQUE

GroupwareUm groupware é um sistema baseado em computador que auxilia grupos de pessoas envolvidas em tarefas ou objetivos comuns, e que provê interface para um ambiente compartilhado. O principal mote para a adoção do groupware nas empresas é a sua capacidade de tornar o trabalho em grupo mais eficiente, diminuir o tempo gasto nas atividades conjuntas e diminuir o custo de realização das atividades que devam ter mais de um executante. O Linux e o Código Aberto marcam pontos nesse mercado competitivo, mostrando que os sistemas livres sabem entrar no ritmo da sua empresa quando a palavra-chave é colaborar, inclusive interagin-do com soluções proprietárias ou transferindo informações, de maneira segura, via Internet. ■

DESTAQUE

Games no LinuxNem só de trabalho duro vive o Linux. O sistema do Pingüim também surpreende quando o tema é games e faz rodar alguns dos jogos mais emocionantes da atualidade, feitos nos mol-des dos sistemas proprietários. Como isso é possível? Através do Cedega – software pago – ou do virtuoso Wine. Com algumas configurações e entradas básicas na linha de comando, você vai aprender a instalar jogos como o famoso City of Heroes, den-tre outros. Não perca a série de artigos completa, com passo-a-passo, screenshots e soluções, especialmente preparada para a sua diversão! ■

LABORATÓRIO

Tudo sob controleVocê quer saber qual o uso que seu computador faz da CPU, me-mória e outros re-cursos, além de verificar o recebi-mento de emails? Delegue essa tarefa ao GKrellM, um programa enxuto, que oferece plu-gins adicionais, es-pecialista em mo-nitorar o sistema na forma de eficientes gráficos. ■

http://www.linuxmagazine.com.br

ANÁLISE

Amigo do pingüimSoftware profissional dedicado a análises avançadas, tanto lineares quanto não-lineares, de processos e projetos de Engenharia, o Abaqus é famoso em todo mundo como sinônimo de ferramenta técnica de alta produtividade. O que pouca gente sabe, todavia, é que o Abaqus é compatível com sistemas Linux de longa data... e poderíamos até dizer que eles são amigos e trabalham juntos, colaborando em projetos como o desenvolvimento de modelos de carros de luxo para a Audi alemã!. ■

SYSADMIN

Computador virtualVirtualização é uma palavra que vem ganhando im-portância nos últimos dois anos, a ponto de ser um dos pivôs do inusitado acordo entre Novell e Micro-soft. A economia de espaço, a segurança operacional e as facilidades de administração são inegáveis. Um produto de código aberto, o VirtualBox, virtualizador muito parecido ao Vmware, traz o que há de melhor em sistemas virtualizados, inclusive no Ubuntu, a custo zero. ■

PR

EV

IEW

http://supertuxbr.blogspot.com

Page 83: 30 - Gestao e Produtividade_mai_2007

LM30_capa.indd 2 27.04.07 15:37:23

http://supertuxbr.blogspot.com

Page 84: 30 - Gestao e Produtividade_mai_2007

#30 05/07

R$ 13,90 € 7,50

97

71

80

69

42

00

9

00

03

0

A REVISTA DO PROFISSIONAL DE TI

Linu

x M

agazin

e

# 30 # 30

M

aio

200

7

05/2007

WWW.LINUXMAGAZINE.COM.BR

ENTREVISTA p.22O compromisso da Fujitsu com os padrões abertos

FISL 2007 p.18Usuários, desenvolvedores, empresas e Governo juntos

CEZAR TAURION p.28A liderança do Linux nos sistemas embarcados

» Compiere: Implementando a ferramenta de gestão livre do momento p.30

» OpenCRX: toda a força do Java em forma de CRM p.34

» Desempenho e adaptalidade com o SugarCRM p.38

» Tendências de mercado: por que um ERP livre? p.42

GESTÃO E PRODUTIVIDADE p.29

VEJA TAMBÉM NESTA EDIÇÃO:» As novidades do Oracle OpenWorld p.26» Preparação para a LPI: Aula 5 p.48» Criação de imagens a partir de texto com o Graphviz p.60» Programação: Os poderes matemáticos do diff p.70» Desktop nacional: O insigne Insigne Linux p.45

CLONAGEM EFICIENTE p.64

Backup precisa ser trabalhoso e difícil? O Mondo mostra que não!

POSTGRESQL p.55

Como montar um sistema prático para autenticação local de usuários

GE

STÃ

O E

PR

OD

UTIV

IDA

DE

CO

MP

IER

E

O

PE

NC

RX

SU

GA

RC

RM

PO

STG

RE

SQ

L

DIFF

G

RA

PH

VIZ

M

ON

DO

PO

WE

RS

HE

LL

O CÓDIGO ABERTO INVADE O MUNDO DOS ERP/CRM COM BAIXO CUSTO, CONSULTORIAS BEM ESTABELECIDAS E ALTO PODER DE CUSTOMIZAÇÃO

O blog do Open Source Software Lab da Microsoft está de cara nova.

Quem quer saber mais sobre open source não pode fi car de fora do Porta 25. Agora na versão 2.0, o site está

ainda mais interativo e aberto à sua participação. Ele tem novas funcionalidades e a navegação está mais

completa, com mais espaço para as iniciativas do mercado brasileiro. Entre agora mesmo: www.porta25.com.br

© 2007 Microsoft Corporation. Todos os direitos reservados. Microsoft e “Seu potencial. Nossa Inspiração.” são marcas comerciais, registradas ou não, da Microsoft Corporation nos Estados Unidos e/ou em outros países.

An. Porta 25 Less 1 4/13/07 20:16:24

ex

em

pla

r d

e

Ass

inan

teve

nd

a

pro

ibid

a

LM30_capa.indd 1 27.04.07 15:37:15

http://supertuxbr.blogspot.com