linux magazine # 70 ti virtual · relembre alguns editores de como ganhar dinheiro texto antigos...

32
GRÁTIS: CD COM XCP Xen Cloud Plataform versão 0.5, instalável, 64 bits. A REVISTA DO PROFISSIONAL DE TI Linux Magazine # 70 09/2010 WWW.LINUXMAGAZINE.COM.BR # 70 Setembro 2010 TI VIRTUAL » Tolerância à falhas com o Xen 4 e Remus p.32 » Exame minucioso p.36 » Virtualização com Ganeti e Xen p.41 » VirtualBox com LDAP. p.44 » Ambientes virtuais com Open Source. p.48 » Instalação e configuração do XCP. p.50 MADDOG p.28 Relembre alguns editores de texto antigos que batem um bolão. NEGÓCIOS p.30 Como ganhar dinheiro com Open Source. DADOS CONFIÁVEIS p.21 Você tem certeza de que seus repositórios estão seguros? REDES: VOIP p.60 Utilize o FreeSWITCH, plataforma de telefonia poderosa e versátil. SEGURANÇA: POLICYKIT p.66 Abordagem flexível para atribuição de privilégios administrativos. VEJA TAMBÉM NESTA EDIÇÃO: » Otimização do fluxo de trabalho com BPEL p.72 » Sistema de arquivos aufs2 p.56 » Restauração de configurações p.53 » Bibliotecas compartilhadas em C p.22 TI VIRTUAL VIRTUALIZAÇÃO XEN GANETI VIRTUALBOX LDAP XEN CLOUD PLATFORM VOIP POLICYKIT FREESWITCH AUFS2 INFRAESTRUTURA DE CLOUD E AMBIENTES VIRTUALIZADOS SÃO A NOVA REALIDADE DA TECNOLOGIA. p. 31 GRÁTIS

Upload: vanmien

Post on 21-Nov-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

GRÁTIS: CD COM XCPXen Cloud Plataform

versão 0.5, instalável, 64 bits.

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36

#44 07/08

R$ 13,90 € 7,50

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWW.LINUXMAGAZINE.COM.BR

CASE ALFRESCO p.26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p.28Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008

CEZAR TAURION p.34O Código Aberto como incentivo à inovação

GOVERNANÇA COM

» O que dizem os profissionais certificados p.24

» Cobit, CMMI, ITIL. Quais as melhores práticas? p.36

» ITIL na prática p.39

» Novidades do ITIL v3. p.44

SEGURANÇA: DNSSEC p.69

Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seupreço vale a pena?

REDES: IPV6 p.64

Conheça as vantagens da nova versão do Internet Protocol, e veja por queé difícil adotá-la

VEJA TAMBÉM NESTA EDIÇÃO:

» Relatórios do Squid com o SARG p.60

» Java, Ruby e Rails: conheça o JRuby on Rails p.74

» Benchmarks do GCC 4.3? p.58

» Becape de bancos de dados com a Libferris p.46

» LPI nível 2: Servidores NIS e DHCP p.52

A REVISTA DO PROFISSIONAL DE TI

Linu

x M

agazin

e

# 7009/2010

WWW.LINUXMAGAZINE.COM.BR

# 70 Setembro 2010

TI VIRTUAL» Tolerância à falhas com o Xen 4 e Remus p.32» Exame minucioso p.36» Virtualização com Ganeti e Xen p.41» VirtualBox com LDAP. p.44» Ambientes virtuais com Open Source. p.48» Instalação e configuração do XCP. p.50

MADDOG p.28Relembre alguns editores de texto antigos que batem um bolão.

NEGÓCIOS p.30Como ganhar dinheiro com Open Source.

DADOS CONFIÁVEIS p.21Você tem certeza de que seus repositórios estão seguros?

REDES: VOIP p.60Utilize o FreeSWITCH, plataforma de telefonia poderosa e versátil.

SEGURANÇA: POLICYKIT p.66Abordagem flexível para atribuição de privilégios administrativos.

VEJA TAMBÉM NESTA EDIÇÃO:» Otimização do fluxo de trabalho com BPEL p.72» Sistema de arquivos aufs2 p.56» Restauração de configurações p.53» Bibliotecas compartilhadas em C p.22

TI VIRTUAL VIRTUALIZAÇÃO

XEN

GANETI

VIRTUALBOX LDAP

XEN CLOUD PLATFORM

VOIP

POLICYKIT FREESW

ITCH AUFS2

INFRAESTRUTURA DE CLOUD E AMBIENTES VIRTUALIZADOS SÃO A NOVA REALIDADE DA TECNOLOGIA. p. 31

GRÁTIS

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

CAPAFuturo virtualizado 31

Opróximopassodatecnologia,écertamente,ousointeligentedesoluçõesdevirtualização.

Tolerância a falhas com o Xen 4 e Remus 32

Anovaversão4.0doXenéricaemrecursosporsisóeagoraseuniuaoRemusparaumaintegraçãotoleranteafalhascomaltadisponibilidade.

Exame minucioso 36

Alibguestfsofereceumconjuntopoderosodeferramentasparaexaminarimagensdediscosemprofundidade.

Virtualização com Ganeti e Xen 41

AprendacomoutilizaropoderosoGaneti,queemconjuntocomoXenirálheauxiliarnogerenciamentodemáquinasvirtuaiscomaltadisponibilidade.

VirtualBox com LDAP 44

Administradoresespecializadosemvirtualizaçãocentralizadadedesktop,hámuitotemposeaborrecemcomafaltademecanismosdeautenticaçãosofisticadosnoVirtualBox.Onovoprojetovrdp-ldapofereceagoraautenticaçãobaseadaemLDAPparainstânciasdoVirtualBoxnarede.

Ambientes virtuais com Open Source 48

ÉpossívelmantersoluçõesrobustasparavirtualizaçãoutilizandoOpenSource.Conheçaasferramentascomasquaisvocêpodesebeneficiar.

ÍND

ICE

7

TUTORIALEscrita invisível 56

Obtenhacapacidadedeescritaemdispositivossomenteleituracomosistemadearquivosaufs.

REDESFale com tranquilidade 60

OFreeSWITCHéumaplataformadetelefoniapoderosaeversátilquepodeirdeumsoftphoneatéumPBX.

SEGURANÇAPoderes ao alcance das mãos 66

SeoLinuxfecharasportasparavocê,oprimeiroimpulsopodeserrecorreraocomandosuousudo.OPolicyKitofereceumaabordagemmaisflexívelparaatribuirprivilégiosadministrativos.

PROGRAMAÇÃOProcessos redesenhados 72

ConstruaferramentasparagerenciamentodofluxodetrabalhocomBPEL.

SERVIÇOSEditorial 04

Emails 10

Linux.local 78

Eventos 80

Preview 82

Linux Magazine #70 | Setembro de 2010

| ÍNDICELinux Magazine 70

COLUNASKlaus Knopper 12

Charly Kühnast 14

Zack Brown 16

Augusto Campos 21

Kurt Seifried 18

Alexandre Borges 22

NOTÍCIASGeral 24➧�Androidaceitacomandosdevozeredigetextosditados

➧�Ok9mailparaAndroidpossuisuporteaoOpenPGP

CORPORATENotícias 26➧�McAfeecompraempresaespecializadaemsegurançamobile

➧�LinkedIncompraempresaparamelhorarfiltrosdeinformações

➧�AmazoncomeçaavendernovoKindleapartirdeUS$139

Coluna: Jon “maddog” Hall 28

Coluna: Cezar Taurion 30

CDXen para todos 50

Opróximopassodatecnologia,écertamente,ousointeligentedesoluçõesdevirtualização.

ANÁLISEDe volta ao começo 52

Deixequeseususuáriossedivirtamutilizandoosistemaerestaureasconfiguraçõesoriginaisnopróximologinaoseuestadooriginal.

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

ED

ITO

RIA

L

Expediente editorialDiretor Geral RafaelPeregrinodaSilva [email protected]

Editora FláviaJobstraibizer [email protected]

Editora de Arte PaolaViveiros [email protected]

Redator MauroBaraldi [email protected]

Colaboradores AlexandreBorges,AugustoCampos,TimSchürmann, MichaelKromer,MichaelL.Collins,KurtSeifried, CezarTaurion,MarcoSinhorelieSérgioPelissariaJunior.

Tradução DianaRicciAranha

Revisão AnaCarolinaHunger

Editores internacionais UliBantle,AndreasBohle,Jens-ChristophBrendel, Hans-GeorgEßer,MarkusFeilner,OliverFrommel, MarcelHilzinger,MathiasHuber,AnikaKehrer, KristianKißling,JanKleinert,DanielKottmair, ThomasLeichtenstern,JörgLuther,NilsMagnus.

Anúncios: RafaelPeregrinodaSilva(Brasil) [email protected] Tel.:+55(0)113675-2600

PennyWilby(ReinoUnidoeIrlanda) [email protected]

AmyPhalen(AméricadoNorte) [email protected]

HubertWiest(Outrospaíses) [email protected]

Diretor de operações ClaudioBazzoli [email protected]

Na Internet: www.linuxmagazine.com.br–Brasil www.linux-magazin.de–Alemanha www.linux-magazine.com–PortalMundial www.linuxmagazine.com.au–Austrália www.linux-magazine.es–Espanha www.linux-magazine.pl–Polônia www.linux-magazine.co.uk–ReinoUnido www.linuxpromagazine.com–AméricadoNorte

Apesardetodososcuidadospossíveisteremsidotomadosduranteaproduçãodestarevista,aeditoranãoéresponsávelporeventuais imprecisõesnelacontidasouporconsequên-ciasqueadvenhamdeseuuso.Autilizaçãodequalquerma-terialdarevistaocorreporcontaeriscodoleitor.

Nenhummaterial pode ser reproduzido emqualquermeio, emparteounotodo,sempermissãoexpressadaeditora.Assume-sequequalquercorrespondênciarecebida,talcomocartas,emails,faxes,fotografias,artigosedesenhos,sejamfornecidosparapu-blicaçãoou licenciamentoaterceirosdeformamundialnão-ex-clusivapelaLinuxNewMediadoBrasil,amenosqueexplicita-menteindicado.

LinuxéumamarcaregistradadeLinusTorvalds.

LinuxMagazineépublicadamensalmentepor:

LinuxNewMediadoBrasilEditoraLtda. RuaSãoBento,500 Conj.802–Sé 01010-001–SãoPaulo–SP–Brasil Tel.:+55(0)113675-2600

DireitosAutoraiseMarcasRegistradas©2004-2010:LinuxNewMediadoBrasilEditoraLtda.ImpressãoeAcabamento:RRDonnelleyDistribuídaemtodoopaíspelaDinapS.A.,DistribuidoraNacionaldePublicações,SãoPaulo.

Atendimento Assinante

www.linuxnewmedia.com.br/atendimentoSãoPaulo: +55(0)1135129460RiodeJaneiro: +55(0)2135120888BeloHorizonte:+55(0)3135161280

ISSN 1806-9428 Impresso no Brasil

Quando se divulga o Software Livre e de Código Aberto (SL/CA), é comum enaltecermos as suas vantagens enquanto tecnologia: SL/CA estimula a competição, promove inovação mais rápida, fornece soluções mais flexíveis, confere controle e independência ao usuário – seja ele doméstico ou corporativo –, é, via de regra, mais estável e seguro, e premia a criação e a capacitação de mão de obra local. Essas vantagens são válidas, entretanto, senão para todas, no mínimo para a grande maioria das atividades de criação colaborativas. Há alguns anos, um comparativo entre a Wikipédia e a Encyclopædia Brittani­ca, mostrou que as informações disponíveis em ambas possuem um nível similar de precisão, mas a velocidade em que erros são reparados na primeira é uma ordem de grandeza superior à rapidez com que correções são realizadas na segunda, desenvolvida usando o método tradicional de pesquisa e revisão de informações. Novamente, uma comparação de vantagens e desvantagens. Uma outra comparação pode ser feita, por exemplo, entre o Google Maps e o projeto Open­StreetMap: apesar da enorme quantidade de investimento da gigante de buscas, o nível de acurácia dos mapas do projeto OpenStreetMap é similar ao do produto do Google.

Mas o projeto que originou este editorial foi o Grameen Bank, uma empresa do mercado financeiro especializada em microcrédito para a população de mais baixa renda de Bangladesh, a Nação Ben­gali, fincada entre a Índia e o Golfo de Bengala. Em 2006, o Prêmio Nobel da Paz foi atribuído a Muhammad Yunus, fundador do Gra­meen Bank, por seus esforços para criar desenvolvimento econômico e social a partir de um trabalho junto às classes menos favorecidas da população do seu país. O professor Yunus criou um novo con­ceito de banco, que subverte totalmente o modelo tradicional de instituição financeira, segundo o qual só se oferece crédito a quem pode comprovar a possibilidade de pagamento. No Grameen Bank, ao contrário, quanto menos se tem, mais elegível a um empréstimo se é. Em seu último ano fiscal, o Grameen Bank emprestou mais de meio bilhão de dólares para a população de baixa renda, contabili­zando uma inadimplência de menos de 3%. O banco não tem ad­vogados. O banco não tem cláusulas punitivas em seus contratos de empréstimo. É uma “empresa social”. A única restrição do contrato em caso de inadimplência é a inegibilidade para se tomar um novo empréstimo. Quem quiser saber mais, vale a pena assistir o vídeo (em inglês) disponível em: http://migre.me/15lV0

O desenvolvimento de esforços colaborativos como o SL/CA, a Wikipedia, o OpenStreetMap, o Grameen Bank e a série de empre­sas sociais criadas pelo professor Yunus em Bangladesh, têm como base o altruísmo, conceito introduzido em 1830 por Augusto Comte para descrever uma das mais nobres disposições humanas: a inclina­ção inata do Homem a dedicar­se ao bem estar do próximo. Maior vantagem do que essa não há! n

Rafael Peregrino da SilvaDiretor de Redação..

Altruísmo produtivo

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

Emails para o editor

Permissão de Escrita

Escreva para nós! ✉ Sempre queremos sua opinião sobre a Linux Magazine e nossos artigos. Envie seus emails para [email protected] e compartilhe suas dúvidas, opiniões, sugestões e críticas.

Infelizmente, devido ao volume de emails, não podemos garantir que seu email seja publicado, mas é certo que ele será lido e analisado.

sanj

a gj

ener

o –

ww

w.s

xc.h

u

CA

RTA

S

Falha de impressora USB ✉Estou tentando, mais uma vez, usar uma distribuição Linux. Após tentar duas ou três distribuições diferentes, estou tendo muita dificuldade em fazer qualquer uma das distribuições reconhecer minha impressora como tendo uma conexão USB. Serial ou paralela, mas não USB. Vocês tem alguma sugestão? Obrigado. Robert Grau

RespostaHoje, impressoras USB são as menos problemáticas. Quer dizer, logica­mente, com produtos Linux amigáveis e que contém especificações in­cluídas no CUPS (Commun Unix Printing System), usado por todas as distribuições Linux.Procure por sua impressora no banco de dados do CUPS [1] para ver se ela é suportada. Se for, o CUPS achará sua impressora automaticamente quando ela for conectada e a mostrará como uma nova impressora, e então será possível instalá­la com alguns cliques. Prefira a ferramenta de confi­guração CUPS da web para isso, que é executada em seu próprio servidor web em http://localhost:631/ no seu computador.Se sua impressora não for detectada automaticamente, ou ao menos listada na ferramenta de configuração web, mesmo assim será possível instalá­la usando um arquivo ppd fornecido pelo fabricante da impressora e que vem com algumas impressoras ou que pode ser baixado do site do vendedor. A página de configuração do CUPS permite que se forneça o caminho para o arquivo ppd instalado para usá­lo como um tipo de “driver da impressora” (apesar de ele conter apenas descrições de drivers genéricos).

Algumas impressoras, especial­mente as que combinam fax e scan­ner (como a série multifuncional da HP), exigem um trabalho extra. Para essas, instale o pacote hplip.

Se nada disso funcionar, tente con­figurar a impressora com um driver de um modelo mais antigo da mes­ma marca. Às vezes, as impressoras usam o mesmo chipset interno, ela só parece diferente e tem um núme­ro de versão maior, mas ainda usa o mesmo protocolo.

Se mesmo assim você ainda não tiver sorte, devolva a impressora ainda na garantia. Se nada funcionar apesar de seus esforços, ela deve estar com defeito (de fabricação ou quebrada mesmo). Você não aceitaria uma impressora que não funcionasse no Windows; por que então aceitá­la no Linux? n

[1] CUPS: http://www.openprinting.org

24

NO

TÍC

IAS

http://www.linuxmagazine.com.br

➧�Android aceita comandos de voz e redige textos ditados

O Google anunciou lançou a nova versão do aplicativo para o Android Voice Search (google.com/mobile/voice-actions). A nova versão traz o recurso “Voice Actions”, que amplia o número de comandos que podem ser dados com a voz, como pedir para abrir o mapa em um local determinado ou até ditar um email completo.

São 12 comandos novos, incluindo fazer ligações para qualquer contato na agen­da, busca de lugares em mapas envio de mensagens de texto – com o texto sendo ditado para o telefone. “Esses comandos se somam à busca no Google por voz que já existia anteriormente e é responsável

por um quarto das buscas a partir do Android”, conta o brasileiro Hugo Barra, diretor da divisão de dispositivos móveis da Google.

O aplicativo, porém, não roda em qualquer Android, esclarece o blog Gadget Lab da revista Wired. Ele é com­patível somente em telefones com a versão 2.2 (Froyo), mais recente e disponível apenas nos aparelhos mais poderosos, como o recém lançado Motorola Droid 2 e o modelo de referência Nexus One. Nenhum deles é vendido no Brasil. Também entraria na lista o Droid original, que pode ser atualizado para o novo Android, e que tem uma versão GSM à venda no Brasil com o nome Milestone. Porém, ainda não há versão oficial do Android 2.2 para esse modelo, embora o usuário possa optar por versões “alternativas”. n

ParanotíciassempreatualizadasecomaopiniãodequemviveomercadodoLinuxedoSoftwareLivre,acessenossosite:www.linuxmagazine.com.br

NO

TÍC

IAS

A versão 3.0 do cliente de email para An­droid k9mail, muitas vezes chamado ape­nas de K­9 , é o primeiro a apoiar a linha de criptografia e descriptografia de e­mails via PGP e pode verificar assinaturas digitais usando o livre Android Privacy Guard (APG) OpenPGP.  Ambos estão disponíveis para download a partir do Android Market, de forma gratuita.  Além disso, o K­9 possui suporte IMAP melhor do que o cliente de e­mail original do Android.

Os desenvolvedores do k9mail imple­mentaram também outras novas funções e

melhorias. Por exemplo, os usuários podem agora escolher uma identidade de reme­tente de qualquer uma das suas contas e a interface de usuário oferece agora botões dedicados para o “arqui­vo” de mensagens e marcação como “spam”.

Mais detalhes sobre o k9mail podem ser encontrados no Rele­ase Notes e na página wiki do pro­jeto . O k9mail é lançado sob a versão 2.0 da licença Apache e está hospedado no Google Code. n

➧��O k9mail para Android possui suporte ao OpenPGPmelhorias. Por exemplo, os usuários podem agora escolher uma identidade de reme­tente de qualquer uma das suas contas e a interface de usuário oferece agora

­

ase Notes e na página wiki do pro­jeto . O k9mail é lançado sob a versão 2.0 da licença Apache e está hospedado

O k9mail para Android possui suporte ao OpenPGP

26

CO

RP

OR

ATE

http://www.linuxmagazine.com.br

➧��McAfee compra empresa especializada em segurança móvel

A McAffe anunciou a compra da TenCube, empresa especializada em segurança móvel. Com isso, a fabricante de antivírus oferecerá ferra­mentas que permitem apagar dados, bem como backup dos mesmos, bloqueio e localização de smartphones perdidos.  Os valores da tran­sação não foram divulgados.

Com a compra da TenCube – cujo principal produto leva o nome de WaveSecure – a McAfee terá um portfólio mais completo voltado para smartphones e que atenderá uma gama maior de modelos e siste­mas operacionais, entre eles o Blackberry, iPhone, Windows Mobile, Symbian, Android e aplicativos em Java.

O WaveSecure permite que os usuários possam bloquear seus dispo­sitivos remotamente, assim como realizar a gestão de dados do apare­

lho perdido, fazendo, por exemplo, um backup. Todos os telefones blo­queados pela ferramenta mostram uma mensagem permanente na tela, instruindo como devolvê­lo ao proprietário.

A TenCube é a segunda empresa de segurança para dispositivos móveis comprada pela McAfee em menos de três meses. Em maio último, a companhia comprou a TrustDigital, que desenvolve antivírus. n

➧��LinkedIn compra empresa para melhorar filtros de informações

➧��Amazon começa a vender novo Kindle a partir de US$ 139

Um dia depois de anunciar que o Kindle estava com estoques esgotados, a Amazon.com colocou à venda a nova versão do seu e­reader, menor, mais rápida e mais barata do que a anterior. O novo membro da família, que analistas esperavam ser chamado de Kindle 3, recebeu apenas o nome de Kindle.

No anúncio da Amazon, o produto é vendido como “mais fino, mais rápido e com 50% mais contraste” do que outros e­readers. Com corpo 21% menor e 15% mais leve, ele mantém seis polegadas de tela. A bateria, segundo a Amazon, dura até um mês com o wireless desligado, e as páginas são trocadas com até 20% mais rapidez.

O produto com acesso via Wi­Fi custa US$ 139. A versão com 3G sai por US$ 189. Ambos es­tão disponíveis nas cores branca e grafite e têm 4 GB de espaço de armazenamento. Jim Friedland, analista da Cowen & Co. que publicou uma nota aos clientes de sua empresa intitulada “O Kindle 3 está para ser lançado?”, afirmou que diversas pis­tas, entre as quais a notificação quanto a estoques esgotados, apontavam para a chegada da terceira geração do Kindle. n

A rede social LinkedIn anunciou sua primeira aquisição: a mSpoke, que filtra grandes quantidades de dados para en­contrar informações relevantes.

O LinkedIn afirmou que a compra deve ajudar a melho­rar os filtros de mensagens e notícias compartilhadas por usuários na rede social. A mSpoke também deve ajudar o serviço de recomendações de pessoas, empregos, etc. para membros do LinkedIn, afirmou o presidente­executivo da companhia, Jeff Weiner em entrevista. “Esta é uma de nos­sas principais prioridades. Estamos investindo um esforço considerável nisso”, disse Weiner.

Os termos do acordo não foram divulgados. Wiener afirmou que o LinkedIn tem cerca de US$ 76 milhões em caixa, arrecadados em 2008. e financiou o acordo através de seu fluxo de caixa operacional.

O LinkedIn, que gera receita por meio de anunciantes, além de um serviço premium, não divulga seus resultados trimestrais, uma vez que a empresa não tem capital aberto, mas Weiner afirmou que o crescimento na receita acelerou, e o lucro aumentou este ano. Os dois fundadores da mS­poke também entrarão para o LinkedIn. O LinkedIn ganha cerca de 10 milhões de novos usuários por dia desde abril, e totaliza 75 milhões de membros em todo o mundo. n

31LinuxMagazine#70 | Setembrode2010

CA

PA

Infraestrutura virtual

Futuro virtualizadoOpróximopassodatecnologia,écertamente,ousointeligentedesoluçõesdevirtualização.por Flávia Jobstraibizer

Micros, pequenas, médias ou grandes empresas podem fazer uso de tecnologias

de virtualização sem medo. Migrar estações de trabalho para a nuvem, manter servidores ou máquinas de uso geral virtualizadas em locais dife­rentes do local de onde são acessadas, simular sistemas operacionais diversos dentro de seu próprio computador e outros impressionantes recursos da virtualização, atualmente está ao alcance de todos.

Nesta edição da Linux Magazine, você poderá conhecer um pouco mais o mundo dos aplicativos open source disponíveis para virtualização e gerenciamento de infraestrutura em nuvem, o que poderá lhe auxi­liar na escolha do melhor aplicativo para seu próprio ambiente virtual.

Esta edição acompanha ainda um CD fantástico, contendo o XCP (Xen Cloud Platform), e um tutorial passo­a­passo nas próximas páginas irá lhe auxiliar na instalação e con­figuração de um ambiente de cloud com esta incrível ferramenta.

Ainda nesta seção, você irá en­contrar um excelente artigo sobre o Ganeti, gerenciador open source de máquinas virtuais criado pela Goo­gle. O Ganeti é capaz de gerenciar servidores virtuais na plataforma do hypervisor Xen sobre sistema ope­racional Linux em clusters de PCs comuns. Após ser instalado em uma máquina física (ou cluster) equipa­da com Linux e Xen, o gerenciador

se encarrega das tarefas de criação de discos virtuais, instalação de sis­temas operacionais, inicialização e desligamento de máquinas virtuais e ainda suporte a falhas de hardware. Não perca!

E por falar em Xen, você irá encontrar ainda nesta edição, um artigo sobre a nova versão 4.0 do Xen, que é rica em recursos por si só e agora se uniu ao Remus para uma integração tolerante a falhas com alta disponibilidade.

Em se tratando de autenticação eficiente em sistemas virtualizados, os administradores de sistemas, há muito tempo se aborrecem com a falta de mecanismos de autenticação

sofisticados no VirtualBox. Apresen­tamos novo projeto vrdp­ldap, que oferece autenticação baseada em LDAP para instâncias do Virtual­Box na rede.

E finalizando, saiba como obter capacidade de escrita em dispositi­vos somente leitura com o sistema de arquivos aufs. n

Matérias de capaTolerânciaafalhascomoXen4eRemus 32Exameminucioso 36VirtualizaçãocomGanetieXen 41VirtualBoxcomLDAP 44AmbientesvirtuaiscomOpenSource 48InstalaçãoeconfiguraçãodoXCP 50

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

RE

DE

S

VoIP com FreeSWITCH

Fale com tranquilidade

OFreeSWITCHéumaplataformadetelefoniapoderosaeversátilquepodeirdeumsoftphoneatéumPBX.por Michael S. Collins

Projetos de código aberto vêm diminuindo a barreira para que entusiastas e empresas entrem

na era da telefonia VoIP. O Asterisk PBX, por exemplo, é uma alterna­tiva de alta funcionalidade e baixo orçamento que alvoroçou o mundo de sistemas de telefonia empresarial [1]. Talvez o software mais inquie­tante de todos, no entanto, venha na forma de uma biblioteca softswitch escalonável chamada FreeSwitch.

O site do FreeSwitch [2] diz que ele pode ser usado como um “mecanismo de switching simples, um PBX, um gateway de mídia ou um servidor de mídia para hospedar aplicativos IVR”.

Com essa descrição versátil, o Fre­eSwitch apareceu em ambientes de

produção como um switch de teleco­municações, em vários cenários de negócios como um PBX, como um softphone para usuários de laptop e até mesmo como um mecanismo de roteamento de voz para o proje­to OpenSim.

Além disso, é possível empregar o FreeSwitch como um aplicativo ou usá­lo como uma biblioteca (libfre-eswitch) que pode ser embarcada em software de terceiros. Essa dupla iden­tidade é semelhante à relação entre cURL (aplicativo) e libcurl (biblioteca).

O FreeSwitch tem sido utilizado em alguns cenários exóticos; no en­tanto, os novatos nos aplicativos de telefonia irão se dar bem com o Fre­eSwitch em sua configuração padrão como um PABX SOHO. Embora os arquivos de configuração e ajustes do FreeSwitch pareçam complicados, em pouco tempo, será possível apre­ciar o poder e a flexibilidade dessa versátil ferramenta de telefonia.

Instalando o FreeSwitchNo momento, a versão estável cor­rente do FreeSwitch é a 1.0.4, que pode ser baixada do site do projeto [3] ou do repositório Subversion. Diferentemente de outros projetos, o SVN trunk é extremamente estável, portanto, é aconselhavel usar o trunk

mais recente. De qualquer modo, os desenvolvedores do FreeSWITCH facilitaram a atualização para o último trunk, mesmo que a última versão estável esteja instalada.

Existem alguns binários pré­com­pilados; porém, recomendo a com­pilação com o código fonte.

Primeiro, descompacte e instale a fonte. Neste exemplo, fiz o down­load em /usr/src e instalei a partir dos comandos:

tar zxvf freeswitch 1.0.4.tar.gzcd freeswitch 1.0.4./configuremake install

Recomendo usar os arquivos de som:

make cd-sounds-installmake cd-moh-install

O FreeSWITCH utiliza arquivos de som com taxas de sampling de 8, 16, 32 e 48kHz. Quase nenhum sistema de telefonia – de código aberto ou proprietário – faz o que o FreeSWITCH faz com chamadas com várias taxas de sampling.

A instalação leva algum tempo, por isso encadeie os comandos com o operador &&.

Quando o processo terminar, haverá uma instalação básica do FreeSWITCH. É bom que os dois

Figura 1 TeladeconfiguraçãodacontaSIPnoX-Lite.

61

| REDESFreeSWITCH

LinuxMagazine#70 | Setembrode2010

principais arquivos executáveis do FreeSWITCH estejam em bin, por isso usei symlinks:

ln -s /usr/local/freeswitch/bin/freeswitch

/usr/local/bin/freeswitchln -s /usr/local/freeswitch/bin/fs_cli /usr/local/bin/fs_cli

Para iniciar o aplicativo, digite freeswitch, e use o utilitário fs_cli para acessar a linha de comando de qualquer servidor FreeSWITCH aos quais tenha acesso, mesmo que esteja em outro servidor. Primeiramente, haverá muita informação de debug/log, mas não se preocupe com erros e avisos nesse momento.

Seu novo softswitchO primeiro comando básico é version, que mostrará a versão do FreeSWI­TCH que está sendo executada, in­cluindo a revisão SVN. O comando status mostra informações sobre sua instância do FreeSWITCH incluin­do o tempo de execução e o número de sessões ativas no momento. Outro comando básico é o help, para ajuda.

Para sair do FreeSWITCH, digite fsctl shutdown ou use o comando mais breve ... (três pontos). Se houver uma placa de som ou headsets em seu sistema, tente o seguinte:

load mod_portaudio

Após algumas linhas de debug, será exibida a mensagem +OK quando o módulo for carregado. Agora, liste os dispositivos PortAudio disponíveis em seu sistema:

pa devlist API CALL [pa(devlist)] output:0;Built-in Microphone;2;0;i1;Built-in Input;2;0;2;Built-in Output;0;2;r,o3;Logitech USB Headset;0;2;

4;Logitech USB Headset;1;0;

O i e o o estão próximos aos dis­positivos de entrada e de saída sele­cionados. Para alterar o dispositivo de entrada, utilize o comando pa indev com o número do dispositivo,

pa indev #x

onde x é o número do dispositivo de entrada. O dispositivo de saída pode ser alterado com o comando pa outdev. Na minha configuração, usarei o dispositivo 4 como saída e o 5 como entrada. Se houver os ar­quivos MOH (music on hold) ins­talados, esse comando chamará o ramal MOH e enviará o MOH ao dispositivo de saída PortAudio:

pa call 9999

Se uma música for ouvida, a cha­mada foi bem sucedida. Caso contrá­rio certifique­se de que os arquivos MOH estão corretamente instalados. Desligue com o comando pa hangup.

Para se certificar de que os dispo­sitivos de entrada e de saída estão funcionando, faça o teste:

pa call 9996

Agora, quando falar no disposi­tivo de entrada, sua voz ecoará no dispositivo de saída. O comando pa hangup terminará a ligação.

Como é possível ver, o FreeSWI­TCH e o PortAudio podem ser usados para criar um softphone simples. Dessa maneira, será possível usar qualquer codec suportado por sua instalação – e há codecs de alta qualidade disponí­veis – sem a necessidade de instalação de um cliente softphone.

Conectar um fone SIPA maneira mais comum de utilização do FreeSWITCH é com um fone SIP. O aparelho físico é normal­mente chamado de hard phone, já

o fone baseado em software é apro­priadamente chamado de softphone. Vários tipos de hard phones estão dis­poníveis. Os softphones têm versões proprietárias e FLOSS. Uma versão gratuita popular – mas sem código aberto – é o X­Lite da CounterPath [4], que está disponível para o Linux, MacOS e Windows. Mesmo que seu servidor FreeSWITCH esteja sendo executado no Linux, seus softphones podem funcionar em qualquer siste­ma operacional, contanto que sejam compatíveis com o SIP.

Para começar, baixe o X­Lite no seu sistema e faça a instalação pa­drão (a instalação do softphone no mesmo sistema que executa o Fre­eSWITCH não é recomendada; no entanto, em muitos casos, ela fun­cionará para testes).

Agora, inicie o X­Lite e abra o menu de configuração de conta SIP clicando no botão Show Menu (esse botão é a pequena flecha no topo do fone, à esquerda).

Apenas uma conta SIP está dis­ponível no X­Lite, portanto, clique nela e depois no botão Properties. Como mostra a figura 1, preencha os campos e use 1234 como senha para o ramal 1000.

Então limpe o campo Dialing plan, pois ele não é necessário com o

Figura 2 ClienteX-Literegistrado.

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

REDES | FreeSWITCH

FreeSWITCH. Agora, clique em OK, depois em Close e o fone tentará o registro. A figura 2 mostra um registro bem sucedido. Para fazer uma cha­mada de teste, digite 9999 e clique no botão verde para discar. Em alguns instantes uma música de espera será ouvida. Para fechar o FreeSWITCH, use o comando fsctl shutdown.

Destaques da configuraçãoA configuração padrão do FreeSWI­TCH possui muitos recursos. A ta-bela 1 mostra destaques Dialplan e

a tabela 2 mostra os arquivos e sub­diretórios mais importantes da con­figuração FreeSWITCH.

A instalação padrão irá criar um diretório chamado /usr/local/fre-eswitch/conf, o qual chamarei de $CONF. Todos os arquivos de con­figuração são em formato XML e podem incluir outros arquivos XML adicionalmente.

O topo dessa árvore XML é $CONF/freeswitch.xml, que contém vários arquivos XML que, por sua vez, contêm mais arquivos XML. Essa organização permite que se façam mudanças à configuração do Fre­

eSWITCH sem a necessidade de passar por um grande arquivo.

FreeSWITCH como um DaemonPara iniciar o FreeSWITCH como um daemon, use o argumento de linha de comando -nc:

freeswitch -nc

O FreeSWITCH dirá que está sendo executado em segundo pla­no e dará o ID do processo (PID). Para parar o FreeSWITCH, basta digitar freeswitch -stop no prompt do Linux. Por enquanto, deixe o FreeSWITCH sendo executado e use o comando fs_cli para conectar: aparecerá uma saudação com uma breve mensagem de boas vindas e um prompt em linha de comando e, talvez, alguma mensagem de debug na tela. Para desabilitar o debug, digite:

/log info

Isso irá restringir as mensagens de log ao nível de INFO e abaixo e evitará uma enxurrada de informa­ções de debug.

Todos os comandos do progra­ma fs_cli devem iniciar com uma barra invertida, por isso, digite /help

Tabela 1: Destaques do Dialplan

Ramais Função

1000-1019 RamaisPadrão2000-2002 AmostradeGruposdeDiscagem30xx ConferênciasdeBandaEstreita(8kHz)31xx ConferênciasdeBandaLarga(16kHz)32xx ConferênciasdeBandaUltra-Larga(32kHz)33xx ConferênciascomQualidadedeCD(48kHz)4000 RecuperaçãodeCorreiodeVoz5000 AmostradeIVR5900 CallPark5901 RecuperaçãodeCallPark9888 ConferênciaFreeSWITCH9992 AplicativodeInformação9996 TestedeEco9999 MúsicadeEspera(MOH)|

Tabela 2: Arquivos de configuração importantes

Subdiretório/Arquivo Descrição

$CONF/vars.xml Defineumnúmerodevariáveisdesistemacustomizáveis,comosenhaspadrãoelistadepreferênciadecodecs

$CONF/dialplan/default.xml AmaiorpartedoDialplanpadrãoéconfiguradaaqui

$CONF/directory/default/*.xml Usuáriosindividuaissãodefinidosaqui,e.g.,1000.xml

$CONF/sip_profiles/internal.xml Um“perfilSIP”,ouUASIPparaservirumaportaIP(normalmenteaporta5060)

$CONF/sip_profiles/external.xml| OutroUASIPquelidacomregistrosdesaídaparaprovedoresSIP(porta5080)

$CONF/autoload_configs/modules.conf.xml| MóduloscarregadosautomaticamentenainicializaçãodoFreeSWITCH

63

| REDESFreeSWITCH

LinuxMagazine#70 | Setembrode2010

para ver uma lista de comandos dis­poníveis. Tudo o mais digitado no prompt fs_cli será enviado para o servidor FreeSWITCH, com uma exceção: Os (...) não fecharão o FreeSWITCH no fs_cli; isso ape­nas encerrará o programa. Em vez de fechar o FreeSWITCH a partir do fs_cli, saia do programa e então digite o comando freeswitch stop no prompt do Linux.

Mantenha o FreeSWITCH em se­gundo plano enquanto configura um novo usuário e modifica o Dialplan.

Adicionar um usuário SIPO FreeSWITCH vem com 20 usuá­rios pré­determinados, mas se quiser adicionar mais, apenas dois passos modificam a configuração:

Adicione uma entrada de usuá­rio em $CONF/directory/default/ Modifique o Dialplan para per­mitir que o novo usuário receba chamadas

Para adicionar um novo usuário chamado Katherine com o ramal 1500, vá para $CONF/directory/default e faça uma cópia do arquivo 1000.xml:

cp 1000.xml 1500.xml

Em um editor, abra o 1500.xml, substitua 1000 por 1500 e altere o effective_caller_id_name para Kathe-rine. Seu novo arquivo deverá ficar parecido com o da listagem 1.

Agora, abra $CONF/dialplan/default.xml e localize a entrada do Dialplan (ou ramal) chamada Local_Extension. Na linha:

<condition field="destination_number" expression="^(10[01][0-9])$">

quem conhece expressões regulares irá saber que ̂ (10[01][0-9])$ significa

“corresponde a exatamente 4 dígitos – dos quais os dois primeiros são 10, o seguinte é 0 ou 1 e o último é qual­quer dígito entre 0 e 9 – e armazena o valor correspondente na variável $1”. Simplificando, corresponde a qual­quer coisa entre 1000­1019, inclusive.

Para adicionar o novo usuário Katherine ao ramal 1500, utilize o caracter pipe (|), que é um OR lógico:

<condition field="destination_number" expression="^(10[01][0-9]|1500)$">

Agora, inicie o programa fs_cli e digite reloadxml ou aperte F6. O novo ramal está pronto para o uso.

O melhor meio de testar isso é configurar um softphone (ou um aparelho padrão caso haja algum) como 1500 com o FreeSWITCH. No seu cliente X­Lite, abra as con­figurações de conta SIP e altere o nome de exibição para Katherine e os campos User name e Authorization user name para 1500 antes de salvar as alterações. O cliente exibirá regis-tering e depois Ready. Agora, é pos­sível fazer chamadas de seu próprio

ramal. Caso haja um segundo tele­fone, registre­o como 1000 e usu­o para chamar 1500.

Fora do switch LocalUma vantagem do VoIP são as liga­ções via internet gratuitas ou muito baratas. O FreeSWITCH pode ro­tear ligações de e para a internet, mesmo por trás de um dispositivo NAT. Os dispositivos NAT causam vários problemas para ligações SIP; no entanto, o FreeSWITCH é ótimo para contornar essas questões.

Em vários casos, a configuração padrão funcionará sem qualquer mu­dança. Um simples teste é chamar o servidor de conferência pública Fre­eSWITCH. A URI SIP desse servidor é sip:[email protected], e o Dialplan padrão irá conectar seu fone se chamar 9888.

Se a chamada for completada, ha­verá uma voz TTS (text­to­speach) anunciando seu nome ou número de identificação. Caso você seja a única pessoa na conferência, haverá uma gravação que o informará disso.

Para chamar a conferência com o PortAudio, digite:

Listagem 1: Novo usuário 1500.xml

01 <include>02 <user id="1500" mailbox="1500">03 <params>04 <param name="password" value="$${default_password}"/>05 <param name="vm‐password" value="1500"/>06 </params>07 <variables>08 <variable name="toll_allow" value="domestic,international,local"/>

09 <variable name="accountcode" value="1500"/>10 <variable name="user_context" value="default"/>11 <variable name="effective_caller_id_name" value="Katherine"/>

12 <variable name="effective_caller_id_number" value="1500"/>13 <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>

14 <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>

15 <variable name="callgroup" value="techsupport"/>16 </variables>17 </user>18 </include>

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

REDES | FreeSWITCH

pa call sip:[email protected]

Vários provedores oferecem ser­viços de conexão que dão acesso à PSTN (Public Switched Telephone Network) ou simples contas SIP. O FreeSWITCH usa o conceito de “gateways” para estabelecer cone­xões com esses provedores. Os ga­teways são usados para registros no provedor. Caso já possua um prove­dor SIP, use as configurações desse provedor. O wiki do FreeSWITCH oferece exemplos de configurações para alguns provedores [5]. Neste exemplo, mostrarei como configu­rar um gateway para iptel.org, que oferece contas SIP gratuitas.

Primeiramente, crie uma con­ta no site iptel.org [6] e anote seu nome de usuário e senha. Depois, crie um novo arquivo em $CONF/sip_profiles/external. Certifique­se de incluir o nome do usuário e a senha nos campos apropriados. O arquivo deve ficar parecido com o da listagem 2.

Salve o arquivo e, no prompt do FreeSWITCH, digite o comando:

sofia profile external restart reloadxml

“Sofia” é o nome da biblioteca SIP [7] usada pelo FreeSWITCH e é também o nome do comando para executar funções relativas ao SIP (digite sofia para ver a sintaxe). O comando acima instrui o Fre­eSWITCH a reiniciar o perfil exter-nal após carregar os dados XML.O comando reloadxml é opcional; po­rém, coso tenha feito mudanças nos dados XML (criando ou editando um arquivo), será preciso que essas mudanças sejam carregadas na rei­nicialização do perfil. Para verificar se seu sistema está registrado no iptel.org, digite o comando:

sofia status

Caso seu registro esteja correto, surgirá uma linha como a seguinte:

iptel gateway sip:[email protected] REGED

REGED significa que o gateway está registrado no provedor. Caso apare­

ça FAIL_WAIT, provavelmente há um problema de configuração.

O último passo para receber chamadas é a permissão no Dial­plan. A configuração padrão possui um contexto público que trata as chamadas recebidas pela internet como confiáveis.

Primeiro, é preciso permitir cha­madas ao seu novo usuário iptel.org e depois especificar onde rotear essas chamadas. Para isso, crie um novo arquivo chamado $CONF/dial-plan/public/00_inbound_iptel.xml (ou faça uma cópia do arquivo de exemplo chamado 00_inbound_did.xml). Ele deve se parecer com o da listagem 3.

Especifique seu nome de usuário iptel.org na expressão regular. Seu nome de usuário é o destination num-ber (Destination numbers – números de destino – não se restringem a ca­racteres numéricos).

A chamada é roteada para o ramal especificado nos parâmetros informa­dos ao aplicativo de transferência.

No meu caso, roteei para o ramal MOH para o teste. É possível rotear para seu fone SIP. Caso esteja regis­trado como 1000, então o destino da transferência é 1000 XML default. Salve o arquivo e vá para o prompt do FreeSWITCH e pressione F6 (ou digite reloadxml).

Para receber uma chamada na sua nova conta, será preciso que alguém faça uma ligação SIP para a sua nova URI SIP iptel.org. Em resumo, é possível testar com PortAudio. No prompt do FreeSWITCH, digite:

pa call sip:[email protected]

Se a chamada for bem sucedida, chegará ao ramal destinado.

Codecs de qualidadeChamadas telefônicas tradicionais possuem uma qualidade de som marginal e os celulares são piores.

Listagem 3: 00_inbound_iptel.xml

01 <include>02 <extension name="iptel‐inbound">03 <condition field="destination_number" expression="^(YOUR_IPTEL.ORG_USERNAME)$">

04 <action application="set" data="domain_name=$${domain}"/>05 <action application="transfer" data="9999 XML default"/>06 </condition>07 </extension>08 </include>

Listagem 2: Configuração de um gateway para uma conta SIP

01 <include>02 <gateway name="iptel"> <!‐‐ used in dialstrings ‐‐>03 <param name="username" value="YOUR_USERNAME_HERE"/>04 <param name="realm" value="iptel.org"/>05 <param name="password" value="YOUR_PASSWORD_HERE"/>06 <param name="proxy" value="sip.iptel.org"/>07 </gateway>08 </include>

65

| REDESFreeSWITCH

LinuxMagazine#70 | Setembrode2010

O FreeSWITCH oferece uma óti­ma qualidade de voz nas chamadas com codecs gratuitos e de código aberto. O codec de código aberto CELT [8] possui uma ótima qua­lidade sem dissipação.

O FreeSWITCH traz também os codecs Siren [9] da Polycom. Esses codecs de excelente qualidade não têm o código aberto, mas estão livres de royalties. A configuração padrão utiliza os codecs Siren.

Um fato que é importante ressal­tar é que codecs de alta qualidade podem expor as limitações de head­sets. Os equipamentos mais recentes e os que estão na lista “certificada do Skype” funcionarão melhor com bons codecs. Pessoalmente, uso o headset Logitech Clear Chat Pro USB sem grandes problemas.

Para o teste, recomendo uma liga­ção a um amigo que também tenha o FreeSWITCH instalado.

Para iniciar, faça uma chamada PSTN ou com um celular, desligue e, imediatamente, faça outra ligação com um codec de alta qualidade. A utilização do PortAudio facilita o teste. Primeiramente, edite $CONF/autoload_configs/portaudio.xml. Lo­calize a linha <param name=”sample-rate” value=”8000”/>, altere o valor para 48000 e salve o arquivo.

No prompt do FreeSWITCH di­gite os seguintes comandos:

reloadxmlreload mod_portaudio

Agora, ligue para seu amigo ou faça uma conferência FreeSWITCH:

pa call 9888

A qualidade do áudio certamente será bem melhor, especialmente se sua conexão com a internet for rápi­da. As conferências FreeSWITCH podem misturar chamadas com quais­quer codecs e taxas de sampling. De fato, é possível fazer uma chamada

de conferência FreeSWITCH com o PSTN com +1­213­799­1400 e com­parar a diferença entre codecs VoIP de alta qualidade e e a baixa quali­dade do PSTN.

Próximo passoEsta breve introdução ao FreeSWI­TCH mostra apenas um pouco do que esse software de código aberto pode fazer. Uma maneira de usar o FreeSWITCH na prática é apre­

sentada por Rob Smart, da IBM, que escreveu um tutorial chamado “Home VOIP system using FreeSwi­tch and a Linksys 3102 voice gateway” [10] mostrando como configurar o FreeSWITCH como um servidor de comunicação no Reino Unido.

Uma comunidade crescente e vi­brante oferece suporte aos novatos e veteranos, portanto, junte­se a ela e continue aprendendo as grandes possibilidades do VoIP. n

Gostou do artigo?Queremosouvirsuaopiniã[email protected]

Esteartigononossosite:http://lnm.com.br/article/3854

Mais informações

[1] ComparaçãoentreoFreeSWITCHeoAsterisk:http://www.freeswitch.org/node/117

[2] SitedoFreeSWITCH:http://www.freeswitch.org

[3] DownloaddoFreeSWITCH:http://files.freeswitch.org

[4] X-Lite:http://www.counterpath.com/x-lite.html

[5] FreeSWITCHwiki:http://wiki.freeswitch.org/wiki/SIP_Provider_Examples

[6] Siteiptel.org:http://www.iptel.org

[7] BibliotecaSofia-SIP:http://sofia-sip.sourceforge.net

[8] CELTcodec:http://www.celt-codec.org

[9] Sirencodecs:http://www.polycom.com/company/about_us/technology/siren_g7221/ index.html

[10] TutorialFreeSWITCH:http://robsmart.co.uk/2009/06/02/freeswitch_linksys3102

SIP – Protocolo de Inicio de Sessão

SIP,ouSessionInitiationProtocoléumprotocolobaseadoemTCP/IPuti-lizadoparasessõesdemultimídiaatravésdaInternet.Oprotocolobasea-doemtextoésimilaraoHTTP,comrequisiçõese respostas,camposdecabeçalho,regrasdecodificaçãoecódigosdestatus.AlémdoVoIP,oSIPéusadoemmensagensinstantâneas,jogosonlineedistribuiçãodestrea-mingmultimídia.

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

SE

GU

RA

A

Privilégios administrativos com o PolicyKit

Poderes ao alcance das mãos

SeoLinuxfecharasportasparavocê,oprimeiroimpulsopodeserrecorreraocomandosuousudo.OPolicyKitofereceumaabordagemmaisflexívelparaatribuirprivilégiosadministrativos.por Tim Schürmann

Por padrão, o Linux delega res­ponsabilidades: o único usuá­rio com permissão de modificar

as configurações do sistema é o oni­presente root. Os usuários normais estão restritos ao seu desktop.

No uso diário, essa restrição pode ser um aborrecimento, especialmen­te se for preciso apenas montar um pendrive USB ou ajustar o horário do relógio. Quando vários usuários compartilham um PC, o usuário root precisa assumir o teclado para efetuar as mudanças.

Um projeto recente chamado Po-licyKit [1] oferece uma solução mais refinada ao problema de configurar

privilégios de acesso. O PolicyKit su­porta gerenciamento independente de privilégios que lembra um auxílio à lista telefônica: os programas do Linux podem “fazer uma ligação” para saber se um determinado usuá­rio tem permissão de executar uma função específica do sistema.

Chame o administradorNo Ubuntu, quando se tenta acer­tar o horário do sistema, antes que a janela escondida em Sistema / Ad-ministração / Hora e data permita a mudança, é preciso clicar antes no

ícone do cadeado ou do escudo. De­pois de fazer isso, a janela Configu-rações de data e hora irá perguntar ao PolicyKit se há autorização para ajustar o relógio.

Para responder essa pergunta, o PolicyKit checa o conjunto de regras, que dirá que é possível acertar o re­lógio se você for membro do grupo Administradores e puder informar a senha correta. O PolicyKit pede, então, que o gerenciador de desktop Gnome peça a senha.

O Gnome faz isso imediatamente, abrindo uma janela como mostra a figura 1. Quando o PolicyKit possui todas as informações necessárias, ele libera janela Configurações de data e hora, que por sua vez desbloqueia a funcionalidade do diálogo.

Com essa abordagem, o PolicyKit pode liberar ou proibir privilégios de modo orientado. Por exemplo, é possível permitir que um usuário, a quem chamarei de carlo, acerte o relógio sem ter acesso a nenhuma outra função do sistema. Em com­paração com su e sudo, os aplicati­vos envolvidos aqui não recebem privilégios de root; isto é, carlo não terá permissão de usar a janela de hora e data para configurar o fuso Figura 1 NoGnome,oPolicyKitdáacessoàsconfiguraçõesdedataehorário.

67

| SEGURANÇAPolicyKit

LinuxMagazine#70 | Setembrode2010

horário ou acessar qualquer outra parte do sistema.

Jogos de númerosEsse admirável mundo novo do Po­licyKit possui alguns problemas. Por exemplo, o aplicativo e a distribui­ção precisam suportar o PolicyKit – pelo menos no Ubuntu, até agora. O OpenSUSE 11.2 e o Fedora 12 ainda exigem a senha de root para a maio­ria das configurações do sistema. O OpenSUSE usa o PolicyKit para per­mitir que qualquer usuário atualize softwares, mas somente para isso.

Além disso, a versão 0.9.1 do siste­ma foi completamente reformulada; as versões mais recentes do PolicyKit não podem mais ser usadas com pro­gramas mais antigos. Por isso, os de­senvolvedores tiveram que modificar ou reformar todos os aplicativos que suportam o PolicyKit, fazendo com que os distribuidores oferecessem as versões mais recentes e as mais antigas. A última versão é extra­ofi­cialmente chamada de PolicyKit-1 ou polkit-1 para distingui­la das outras.

A última versão não suporta o ge­renciador gráfico de privilégios, que funciona apenas em versões mais an­tigas do PolicyKit, até a 0.9.0, mais precisamente. Para as tarefas de ge­renciamento de privilégios, a única alternativa é usar seu editor favorito, mas isso não é tão complicado quan­to se possa imaginar.

Dono da casaO PolicyKit­1 faz distinção entre usuários normais e administradores. Os administradores podem ajustar as configurações do sistema por padrão, como o root. Os arquivos de confi­guração em /etc/polkit-1/localau-thority.conf.d definem os membros. Assim que instalado, o PolicyKit possui um único arquivo, 50-loca-lauthority.conf, com o conteúdo:

[Configuration]AdminIdentities=unix-user:0

que instrui o PolicyKit a solicitar a senha (unix-user) do usuário com ID 0 para todos (AdminIdentities) que precisam de privilégios de adminis­trador. Logicamente, o ID 0 designa o usuário root. Em outras palavras, instalar o PolicyKit não muda as coisas em nada. No Ubuntu, um segundo arquivo de configuração, chamado 51-ubuntu-admin.conf, sobrescreve essa regra com o seguinte conteúdo:

[Configuration]AdminIdentities=unix-group:admin

Seguindo esses parâmetros, todos os membros do grupo de usuários admin são automaticamente admi­nistradores privilegiados. É fácil mo­dificar o padrão de acordo com suas necessidades, na próxima vez em que atualizar o sistema, o arquivo voltará para seu estado original e todo seu trabalho irá se perder. Felizmente, o PolicyKit avalia seus arquivos de configuração em ordem lexicográfi­ca, portanto, criar seu próprio arqui­vo de configuração irá sobrescrever qualquer outro cujo nome principiar com um número menor.

Para dar privilégios administrati­vos aos usuários adam e bonny, basta criar um arquivo 60-myconfig.conf no diretório /etc/polkit-1/localauthori-ty.conf.d com o seguinte conteúdo:

[Configuration]AdminIdentities=unix-group:admin;unix-user:adam;unix-user:bonny

O nome do arquivo não impor­ta, ele só precisa começar com um número mais alto do que os outros (60 nesse exemplo). Os futuros ad­ministradores estão separados por ponto e vírgula e vêm depois de AdminIdentities=. Os indivíduos adam e bonny precisam do prefixo unix-user:. Os grupos são indicados por unix-group:.

Quem pode mais?Regras definem que tem permissão para chamar funções do sistema. O PolicyKit os chama de “Authorization Entries” (Entradas de Autorização) e os agrupa em subdiretórios no di­retório /etc/polkit-1/localauthority. Algumas regras estão em 50-local.d; a tabela 1 lista os outros.

Tabela 1: Pastas para entradas de autorização

Diretório Conteúdo

10-vendor.d Regrasdodistribuidor

20-org.d Regrasfeitaspelaorganizaçãoquedistribuiosistemaoperacional

30-site.d Regrasfeitaspelositequedistribuiosistemaoperacional

50-local.d Regraslocais

90-mandatory.d Regrasfeitaspelaorganizaçãoquedistribuiosistemaoperacional

Listagem 1: Acertar o relógio

01 Carlo allowed to set the02 Identity=unix-user:carlo03 Action=o rg.gnome.clockapplet.mechanism.settime04 ResultActive=yes05 ResultInactive=no06 ResultAny=no

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

SEGURANÇA | PolicyKit

Para permitir que o usuário sem privilégios carlo acerte o relógio, será preciso criar um novo arquivo de configuração com a extensão .pkla (PolicyKit Local Authority).

Mais uma vez, o nome do arquivo não faz diferença: o PolicyKit sim­plesmente avalia todos os arquivos .pkla desse diretório em ordem lexi­cográfica ascendente. Entretanto, faz

sentido escolher um nome intuitivo. Para o carlo que vai acertar o relógio, o arquivo seria como o da listagem 1.

Uma descrição entre chaves abre o arquivo, seguida da palavra­chave Identity= e o usuário ou usuários a quem se aplicam as seguintes altera­ções de privilégios. Múltiplos usuários e grupos precisam ser separados por vírgulas (como mencionado antes) após as conhecidas palavras­chaves unix-user: ou unix-group.

A linha seguinte contém o nome da função do sistema ou ação em questão, org.clockapplet.mechanism.settime, que se refere ao ajuste do relógio no Gnome. Digitar pkaction --verbose na linha de comando irá in­formar quais outras ações o PolicyKit suporta. Essa lista pode ser bem longa, dependendo de sua distribuição; o comando a seguir redireciona a saída para um arquivo texto list.txt para facilitar a inspeção:

$ pkaction --verbose > list.txt

O prompt de diálogo da senha no Gnome, mostrado na figura 3, for­nece outra informação útil. A seção Details revela qual Action (ação) o usuário tentou fazer.

No arquivo .pkla, é possível usar wildcards (*) para agrupar múltiplas ações. Por exemplo,

Action=org.gnome.clockapplet.mechanism.*

modifica todas as ações que começam por org.gnome.clockapplet.mechanism ao mesmo tempo. Isso quer dizer que o usuário carlo pode acertar a hora e mudar o fuso horário.

PrivilégiosAs últimas três linhas da regra na lista-gem 1 definem os privilégios. Quando o usuário carlo tentar qualquer ação na sessão atual, o PolicyKit confere ResultActive= configurado com yes e permite que carlo altere o horário

Quadro 1: Armadilhas da senha

Ocomportamentodopkexeccompromptsdesenhasélógico,porémconfu-soàprimeiravista.Comocomando

$ pkexec - -user bonny apt-get install gnuchess

você inicia opkexec. O PolicyKit solicita então sua própria senha. Não háacessoaodiretório/var/lib/dpkg,porissooapt-gettambémserecusaainstalaroprograma.Parainstalarognuchesscomoousuáriobonny,épreci-soprimeirofazerologincomoesteusuárioedepoisdigitarocomando

pkexec apt-get install gnuchess

OPolicyKitirápediragoraasenhadousuáriobonny,iniciaroapt-getcomprivilégiosderooteinstalarognuchess–assumindoquenenhumaregradoPolicyKitimpeçaisso.

Listagem 2: Usuários sem privilégios iniciam programas

01 Allow program execution via02 Identity=unix-user:carlo03 Action=org.freedesktop.policykit.exec04 ResultActive=yes05 ResultInactive=no06 ResultAny=no

Quadro 2: Por debaixo do pano

OPolicyKitcontémumcertonúmerodemódulose,umarequisiçãofeitaaele,sempredisparaumtipodereaçãoemcadeia.Noinício,umprogramasemprivilégios,conhecidoporcliente,disparaumafunçãoemumprogra-maou“mecanismo”comprivilégios.Porexemplo,umappletdedesktop(ouseja,ocliente)podetentarmudaroestadodocomputadorcomousodoDeviceKit(mecanismo).

OmecanismochecaoPolicyKitparadeterminarseoclientetempermissãoparadispararessaação.Paraisso,eleenviaumarequisiçãoparaoservi-çoD-Busorg.freedesktop.PolicyKit1.OD-Businicia,então,automatica-mente,odaemonpolkitddoPolicyKit,queconfereasregrasparaverseoclienteéconfiável.Sefornecessárioofornecimentodeumasenha,oPo-licyKitusaoD-Busparasolicitarqueoambientededesktopabraumagen-tedeautenticação.Normalmente,oagenteéumapequenajanelaqueso-licitaumasenhadousuário.Osdesenvolvedoresdeambientesdedesktopdecidemoaspectodesteagente.

SeomecanismoreceberumarespostapositivadoPolicyKitatravésdoD-Bus, a função requisitada será executada; caso contrário, ele cancela aaçãoeenviaumamensagemdeerro.Afigura 2ilustratodooprocesso.

69

| SEGURANÇAPolicyKit

LinuxMagazine#70 | Setembrode2010

sem problemas; auth_self pede que ele forneça sua senha de usuário e auth_self_keep faz o PolicyKit lembrar dessa senha por alguns segundos. Se carlo precisar ajustar o horário de novo durante esse período, não será preciso digitar sua senha de novo.

Por fim, auth_admin pede que o u­suário forneça a senha administrati­va. Isso se aplica a qualquer usuário listado depois de AdminIdentities= no arquivo /etc/polkit-1/localauthori-ty.conf.d/60-myconfig.conf – nesse exemplo, adam e bonny. A tabela 2 mostra os outros valores suportados para ResultActive. Seguindo o mes­mo padrão, ResultInactive cuida das buscas originárias de sessões inativas; ResultAny não faz distinção entre ses­sões ativas e inativas.

Com base nos padrões mostrados anteriormente, é possível adicionar mais sessões ao seu arquivo .pkla, ajustando assim suas atribuições de privilégios. Em um ambiente de pro­dução, regras para uma única ação serão normalmente agrupadas em um arquivo, que é, então, nomeado para uma ação. As alterações do usuário carlo estariam salvas então em org.gnome.clockapplet.mechanism.pkla.

Tudo ou nadaO PolicyKit aplica regras imediata­mente, sem necessidade de reinicia­lização. No Ubuntu, no entanto, as alterações não modificam a capacida­de do usuário de acertar o relógio: a Canonical parece ter redirecionado as configurações do sistema fazendo com que um clique no ícone do ca­deado busque por org.freedesktop.systemtoolsbackends.set. Para que o usuário bonny possa acertar o reló­gio, é preciso modificar a linha 3 da listagem 1 dessa maneira:

Action=org.freedesktop.systemtoolsbackends.set

Como o nome da ação sugere, isso daria a bonny o acesso a todas

as outras configurações do sistema. Ela não só poderia alterar o horário, mas também poderia mexer com o gerenciamento de usuários. No Ubun­tu, seria então mais fácil adicionar bonny ao grupo de administradores.

Plataforma de lançamentoCom o PolicyKit, é possível deixar usuários comuns iniciarem progra­mas do sistema. Para permitir que isso aconteça, o pkexec substitui o conhe­cido sudo. Por exemplo, o comando $ pkexec --user bonny /usr/bin/apt-get

inicia o gerenciador de pacotes no contexto da conta do usuário bonny (quadro 1). O aplicativo é executado em um ambiente mínimo e seguro. Isso torna impossível a injeção de có­digo malicioso, mas também impos­sibilita a inicialização de programas X11 com a conta de outro usuário.

Por padrão, apenas administrado­res – quer dizer, os usuários listados

no arquivo de configuração /etc/polkit-1/localauthority.conf.d/60-myconfig.conf – têm permissão de usar pkexec para iniciar um progra­ma. Para permitir que o usuário sem privilégios carlo inicie programas, basta criar uma nova regra. A ação para isso é org.freedesktop.policykit.exec (listagem 2).

O código da listagem 2 permitiria que carlo iniciasse qualquer progra­ma através do pkexec. Se é necessário permitir que carlo execute apt-get apenas após fornecer sua senha, outro arquivo de configuração pre­cisa ser feito.

Figura 2 Oclienteprimeiramentehabilitaumserviçodosistema.OserviçoentãoutilizaoD-BusparasolicitarpermissãoaoPolicyKiteestepedeumasenhadeusuário.

Figura 3 OpromptdasenhadeautenticaçãodoGnomerevelaaaçãodousuário.

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

SEGURANÇA | PolicyKit

Ação em grupoO PolicyKit só responde a uma requi­sição se souber a ação em questão. Os aplicativos precisam primeiro dizer ao PolicyKit quais funções de sistemas eles oferecem. Para que isso aconteça, inclua a informação

necessária em um ou em múltiplos arquivos XML que ficam no subdi­retório /usr/share/polkit-1/actions, onde também está org.gnome.clocka-pplet.mechanism.policy com as ações do applet do relógio do Gnome que requerem autenticação do PolicyKit.

Iniciar o programa /usr/bin/apt-get é apenas mais uma ação. Para aplicar o controle de acesso, é pre­ciso acrescentar outro arquivo XML (listagem 3).

A estrutura é mais complexa do que os arquivos de configuração que vimos até agora. Os caracteres no início são essenciais em qual­quer arquivo XML. O publisher ou o desenvolvedor são revelados entre as tags <vendor> e </vendor> e o endereço está em <vendor_url>. A definição da ação a ser executada, que inicia em <action id=> e um nome único, ao qual o PolicyKit também se refere por Action ID, vem em seguida. Qualquer nome é válido, contanto que tenha ape­nas números, letras em caixa baixa, pontos e traços. A convenção é usar a URL de trás para frente e anexar o nome da ação.

Uma descrição da ação é dada entre as tags <description> e </des-cription>. A instrução <description xml:lang=”en”> é usada para a tradu­ção em inglês. É possível adicionar descrições para outras línguas da mesma maneira; org.gnome.clocka-

Tabela 2: Tipos de privilégios do PolicyKit

Valor Significado

yes Ousuáriopodeiniciaraaçãodiretamentesemousodesenha.

no Acessoàaçãoécompletamentebloqueado.

auth_self Ousuárioprecisainformarsuaprópriasenha.

auth_self_keep Ousuárioprecisainformarsuaprópriasenha.OPolicyKitiráguardá-laporalgunssegundos.

auth_admin OPolicyKitsolicitaumasenhaadministrativa.

auth_admin_keep OPolicyKitsolicitaumasenhaadministrativaeaguardaporalgunssegundos.

Listagem 3: Aplicar controles de acesso

01 <?xml version="1.0" encoding="UTF-8"?>02 <!DOCTYPE policyconfig PUBLIC03 "-/ /freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"04 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">05 <policyconfig>0607 <vendor>Linux New Media AG</vendor>08 <vendor_url>http://www.linuxnewmedia.de</vendor_url>0910 <action id="de.linuxnewmedia.example.run-apt-get">11 <description>run apt-get</description>12 <description xml:lang="en">run apt-get</description>13 <message>Y ou need to authenticate to modify the system configuration</message>14 <message xml:lang="en">You must identify yourself to run the program apt-get</message>15 <defaults>16 <allow_any>no</allow_any>17 <allow_inactive>no</allow_inactive>18 <allow_active>auth_self_keep</allow_active>19 </defaults>20 <annotate key="org.freedesktop.policykit.exec.path"> /usr/bin/apt-get</annotate>21 </action>2223 </policyconfig>

Listagem 4: Início sem uma senha

01 Release apt-get program for02 Identity=unix-user:carlo03 Action=de.linuxnewmedia.example.run-apt-get04 ResultActive=yes05 ResultInactive=no06 ResultAny=no

71

| SEGURANÇAPolicyKit

LinuxMagazine#70 | Setembrode2010

pplet.mechanism.policy é um bom exemplo. A janela para inserir a se­nha mostra o texto message, e <mes-sage xml:lang=”en”> oferece a versão em inglês. A sessão default define os privilégios padrão. O comando :

<allow_active>auth_admin</allow_active>

diz ao pkexec que o programa não deve ser executado até que o usuário na sessão ativa (allow_active) tenha informado a senha administrativa (auth_admin). Mais tarde, é possível sobrescrever essas configurações individualmente com um arquivo .pkla localizado em /etc/polkit-1/localauthority/50-local.d.

Todos os valores da tabela 2 são permitidos entre as tags allow_acti-ve. A tag allow_inactive cuida das requisições de sessões inativas de modo semelhante (e corresponde a ResultInactive), enquanto que allow_any (como contrapartida a ResultAny) não se preocupa com a origem.

Por fim, o caminho para o pro­grama é especificado em <annota-te key=”org.freedesktop.policykit.exec.path”>, que é o gerenciador de pacotes do aplicativo nesse exemplo.

Apesar de ser necessário salvar a descrição da ação com uma extensão .policy, o próprio nome do arquivo não é importante; a convenção é seguir o ID da ação.

ExtrasAgora, é preciso estabelecer uma regra especial (exceção) para o usuário carlo em /etc/polkit-1/localauthority/50-local.d (lista-gem 4) para permitir que ele inicie o programa apt-get através do pke-xec sem inserir uma senha. Infeliz­mente, o pkexec não confere os pa­râmetros que o usuário passa junto com o programa. Neste exemplo, carlo poderia instalar um pacote arbitrário (malicioso).

ConclusãoO PolicyKit dá aos administradores uma ferramenta extremamente fle­xível para moldar perfis de acesso. Diferente do su e sudo, o PolicyKit não libera o usuário na totalidade do aplicativo; em vez disso, restrin­ge o usuário a funções individuais do sistema. Além disso, os usuários não precisam recorrer à linha de co­mando; no máximo, eles terão que fornecer uma senha.

Em cenários mais complexos, as regras podem ficar um tanto confusas e o uso de um editor de texto para criá­las e mantê­las não é exatamente algo inconveniente. Além do mais, o PolicyKit é mais um sistema de

gerenciamento de privilégios além do próprio sistema Linux.

Mesmo que se use o PolicyKit para evitar que carlo execute um programa, ele ainda poderá fazer isso com sudo. Isso significa que é preciso ficar de olho nas suas configurações do PolicyKit e nos outros privilégios.

Para que o PolicyKit funcione bem, os desenvolvedores precisam manter suporte explicitamente em seus apli­cativos; os sistemas de desktop preci­sam fornecer um diálogo de senha e as distribuições precisam ser mais consistentes no seu uso do PolicyKit. As últimas versões do openSUSE, do Fedora e o Ubuntu mostram que ain­da há muito a ser feito. n

Gostou do artigo?Queremosouvirsuaopiniã[email protected]

Esteartigononossosite:http://lnm.com.br/article/3850

Mais informações

[1] PolicyKit:http://www.freedesktop.org/wiki/Software/PolicyKit

Figura 4 Assumindoqueosusuáriospossuemosprivilégiosnecessários,elespodeminstalarprogramas.Nessecaso,ousuárioprecisafornecerapenassuasenhaparaexecutarapt-getcomprivilégiosderoot.

Globocom.indd 2 17/08/10 18:56

72

BPEL

http://www.linuxmagazine.com.br

BPELP

RO

GR

AM

ÃO

Otimização do fluxo de trabalho

Processos redesenhados

ConstruaferramentasparagerenciamentodofluxodetrabalhocomBPEL.por Michael Kleinhenz

Um funcionário em uma via­gem de negócios envia um email com as datas e o lugar

de uma central de serviço; alguém do escritório copia esses detalhes em vários portais online de reservas e emite um memorando de confirma­ção. O funcionário volta da viagem e insere mais uma vez os mesmos dados solicitando reembolso. Algum funcionário mais esperto poderia usar scripts para automatizar esse proces­so, removendo, assim, a necessidade de inserir informações redundantes, porém, o que aconteceria se a empre­sa modificasse o processo? Alguém se habilitaria a reescrever todos os scripts customizados?

Os desenvolvedores geralmente precisam de modos para modificar processos de negócios sem reinventar a infraestrutura existente. Os proces­sos são a interface entre os departa­mentos de produção e o de TI. Ao mesmo tempo, desenvolvedores e administradores precisam monitorar todo o sistema e seus processos in­ternos – um desafio para arquitetos e designers.

O propósito do gerenciamento de sistemas de fluxo de trabalho (WFMS – Workflow Management Systems) é modelar operações inde­pendentemente de sua implementa­ção. A ideia é fornecer aos usuários as ferramentas básicas para mapear procedimentos de funções de negó­cios, tais como email, transações de cartões de crédito ou sistemas inventariais sem a necessidade de programas antigos.

O XML se presta muito bem a esse tipo de tarefa, mas, devido à dificuldade em editar um arquivo XML somente com um editor, várias ferramentas gráficas estão disponíveis para esse trabalho. O WFMS lê a definição do processo codificada no XML e se refere a ela para coorde­nar e verificar a instância tangível do processo moldado.

Mecanismos de fluxo de trabalho oferecem meios para tratar da ca­deia de atividades e sua sequência. Para integrar serviços individuais, a maioria dos mecanismos usa SOA (Arquitetura Orientada a Serviço), uma descrição de função baseada

em XML. A SOA permite que a em­presa una componentes de diferen­tes grupos. Por exemplo, é possível empregar sistemas SAP ao departa­mento Contabilidade e ainda usar um componente próprio baseado em JEE ou Dotnet da Engenharia.

Se todos os aplicativos possuírem interfaces SOA, o WFMS pode unir suas funções entre aplicativos e controlar fluxos de trabalho entre os componentes. Serviços web indi­viduais são como instrumentos de uma orquestra: o fluxo de trabalho direciona e integra partes individuais para criar um todo harmônico. Pe­ritos nesse campo referem­se a isso como “programação global”.

O BPEL (Business Process Exe-cution Language ou Linguagem de Execução de Processos de Negócios) é um padrão para o gerenciamento de fluxo de trabalho SOA. IBM, BEA, Microsoft, SAP e outras adotaram o padrão BPEL OASIS, que está agora na versão 2.0 [1]. O BPEL usa docu­mentos XML para descrever proces­sos e depende dos padrões WSDL e SOAP de serviços web.

jose

luis

nav

arro

– s

xc.h

u

BPEL

73

| PROGRAMAÇÃOBPEL

LinuxMagazine#70 | Setembrode2010

Instalar o BPELO ambiente run-time do ActiveBPEL (quadro 1) vem na forma de um servlet Java e precisa de um servlet container e do JRE 1.5 ou mais re­cente. O software inclui um script para o Tomcat 5.5, o que simplifica a instalação.

Os administradores podem baixar a distribuição do Core do Tomcat [2] e descompactá­la em um dire­tório de sua escolha. Além disso, é preciso descompactar o ActiveBPEL [3] Community Edition Engine no mesmo diretório e configurar CATA-LINA_HOME para o caminho do Tom­cat, como mostra o seguinte código:

export CATALINA_HOME=$(pwd)/apachetomcat

cd activebpel5.0.2./install.sh

Depois de ir para o diretório do mecanismo do BPEL e iniciar a instalação, é preciso esperar que o servidor Tomcat inicie:

cd ../apachetomcat/bin./startup.sh

O Tomcat normalmente oferece uma interface administrativa na porta 8080. Para isso, ele executa um na­vegador com http://localhost:8080/BpelAdmin/. Na configuração padrão, o software utiliza um banco de dados na memória que não salva nenhum dado quando é fechado. A interface de serviço web e um designer adicio­nal possibilitam integrar os processos. Detalhes da configuração e alguns tutoriais estão disponíveis na web [4].

Projetar modelos de processosO designer do processo inicia com um esboço do fluxo de trabalho de forma não técnica, como cadeias de processos de eventos e rascunhos.

Então usa uma das ferramentas de edição para criar um ambiente BPEL – isto é, para formular um plano na linguagem de descrição formal. O ambiente Eclipse, por exemplo, ofe­rece paletas de ação de programas BPEL que suportam processos ba­seados no uso do mouse (figura 1).

O BPEL modela um processo como uma seqüência de etapas ou

atividades de processamento. Essas atividades são normalmente forne­cidas diretamente por serviços web como elementos invocados, ou estão disponíveis como variáveis manipu­láveis. Os desenvolvedores podem organizar as atividades individuais como nós em um gráfico. Cada nó contém exatamente um elemento de controle – por exemplo, condições

Quadro 1: ActiveBPEL

OActiveBPELimplementaaversão2.0dopadrãoBPEL.Omecanismopos-suilicençaGPLv2.ComoumaplicativowebJEE,oBPELcooperacomumservidorcomooApacheTomcat.OeditorvisualdosprocessosdoBPEL,conhecidocomoDesigner,eéumaplicativoEclipseRCP.Umaversãogra-tuitade30diasestádisponível.Épossívelobteralicençaparaoteste,queseráenviadapelofabricanteporemail,napáginadedownload[5].Osde-senvolvedorespodemusaroutrosdesignerscomomecanismoActiveBPEL.Porexemplo,aEclipseFoundationdesenvolveuseupróprioeditor,oActiveEndpoints,queoferecedesignersparaWindowseLinuxcomoumplugindoEclipse.Opluginsuportaverificaçãodeerrosdeprocessosemcombinaçãocomomecanismo,permitequeosprogramadoresdeterminembreakpoints,verifiquemocódigoesimulemexecuçãodeprocessos.Osprocessospodemserdistribuídosatravésdeumdiretórionodiscoouumserviçoweb.Osde-senvolvedoresmantêmumfórumonlineousuportecomercialparaosusuá-riosfinais,eosuportecomercialdeterceirostambémestádisponível.

Figura 1 EmvezdeeditarmanualmenteocódigoXML,oDesignerBPELpermitequeosusuáriosmodelemosprocessoscomorecursoarrastaresoltar.

74

BPEL

http://www.linuxmagazine.com.br

PROGRAMAÇÃO | BPEL BPELBPEL

que desencadeiam outras ativida­des ou fluxos que executam outras atividades em paralelo. Elementos como sequências ou loops também gerenciam o fluxo de controle.

Quando armazenadas em um documento XML, essas estruturas representam uma definição de pro­cesso BPEL. A definição também contém meta informação e descrição de interface. O designer formula a definição em WSDL e como elemen­tos PartnerLinks. Esses elementos criam uma camada de abstração – entre as atividades invoke abaixo de um processo por um lado, e serviços web tangíveis por outro.

O BPEL usa o esquema padrão do XML para passar valores; as va­

riáveis podem, então, aceitar estru­turas complexas. Manipuladores de falhas detectam erros de execução do processo e responde, digamos, derrubando a conexão do banco de dados. Em contraste, manipula­dores de eventos oferecem serviços adicionais além da lógica normal do processo.

Controle de sequênciasO padrão que o planejador usa para organizar sequências é, na verdade, o processo. Apenas quando em um ambiente run-time, o mecanismo BPEL analisa essa descrição e as instâncias do processo são criadas.

Cada instância possui seus próprios estados. A instância une sistemas de TI individuais com os empregados envolvidos (quadro 2). Os envolvidos recebem suas próprias conexões de serviços web: para que isso aconte­ça, o mecanismo envia um email ao funcionário ou adiciona uma tarefa ao grupo da empresa.

Processos de negócios podem le­var dias, dependendo do aplicativo. Métodos mais antigos, tais como reduzir um banco de dados SQL não conseguem garantir totalmente a integridade dos dados nesse tipo de ambiente: por exemplo, é im­possível que o remetente se lembre de uma carta que enviou. Em vez disso, sistemas de fluxo de trabalho dependem de compensação, como uma segunda carta que cancela a reserva de um hotel. A compensa­ção é definida como um processo separado em um contexto BPEL; os desenvolvedores podem usar todas as opções de design do BPEL dentro da compensação.

FalanteOutro problema acontece com processos longos: a típica aborda­gem requisição/resposta do HTTPé insuficiente quando a resposta de­mora muito a chegar. O tempo de uma requisição a um serviço sin­cronizado como esse se esgotaria antes que o serviço web pudesse responder. Por essa razão, o BPEL define técnicas para comunicações web assíncronas entre o cliente e o servidor. O cliente interrompe a conexão quando uma confirmação de recebimento chega a ele. A re­quisição usa um cabeçalho replyTo (responder à) para definir a URL para a resposta. Quando a tarefa estiver completa, os dois parceiros trocam de papéis, e o antigo servi­dor envia a resposta ao endereço especificado para que o mecanismo BPEL nesse endereço possa conti­nuar o processo. Se for impossível

Figura 2 OmecanismoBPELexecutaatividadesindividuaisemumasequê-nciafornecidaporusuários.

Quadro 2: Integrar fluxos de trabalho com estruturas

Paraintegrarumcomponentedefluxodetrabalhocomumainfraestruturajáexistente,osarquitetosgeralmenteempregamumsistemadegerenciamentodelistadetrabalhoalémdomecanismocentral(figura 2).

QuandoumprocessoBPELatribuiumatarefaaumfuncionárioespecífico,elechamaumserviçoweb.Oserviçowebenviaatarefaparaogerenciadordelistadetrabalho,queaceitaabuscaeaadicionaàlistadetarefasdofun-cionário.Quandoofuncionáriocompletaratarefa,ogerenciadordelistadetrabalhoenviaumamensagemdizendoqueelaestácompletaaomecanismoBPEL.Sistemasdessetipoestãogeralmenteligadosagruposouaumge-renciadorweb;outrossistemasusamemail.

BPELBPEL

75

| PROGRAMAÇÃOBPEL

LinuxMagazine#70 | Setembrode2010

BPEL

ao mecanismo do processo aceitar respostas, a tarefa segue para outro componente, como um enterprise service bus.

Criar estruturaO mecanismo do processo tem a tarefa de alocar uma mensagem de sucesso a uma instância do processo muito tempo depois da requisição correspondente ter sido emitida, e, em alguns casos, muitas instân­cias estão ativas ao mesmo tempo no mecanismo. Por exemplo, algu­mas instâncias de “Aprovar viagem” podem estar sendo executadas si­multaneamente no mecanismo do processo, pois vários membros da equipe planejam visitar uma feira. Se for impossível adicionar um ID de transação à requisição porque a interface foi definida externamente, o WFMS tenta identificar a instân­cia do processo com referência aos parâmetros. No caso de uma viagem de negócios, o nome e a data da via­gem provavelmente seriam suficien­tes. Atributos comparáveis a chaves primárias são chamados de sets de correlação no BPEL.

Os escopos na modelagem são parecidos com blocos de código C++ ou Java. Um escopo ou scope, é uma área com variáveis locais, sequências de processos e mani­puladores de falhas que permitem que o desenvolvedor mantenha uma definição de processo enxuta, onde estruturas locais e variáveis locais estão disponíveis apenas no scope local.

Um exemplo de entrega mode­lada com o uso de scopes ajudará a ilustrar: uma empresa cobra uma determinada quantia de um cartão de crédito (subscope invoice), mas não consegue entregar a mercadoria, pois o endereço está errado (subscope delivery). O manipulador de falhas correspondente passa o erro para o scope surrounding, que também possui um manipulador de falhas.

O manipulador de falhas notifica o funcionário que emitiu a ordem e compensa as atividades após ter feito isso, creditando a quantia na conta do cartão de crédito. A van­tagem é que o designer do proces­so pode atribuir manipuladores de erros e contra­medidas localmente para cada passo.

Exemplo: reservar uma viagem de negóciosUsando o exemplo da viagem descri­to no início deste artigo, posso agora modelar e mais tarde iniciar um pro­cesso simples. Quando o servidor do aplicativo e o BPEL forem baixados e instalados, o designer modela par­te da reserva da viagem de negócios. Esse exemplo simples funciona sem compensação e chamadas assíncro­nas. O resultado é uma coleção de arquivos XML que o designer pode juntar em um arquivo e transferir para o mecanismo.

A entrada para o processo com­preende quatro registros: o nome de usuário de quem vai viajar, o traje­to da viagem, a data e o horário. O processo inicia com a seleção de um meio de transporte. Para que isso aconteça, um serviço web se refere à duração da viagem e à identidade do viajante para decidir se reserva uma passagem de trem ou de avião. Os CEOs e engenheiros podem ter uma prioridade de avião, por exemplo. Após tomar essa decisão, o mecanismo do processo reserva a passagem. Os dados da viagem são então enviados ao funcionário (figura 3).

Selecionar e clicarO ActiveBPEL Designer [5] é uma interface gráfica que ajuda a conver­ter os passos individuais da modela­gem em arquivos XML. O BPEL separa informações de interface de serviços web. A linguagem usa ope­rações, descrições de parâmetros e links parceiros (representações abs­

Figura 3 Quandoumaviagemdenegócioséreservada,umserviçowebdecidequalmeiodetransporteseráusado,apósoque,omecanis-modefluxodetrabalhofazumareservadetremouavião.

76

BPEL

http://www.linuxmagazine.com.br

PROGRAMAÇÃO | BPEL BPELBPEL

tratas de verdadeiros endereços de serviços). O próprio modelo define a estrutura, a sequência e o manipu­lador de exceção.

Seguindo com esse exemplo, os novatos do BPEL podem baixar o ActiveBPEL Designer, descompactá­lo e iniciá­lo da seguinte maneira:

./ActiveVOS_Designer_unix_6_0_2.sh

Quando receber o arquivo de li­cença por email, não há nada que o impeça de instalá­lo. Se preferir não usar a versão de teste, é possível usar qualquer outro designer BPEL. Um assistente instala a versão completa do mecanismo, permitindo que os usuários testem o mecanismo dire­tamente do editor.

Após a instalação, o usuário pode corrigir o problema de codificação com a versão 6.0.2 para o Linux e recodificar o arquivo:

cd ./Designer/designerrecode ibmpc..latin1 jre/lib/i386/jvm.cfg

Digite então ./designer para ini­ciar o designer e aceitar o caminho sugerido para o espaço de trabalho. O fechamento da aba fecha a página inicial. Os usuários do Eclipse logo se sentirão em casa. No espaço de trabalho padrão do designer, é possível selecionar File / New / Orchestration Project para criar um novo projeto.

O arquivo WSDL, services.wsdl, descreve todas as interfaces. Primeira­mente, armazene o arquivo na árvore do projeto abaixo de wsdl; o mesmo se aplica à descrição do processo BPEL, travelbooking.bpel, abaixo de bpel. O descritor de distribuição contém os detalhes do endereço dos serviços. O importante é que as de­finições achem umas às outras, se o designer produzir algum erro, é pre­ciso conferir as referências WSDL nos arquivos PDD e BPEL.

Tentativa e erroApós criar um processo, é possível testá­lo no simulador. Para isso, exe­cute o processo selecionando Run

/ Simulate Process no mecanismo interno. Esse comando configura manualmente dados de parâmetro através da aba Process Variables para simular os valores passados por outro serviço web em uso.

Se o processo funcionar como projetado, o usuário do BPEL pode então criar um arquivo de distribui­ção (figura 4). Esse arquivo BPR é um pacote JAR que contém os arquivos necessários para que o processo seja executado no mecanismo. O arqui­vo é criado selecionando­se File / Export / Orchestration / Business Process Archive File e escolhendo File como tipo de distribuição. Esse passo escreve o arquivo BPR no dis­co. Como opção, é possível passar a distribuição diretamente para um mecanismo em execução através de um serviço web.

Se preferir trabalhar com o Ant e sem o designer mais tarde, é pos­sível criar um arquivo BPRD. Um descritor de distribuição descreve como uma definição de processo chega até o mecanismo de fluxo de trabalho e configura o que antes eram parâmetros abstratos. Esses detalhes são compilados em tra-velbooking.pdd.

O desenvolvedor precisa agora parar o designer e iniciar o Tomcat com o mecanismo ActiveBPEL. Para apresentar o novo processo ao mecanismo, basta copiar o arquivo BPR para o diretório de destribui­ção bpr abaixo da instalação do Tomcat. Depois de alguns segun­dos o servlet container identifica o arquivo. É possível monitorar esse processo em http://localhost:8080/BpelAdmin/deployment_log_detail.jsp, o log de distribuição da interface de administração.

O log lista os processos instala­dos em Deployed Process. Se um usuário iniciar um processo do tipo travelbooking através de uma requisição SOAP, a interface do administrador mostra seu estado

Figura 4 Odesignerajudaacompilaroarquivodoprocessodenegóciodosváriosarquivosdemodelagem.OarquivoéexecutadoporumservidorcomooTomcat.

BPELBPEL

77

| PROGRAMAÇÃOBPEL

LinuxMagazine#70 | Setembrode2010

BPEL

e o conteúdo variável em http://localhost:8080/BpelAdmin/active_pro-cesses.jsp. O processo de visuali­zação no front end web é similar ao display do designer.

Boas conexõesQualquer cliente SOAP pode fazer uma requisição SOAP; o SoapUI é uma boa escolha para testes rápidos [6]. A definição WSDL para travel-booking() pode então ser carregada diretamente com o mecanismo em execução: http://localhost:8080/ac-tivebpel/services/TravelbookingPartnerLinkService?-wsdl. Se as definições forem importadas dessa maneira e o endereço do serviço HTTP para o mecanismo for configurado, já é possível integrar o projeto com seus aplicativos.

Devido as muitas camadas de abstração, o gerenciamento de flu­xo de trabalho com o BPEL não é trivial. Várias abordagens à mode­lagem de processo nos negócios, noções diferentes, variantes permi­tidas na implementação do padrão, as múltiplas camadas de um SOA e a variedade de produtos de soft­ware dificultam uma solução para os arquitetos de sistema. Literatura especializada no assunto encheria uma pequena biblioteca, mas o livro Business Process Execution Langua-ge for Web Services [7] oferece uma abordagem pragmática. Nenhum dos exemplos exige o Designer BPEL, pois os autores trabalham diretamente com XML.

Muito trabalho para os desenvolvedoresA resposta do BPEL à concorrência é oferecer uma abordagem universal. O BPEL é tão universal que conse­gue dar conta de quase tudo no fluxo de trabalho de negócios. Isso man­tém os desenvolvedores à vontade e significa que eles podem suportar diversos métodos de modelagem.

Porém, não subestime a complexi­dade: um WFMS baseado no BPEL exige do desenvolvedor um grande conhecimento da funcionalidade da tecnologia SOA e um “sim” certeiro para processar tecnologia das divisões dos negócios.

Apesar de toda a padronização, o BPEL possui alguns problemas. Por exemplo, o padrão não é muito claro em algumas áreas, ou há bre­chas que muitos revendedores de mecanismos BPEL exploram com extensões proprietárias. Apesar de exigir a linguagem XPath para a manipulação de variáveis e valores, por exemplo, é possível o uso de extensões como XQuery ou JavaS-cript. Essa abordagem pode facilitar a modelagem, mas significa que as definições do processo não são inte­ligíveis para qualquer mecanismo de fluxo de trabalho.

A linguagem de descrição não funciona bem como uma ferramenta do departamento de marketing ou para a equipe de gerentes que queira definir fluxo de trabalho de negócios por si mesmos. Ao contrário: o de­signer do processo precisa entender as sutilezas técnicas do fundamen­to SOA. Habilidades com o SOAP e grande compreensão do padrão WSDL são úteis.

A visão de deixar todo o trabalho com o chefe é uma ilusão. Mas a fa­cilidade para o usuário final nunca foi a meta dessa tecnologia: o BPEL é uma plataforma de integração téc­nica para qualquer tipo de definição de processo de trabalho. Se houver perseverança na criação de uma estrutura com o BPEL, será possí­vel relaxar e ver o fluxo de trabalho conforme seus processos de negócios forem evoluindo. n

Gostou do artigo?Queremosouvirsuaopiniã[email protected]

Esteartigononossosite:http://lnm.com.br/article/3842

Mais informações

[1] OASIS,“WebServicesBusinessProcessExecutionLanguageVersion2.0.”http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

[2] ApacheTomcat:http://tomcat.apache.org

[3] ActiveBPEL,EdiçãodaComunidade:http://www.activevos.com/community-open-source.php

[4] DocumentaçãoetutoriaisdoActiveBPEL:http://www.activevos.com/community-educationcenter.php

[5] ActiveBPELDesigner:http://www.active-endpoints.com/download-trial.php

[6] NavegadorSoapUI:http://www.soapui.org

[7] Juric,MatjazB.,BennyMathew,ePoomachandraSarang.BusinessProcessExecutionLanguageforWebServicesBPELandBPEL4WS,2nded.Packt,2006

78

SE

RV

IÇO

S

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 6Bahia

IMTECH Salvador Av.AntonioCarlosMagalhaes,846–EdifícioMaxCenter–Sala337–CEP41825-000

714062-8688 www.imtech.com.br 4 4 4 4

MagiclinkSoluções Salvador RuaDr.JoséPeroba,275.Ed.MetropolisEmpresarial1005,STIEP 712101-0200 www.magiclink.com.br 4 4 4 4 4

CearáF13Tecnologia Fortaleza RuaPadreValdevino,526–Centro 853252-3836 www.f13.com.br 4 4 4 4

NettionTecnologiaeSegurançadaInformação

Fortaleza Av.OliveiraPaiva,941,CidadedosFuncionários–CEP60822-130 853878-1900 www.nettion.com.br 4 4 4

Espírito SantoLinuxShopp VilaVelha RuaSãoSimão(Correspondência),18–CEP:29113-120 273082-0932 www.linuxshopp.com.br 4 4 4 4

MegaworkConsultoriaeSistemas

Vitória RuaChapotPresvot,389–sl201,202–PraiadoCantoCEP:29055-410

273315-2370 www.megawork.com.br 4 4 4

SpiritLinux Vitória RuaMarinsAlvarino,150–CEP:29047-660 273227-5543 www.spiritlinux.com.br 4 4 4

Goiás3WAYNetworks Goiânia Av.QuartaRadial,1952.SetorPedroLudovico–CEP.:74830-130 623232-9333 www.3way.com.br 4 4 4 4 4

Minas GeraisInstitutoOnline BeloHorizonte Av.BiasFortes,932,Sala204–CEP:30170-011 313224-7920 www.institutoonline.com.br 4 4

LinuxPlace BeloHorizonte RuadoOuro,136,Sala301–Serra–CEP:30220-000 313284-0575 corporate.linuxplace.com.br 4 4 4 4

Microhard BeloHorizonte RuaRepúblicadaArgentina,520–Sion–CEP:30315-490 313281-5522 www.microhard.com.br 4 4 4 4 4

TurboSite BeloHorizonte RuaParaíba,966,Sala303–Savassi–CEP:30130-141 0800702-9004 www.turbosite.com.br 4 4 4

ParanáiSolve Curitiba Av.CândidodeAbreu,526,Cj.1206B–CEP:80530-000 41252-2977 www.isolve.com.br 4 4 4

MandrivaConectiva Curitiba RuaTocantins,89–CristoRei–CEP:80050-430 413360-2600 www.mandriva.com.br 4 4 4 4

TelwayTecnologia Curitiba RuaFranciscoRocha1830/71 413203-0375 www.telway.com.br 4 4

PernambucoFucturaTecnologia Recife RuaNicarágua,159–Espinheiro–CEP:52020-190 813223-8348 www.fuctura.com.br 4 4

Rio de JaneiroClavisBBRConsultoriaeminformática

RiodeJaneiro Av.RioBranco156,1303–Centro–CEP:20040-901 212561-0867 www.clavis.com.br 4 4 4

LinuxSolutionsInformática RiodeJaneiro Av.PresidenteVargas962–sala1001 212526-7262 www.linuxsolutions.com.br 4 4 4 4

MúltiplaTecnologiadaInformação RiodeJaneiro Av.RioBranco,37,14°andar–CEP:20090-003 212203-2622 www.multipla-ti.com.br 4 4 4 4

NSITraining RiodeJaneiro RuaAraújoPortoAlegre,71,4ºandarCentro–CEP:20030-012 212220-7055 www.nsi.com.br 4 4

OpenIT RiodeJaneiro RuadoMercado,34,Sl,402–Centro–CEP:20010-120 212508-9103 www.openit.com.br 4 4

UnipiTecnologias CamposdosGoytacazes

Av.AlbertoTorres,303,1ºandar–Centro–CEP:28035-581 222725-1041 www.unipi.com.br 4 4 4 4

Rio Grande do Sul4upSoluçõesCorporativas NovoHamburgo Pso.CalçadãoOsvaldoCruz,54sl.301CEP:93510-015 513581-4383 www.4up.com.br 4 4 4 4

DefinitivaInformática NovoHamburgo RuaGeneralOsório,402-HamburgoVelho 5135943140 www.definitiva.com.br 4 4 4 4

RedeHostInternet Gravataí RuaDr.LuizBastosdoPrado,1505–Conj.301CEP:94010-021 5140620909 www.redehost.com.br 4 4 4

Solis Lajeado Av.7deSetembro,184,sala401–BairroMoinhosCEP:95900-000

513714-6653 www.solis.coop.br 4 4 4 4 4

DualCon NovoHamburgo RuaJoaquimPedroSoares,1099,Sl.305–Centro 513593-5437 www.dualcon.com.br 4 4 4 4

Datarecover PortoAlegre Av.CarlosGomes,403,Sala908,CentroComercialAtriumCenter–BelaVista–CEP:90480-003

513018-1200 www.datarecover.com.br 4 4

LM2Consulting PortoAlegre RuaGermanoPetersenJunior,101-Sl202–Higienópolis–CEP:90540-140

513018-1007 www.lm2.com.br 4 4 4

Lnx-ITInformaçãoeTecnologia PortoAlegre Av.VenâncioAires,1137–RioBranco–CEP:90.040.193 513331-1446 www.lnx-it.inf.br 4 4 4 4

TeHospedo PortoAlegre RuadosAndradas,1234/610–Centro–CEP:90020-008 513301-1408 www.tehospedo.com.br 4 4

PropusInformática PortoAlegre RuaSantaRita,282–CEP:90220-220 513024-3568 www.propus.com.br 4 4 4 4 4

São PauloWsHost ArthurNogueira RuaJerere,36–VistaAlegre–CEP:13280-000 193846-1137 www.wshost.com.br 4 4 4

DigiVoice Barueri Al.Juruá,159,Térreo–Alphaville–CEP:06455-010 114195-2557 www.digivoice.com.br 4 4 4 4 4

DextraSistemas Campinas RuaAntônioPaioli,320–Pq.dasUniversidades–CEP:13086-045 193256-6722 www.dextra.com.br 4 4 4

InsigneFreeSoftwaredoBrasil Campinas Av.AndradesNeves,1579–Castelo–CEP:13070-001 193213-2100 www.insignesoftware.com 4 4 4

Microcamp Campinas Av.ThomazAlves,20–Centro–CEP:13010-160 193236-1915 www.microcamp.com.br 4 4

PC2ConsultoriaemSoftwareLivre

Carapicuiba RuaEdeia,500-CEP:06350-080 113213-6388 www.pc2consultoria.com 4 4

Omaiordiretóriodeempresasqueoferecemprodutos,soluçõeseserviçosemLinuxeSoftwareLivre,organizadoporEstado.Sentiufaltadonomedesuaempresaaqui?Entreemcontatocomagente:11 3675-2600 ou [email protected]

79

| SERVIÇOSLinux.local

Empresa Cidade Endereço Telefone Web 1 2 3 4 5 6São Paulo (continuação)

EpopéiaInformática Marília RuaGoiás,392–BairroCascata–CEP:17509-140 143413-1137 www.epopeia.com.br 4

Redentor Osasco RuaCostantePiovan,150–Jd.TrêsMontanhas–CEP:06263-270 112106-9392 www.redentor.ind.br 4

Go-Global SantanadeParnaíba

Av.YojiroTakaoca,4384,Ed.ShoppingService,Cj.1013–CEP:06541-038

112173-4211 www.go-global.com.br 4 4 4

AW2NET SantoAndré RuaEdsonSoares,59–CEP:09760-350 114990-0065 www.aw2net.com.br 4 4 4

AsyncOpenSource SãoCarlos RuaOrlandoDamiano,2212–CEP13560-450 163376-0125 www.async.com.br 4 4 4

DelixInternet SãoJosédoRioPreto

RuaVoluntáriodeSãoPaulo,30669º–Centro–CEP:15015-909 114062-9889 www.delixhosting.com.br 4 4 4

2MITecnologiaeInformação SãoPaulo RuaFrancoAlfano,262–CEP:5730-010 114203-3937 www.2mi.com.br 4 4 4 4

4Linux SãoPaulo RuaTeixeiradaSilva,660,6ºandar–CEP:04002-031 112125-4747 www.4linux.com.br 4 4

ACasadoLinux SãoPaulo Al.Jaú,490–Jd.Paulista–CEP:01420-000 113549-5151 www.acasadolinux.com.br 4 4 4

AccenturedoBrasilLtda. SãoPaulo RuaAlexandreDumas,2051–ChácaraSantoAntônio–CEP:04717-004

115188-3000 www.accenture.com.br 4 4 4

ACRInformática SãoPaulo RuaLincolndeAlbuquerque,65–Perdizes–CEP:05004-010 113873-1515 www.acrinformatica.com.br 4 4

AgitInformática SãoPaulo RuaMajorQuedinho,111,5ºandar,Cj.508–Centro–CEP:01050-030

113255-4945 www.agit.com.br 4 4 4

Altbit-InformáticaComércioeServiçosLTDA.

SãoPaulo Av.FranciscoMatarazzo,229,Cj.57–ÁguaBranca–CEP05001-000

113879-9390 www.altbit.com.br 4 4 4 4

AS2M-WPCConsultoria SãoPaulo RuaTrêsRios,131,Cj.61A–BomRetiro–CEP:01123-001 113228-3709 www.wpc.com.br 4 4 4

Blanes SãoPaulo RuaAndréAmpére,153–9ºandar–Conj.91CEP:04562-907(próx.Av.L.C.Berrini)

115506-9677 www.blanes.com.br 4 4 4 4 4

BullLtda SãoPaulo Av.Angélica,903–CEP:01227-901 113824-4700 www.bull.com 4 4 4 4

CommlogikdoBrasilLtda. SãoPaulo Av.dasNaçõesUnidas,13.797,BlocoII,6ºandar–Morumbi–CEP:04794-000

115503-1011 www.commlogik.com.br 4 4 4 4 4

ComputerConsultingProjetoeConsultoriaLtda.

SãoPaulo RuaCaramuru,417,Cj.23–Saúde–CEP:04138-001 115071-7988 www.computerconsulting.com.br 4 4 4 4

ConsistConsultoria,Siste-maseRepresentaçõesLtda.

SãoPaulo Av.dasNaçõesUnidas,20.727–CEP:04795-100 115693-7210 www.consist.com.br 4 4 4 4

DomínioTecnologia SãoPaulo RuadasCarnaubeiras,98–MetrôConceição–CEP:04343-080 115017-0040 www.dominiotecnologia.com.br 4 4

ÉticaTecnologia SãoPaulo RuaNovaYork,945–Brooklin–CEP:04560-002 115093-3025 www.etica.net 4 4 4 4

GetronicsICTSolutionsandServices

SãoPaulo RuaVerboDivino,1207–CEP:04719-002 115187-2700 www.getronics.com/br 4 4 4

Hewlett-PackardBrasilLtda. SãoPaulo Av.dasNaçõesUnidas,12.901,25ºandar–CEP:04578-000 115502-5000 www.hp.com.br 4 4 4 4 4

IBMBrasilLtda. SãoPaulo RuaTutóia,1157–CEP:04007-900 0800-7074837 www.br.ibm.com 4 4 4 4

iFractal SãoPaulo RuaFiaçãodaSaúde,145,Conj.66–Saúde–CEP:04144-020 115078-6618 www.ifractal.com.br 4 4 4

Integral SãoPaulo RuaDr.GentilLeiteMartins,295,2ºandarJd.Prudência–CEP:04648-001

115545-2600 www.integral.com.br 4 4

ItautecS.A. SãoPaulo Av.Paulista,2028–CEP:01310-200 113543-5543 www.itautec.com.br 4 4 4 4 4

KomputerInformática SãoPaulo Av.JoãoPedroCardoso,392ºandar–Cep.:04335-000 115034-4191 www.komputer.com.br 4 4 4

KonsultexInformatica SãoPaulo Av.Dr.GuilhermeDumontVillares,14106andar,CEP:05640-003 113773-9009 www.konsultex.com.br 4 4 4

LinuxKomputerInformática SãoPaulo Av.Dr.LinodeMoraesLeme,185–CEP:04360-001 115034-4191 www.komputer.com.br 4 4 4 4

LinuxMall SãoPaulo RuaMachadoBittencourt,190,Cj.2087–CEP:04044-001 115087-9441 www.linuxmall.com.br 4 4 4

LivrariaTempoReal SãoPaulo Al.Santos,1202–CerqueiraCésar–CEP:01418-100 113266-2988 www.temporeal.com.br 4 4 4

LocasiteInternetService SãoPaulo Av.BrigadeiroLuizAntonio,2482,3ºandar–Centro–CEP:01402-000

112121-4555 www.locasite.com.br 4 4 4

Microsiga SãoPaulo Av.BrazLeme,1631–CEP:02511-000 113981-7200 www.microsiga.com.br 4 4 4

Locaweb SãoPaulo Av.Pres.JuscelinoKubitschek,1.830–Torre4VilaNovaConceição–CEP:04543-900

113544-0500 www.locaweb.com.br 4 4 4

NovatecEditoraLtda. SãoPaulo RuaLuisAntoniodosSantos,110–Santana–CEP:02460-000 116979-0071 www.novateceditora.com.br 4

NovellAméricaLatina SãoPaulo RuaFunchal,418–VilaOlímpia 113345-3900 www.novell.com/brasil 4 4 4

OracledoBrasilSistemasLtda. SãoPaulo Av.AlfredoEgídiodeSouzaAranha,100–BlocoB–5ºandar–CEP:04726-170

115189-3000 www.oracle.com.br 4 4

ProelbraTecnologiaEletrônicaLtda.

SãoPaulo Av.Rouxinol,1.041,Cj.204,2ºandarMoema–CEP:04516-001 115052-8044 www.proelbra.com.br 4 4 4

Provider SãoPaulo Av.CardosodeMelo,1450,6ºandar–VilaOlímpia–CEP:04548-005

112165-6500 www.e-provider.com.br 4 4 4

RedHatBrasil SãoPaulo Av.BrigadeiroFariaLima,3900,Cj818ºandarItaimBibi–CEP:04538-132

113529-6000 www.redhat.com.br 4 4 4

SamuraiProjetosEspeciais SãoPaulo RuaBarãodoTriunfo,550,6ºandar–CEP:04602-002 115097-3014 www.samurai.com.br 4 4 4

SAPBrasil SãoPaulo Av.dasNaçõesUnidas,11.541,16ºandar–CEP:04578-000 115503-2400 www.sap.com.br 4 4 4

SavantTecnologia SãoPaulo Av.Brig.LuisAntonio,2344cj13–Jd.Paulista–CEP:01402-000 112925-8724 www.savant.com.br 4 4 4 4 4

SimplesConsultoria SãoPaulo RuaMouratoCoelho,299,Cj.02Pinheiros–CEP:05417-010 113898-2121 www.simplesconsultoria.com.br 4 4 4

SmartSolutions SãoPaulo Av.Jabaquara,2940cj56e57 115052-5958 www.smart-tec.com.br 4 4 4 4

SnapIT SãoPaulo RuaJoãoGomesJunior,131–Jd.Bonfiglioli–CEP:05299-000 113731-8008 www.snapit.com.br 4 4 4

StefaniniITSolutions SãoPaulo Av.Brig.FariaLima,1355,19º–Pinheiros–CEP:01452-919 113039-2000 www.stefanini.com.br 4 4 4

SybaseBrasil SãoPaulo Av.JuscelinoKubitschek,510,9ºandarItaimBibi–CEP:04543-000 113046-7388 www.sybase.com.br 4 4

UnisysBrasilLtda. SãoPaulo R.AlexandreDumas1658–6º,7ºe8ºandares–ChácaraSantoAntônio–CEP:04717-004

113305-7000 www.unisys.com.br 4 4 4 4

Utah SãoPaulo Av.Paulista,925,13ºandar–CerqueiraCésar–CEP:01311-916 113145-5888 www.utah.com.br 4 4 4

Webnow SãoPaulo Av.NaçõesUnidas,12.995,10ºandar,Ed.PlazaCentenário–ChácaraItaim–CEP:04578-000

115503-6510 www.webnow.com.br 4 4 4

WRLInformáticaLtda. SãoPaulo RuaSantaIfigênia,211/213,Box02–Centro–CEP:01207-001 113362-1334 www.wrl.com.br 4 4 4

Systech Taquaritinga RuaSãoJosé,1126–Centro–CaixaPostal71–CEP:15.900-000 163252-7308 www.systech-ltd.com.br 4 4 4

Linux.local

Linux Magazine #70 | Setembro de 2010

80

SE

RV

IÇO

S

http://www.linuxmagazine.com.br

Nerdson – Os quadrinhos mensais da Linux Magazine

Índice de anunciantesEmpresa Pág.Globo.com 02,03

Latinoware 05

Intelig 08,09

CentralServer 11

DCS 13

RedeHost 15

UOLHost 17

Unodata 19

Othos 23

WatchGuard 25

Futurecom 27

Impacta 29

Locaweb 33

F13 55

Coalti 81

Bull 83

Tecla 84

Calendário de eventos

Evento Data Local Informações

10a Jornada Goiana em Engenharia de Software

24 de setembro Goiânia, GO www.lg.com.br/jornada

Encontro VOIP Center SP 21 a 23 de setembro São Paulo, SP www.encontrovoipcenter.com.br

II COALTI 15 a 17 de outubro Maceió, AL www.lg.com.br/jornada

CNASI 2010 20 a 22 de São Paulo, SP www.cnasi.com

Python Brasil 6 21 a 23 de outubro Curitiba, PR www.pythonbrasil.org.br

Futurecom 2010 25 a 28 de outubro São Paulo, SP www.futurecom.com.br

SOLISC – Congresso Catarinense de Software Livre

22 e 23 de outubro Florianópolis, SC www.solisc.org.br/2010

Latinoware 2010 10 a 12 de novembroFoz do Iguaçu, PR

www.latinoware.org

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

Na Linux Magazine #71

PR

EVIE

W

Na Ubuntu User #20

Ubuntu 10.10Conheça os novos recursos do Ubuntu 10.10 Maverick Meerkat (surica­to independente), que promete ter significativas mudanças na interface gráfica, totalmente redesenhada. Inicialização mais rápida, navegador mais rápido e experiência web mais leve e veloz são as novidades anun­ciadas para esta versão. n

Firewall no UbuntuAprenda a trabalhar com o firewall do Ubuntu, configurando­o da forma correta para manter o seu computa­dor e seus dados sempre seguros. n

OpManager7À medida que os negócios crescem, a infra­estrutura de TI deve acompanhar esse ritmo e se manter 100% disponível para que a empresa possa se manter em atividade contínua e focada nas atividades relativas ao negócio. n

Tivoli e LinuxHá tempos a IBM vem investindo pesadamente em Linux, não apenas no desenvolvimento de aplicações e inclusão desse sistema operacional em suas soluções em ambientes distribuídos, como também no ambiente do mainframe. A suíte Tivoli é um excelente exemplo do que já foi feito nessas três linhas de investimentos. n

Escritórios remotosA melhoria da continuidade dos negócios para escritó­rios remotos é crítica e merece absoluta atenção, para evitar a perda de produtividade, custo de mão­de­obra adicional e outros problemas que afetam significati­vamente a estabilidade financeira das empresas. n