linux magazine # 70 ti virtual · relembre alguns editores de como ganhar dinheiro texto antigos...
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 Brittanica, 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 OpenStreetMap: 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 Bengali, 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 Grameen 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 conceito 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, contabilizando uma inadimplência de menos de 3%. O banco não tem advogados. 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 empresas 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 dedicarse 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, logicamente, com produtos Linux amigáveis e que contém especificações incluí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 configuraçã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, especialmente as que combinam fax e scanner (como a série multifuncional da HP), exigem um trabalho extra. Para essas, instale o pacote hplip.
Se nada disso funcionar, tente configurar a impressora com um driver de um modelo mais antigo da mesma marca. Às vezes, as impressoras usam o mesmo chipset interno, ela só parece diferente e tem um número 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 agenda, 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 é compatí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 Android k9mail, muitas vezes chamado apenas de K9 , é o primeiro a apoiar a linha de criptografia e descriptografia de emails 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 K9 possui suporte IMAP melhor do que o cliente de email original do Android.
Os desenvolvedores do k9mail implementaram também outras novas funções e
melhorias. Por exemplo, os usuários podem agora escolher uma identidade de remetente de qualquer uma das suas contas e a interface de usuário oferece agora botões dedicados para o “arquivo” de mensagens e marcação como “spam”.
Mais detalhes sobre o k9mail podem ser encontrados no Release Notes e na página wiki do projeto . 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 remetente de qualquer uma das suas contas e a interface de usuário oferece agora
ase Notes e na página wiki do projeto . 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á ferramentas que permitem apagar dados, bem como backup dos mesmos, bloqueio e localização de smartphones perdidos. Os valores da transaçã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 sistemas operacionais, entre eles o Blackberry, iPhone, Windows Mobile, Symbian, Android e aplicativos em Java.
O WaveSecure permite que os usuários possam bloquear seus dispositivos remotamente, assim como realizar a gestão de dados do apare
lho perdido, fazendo, por exemplo, um backup. Todos os telefones bloqueados 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 ereader, 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 ereaders. 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 WiFi custa US$ 139. A versão com 3G sai por US$ 189. Ambos estã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 pistas, 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 encontrar informações relevantes.
O LinkedIn afirmou que a compra deve ajudar a melhorar 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 presidenteexecutivo da companhia, Jeff Weiner em entrevista. “Esta é uma de nossas 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 mSpoke 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 diferentes 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 auxiliar 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 passoapasso nas próximas páginas irá lhe auxiliar na instalação e configuração de um ambiente de cloud com esta incrível ferramenta.
Ainda nesta seção, você irá encontrar um excelente artigo sobre o Ganeti, gerenciador open source de máquinas virtuais criado pela Google. O Ganeti é capaz de gerenciar servidores virtuais na plataforma do hypervisor Xen sobre sistema operacional Linux em clusters de PCs comuns. Após ser instalado em uma máquina física (ou cluster) equipada com Linux e Xen, o gerenciador
se encarrega das tarefas de criação de discos virtuais, instalação de sistemas 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. Apresentamos novo projeto vrdpldap, que oferece autenticação baseada em LDAP para instâncias do VirtualBox na rede.
E finalizando, saiba como obter capacidade de escrita em dispositivos 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 alternativa de alta funcionalidade e baixo orçamento que alvoroçou o mundo de sistemas de telefonia empresarial [1]. Talvez o software mais inquietante 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 FreeSwitch apareceu em ambientes de
produção como um switch de telecomunicaçõ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 projeto 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 identidade é semelhante à relação entre cURL (aplicativo) e libcurl (biblioteca).
O FreeSwitch tem sido utilizado em alguns cenários exóticos; no entanto, os novatos nos aplicativos de telefonia irão se dar bem com o FreeSwitch 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 apreciar o poder e a flexibilidade dessa versátil ferramenta de telefonia.
Instalando o FreeSwitchNo momento, a versão estável corrente 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écompilados; porém, recomendo a compilação com o código fonte.
Primeiro, descompacte e instale a fonte. Neste exemplo, fiz o download 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 FreeSWITCH que está sendo executada, incluindo a revisão SVN. O comando status mostra informações sobre sua instância do FreeSWITCH incluindo 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 dispositivos de entrada e de saída selecionados. 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 arquivos MOH (music on hold) instalados, 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 chamada foi bem sucedida. Caso contrário certifiquese de que os arquivos MOH estão corretamente instalados. Desligue com o comando pa hangup.
Para se certificar de que os dispositivos de entrada e de saída estão funcionando, faça o teste:
pa call 9996
Agora, quando falar no dispositivo de entrada, sua voz ecoará no dispositivo de saída. O comando pa hangup terminará a ligação.
Como é possível ver, o FreeSWITCH 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 é normalmente chamado de hard phone, já
o fone baseado em software é apropriadamente chamado de softphone. Vários tipos de hard phones estão disponíveis. Os softphones têm versões proprietárias e FLOSS. Uma versão gratuita popular – mas sem código aberto – é o XLite 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 sistema operacional, contanto que sejam compatíveis com o SIP.
Para começar, baixe o XLite no seu sistema e faça a instalação padrão (a instalação do softphone no mesmo sistema que executa o FreeSWITCH não é recomendada; no entanto, em muitos casos, ela funcionará para testes).
Agora, inicie o XLite 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á disponível no XLite, 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 chamada 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 FreeSWITCH possui muitos recursos. A ta-bela 1 mostra destaques Dialplan e
a tabela 2 mostra os arquivos e subdiretórios mais importantes da configuraçã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 configuraçã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 plano 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 programa 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 disponí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 apenas 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 segundo 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 permitir 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 é qualquer dígito entre 0 e 9 – e armazena o valor correspondente na variável $1”. Simplificando, corresponde a qualquer coisa entre 10001019, 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 XLite, abra as configuraçõ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, é possível fazer chamadas de seu próprio
ramal. Caso haja um segundo telefone, registreo como 1000 e usuo para chamar 1500.
Fora do switch LocalUma vantagem do VoIP são as ligações via internet gratuitas ou muito baratas. O FreeSWITCH pode rotear 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 mudança. Um simples teste é chamar o servidor de conferência pública FreeSWITCH. 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, haverá uma voz TTS (texttospeach) 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 serviç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 conexões com esses provedores. Os gateways são usados para registros no provedor. Caso já possua um provedor SIP, use as configurações desse provedor. O wiki do FreeSWITCH oferece exemplos de configurações para alguns provedores [5]. Neste exemplo, mostrarei como configurar um gateway para iptel.org, que oferece contas SIP gratuitas.
Primeiramente, crie uma conta no site iptel.org [6] e anote seu nome de usuário e senha. Depois, crie um novo arquivo em $CONF/sip_profiles/external. Certifiquese 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 FreeSWITCH a reiniciar o perfil exter-nal após carregar os dados XML.O comando reloadxml é opcional; porém, coso tenha feito mudanças nos dados XML (criando ou editando um arquivo), será preciso que essas mudanças sejam carregadas na reinicializaçã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 Dialplan. A configuração padrão possui um contexto público que trata as chamadas recebidas pela internet como confiáveis.
Primeiro, é preciso permitir chamadas 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 caracteres numéricos).
A chamada é roteada para o ramal especificado nos parâmetros informados 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 registrado 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 ótima qualidade de voz nas chamadas com codecs gratuitos e de código aberto. O codec de código aberto CELT [8] possui uma ótima qualidade 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 ressaltar é que codecs de alta qualidade podem expor as limitações de headsets. 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. Localize a linha <param name=”sample-rate” value=”8000”/>, altere o valor para 48000 e salve o arquivo.
No prompt do FreeSWITCH digite 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ápida. As conferências FreeSWITCH podem misturar chamadas com quaisquer codecs e taxas de sampling. De fato, é possível fazer uma chamada
de conferência FreeSWITCH com o PSTN com +12137991400 e comparar a diferença entre codecs VoIP de alta qualidade e e a baixa qualidade do PSTN.
Próximo passoEsta breve introdução ao FreeSWITCH 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 FreeSwitch 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 vibrante oferece suporte aos novatos e veteranos, portanto, juntese 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
NÇ
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 responsabilidades: o único usuário com permissão de modificar
as configurações do sistema é o onipresente root. Os usuários normais estão restritos ao seu desktop.
No uso diário, essa restrição pode ser um aborrecimento, especialmente 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 suporta 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 acertar 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. Depois 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 reló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 comparação com su e sudo, os aplicativos 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 PolicyKit 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 maioria das configurações do sistema. O OpenSUSE usa o PolicyKit para permitir que qualquer usuário atualize softwares, mas somente para isso.
Além disso, a versão 0.9.1 do sistema foi completamente reformulada; as versões mais recentes do PolicyKit não podem mais ser usadas com programas mais antigos. Por isso, os desenvolvedores 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 é extraoficialmente chamada de PolicyKit-1 ou polkit-1 para distinguila das outras.
A última versão não suporta o gerenciador gráfico de privilégios, que funciona apenas em versões mais antigas do PolicyKit, até a 0.9.0, mais precisamente. Para as tarefas de gerenciamento de privilégios, a única alternativa é usar seu editor favorito, mas isso não é tão complicado quanto se possa imaginar.
Dono da casaO PolicyKit1 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 configuraçã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 administrador. 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 administradores privilegiados. É fácil modificar 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áfica, portanto, criar seu próprio arquivo de configuração irá sobrescrever qualquer outro cujo nome principiar com um número menor.
Para dar privilégios administrativos 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 importa, ele só precisa começar com um número mais alto do que os outros (60 nesse exemplo). Os futuros administradores 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 diretó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 simplesmente avalia todos os arquivos .pkla desse diretório em ordem lexicográ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 palavrachave 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 palavraschaves 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á informar 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, fornece 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 usuário forneça a senha administrativa. 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 mesmo padrão, ResultInactive cuida das buscas originárias de sessões inativas; ResultAny não faz distinção entre sessõ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 produçã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 imediatamente, sem necessidade de reinicialização. No Ubuntu, no entanto, as alterações não modificam a capacidade 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 cadeado 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 Ubuntu, 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 programas do sistema. Para permitir que isso aconteça, o pkexec substitui o conhecido 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 impossibilita a inicialização de programas X11 com a conta de outro usuário.
Por padrão, apenas administradores – 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 programa. 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 programa através do pkexec. Se é necessário permitir que carlo execute apt-get apenas após fornecer sua senha, outro arquivo de configuração precisa 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 requisiçã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 subdiretó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, é preciso 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 qualquer 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 apenas 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 senha 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 programa é 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. Infelizmente, o pkexec não confere os parâ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 flexí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, restringe o usuário a funções individuais do sistema. Além disso, os usuários não precisam recorrer à linha de comando; 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 aplicativos; os sistemas de desktop precisam 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 ainda 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.
72
BPEL
http://www.linuxmagazine.com.br
BPELP
RO
GR
AM
AÇ
ÃO
Otimização do fluxo de trabalho
Processos redesenhados
ConstruaferramentasparagerenciamentodofluxodetrabalhocomBPEL.por Michael Kleinhenz
Um funcionário em uma viagem 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 processo, removendo, assim, a necessidade de inserir informações redundantes, porém, o que aconteceria se a empresa 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 processos são a interface entre os departamentos de produção e o de TI. Ao mesmo tempo, desenvolvedores e administradores precisam monitorar todo o sistema e seus processos internos – um desafio para arquitetos e designers.
O propósito do gerenciamento de sistemas de fluxo de trabalho (WFMS – Workflow Management Systems) é modelar operações independentemente 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 coordenar e verificar a instância tangível do processo moldado.
Mecanismos de fluxo de trabalho oferecem meios para tratar da cadeia 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 empresa una componentes de diferentes grupos. Por exemplo, é possível empregar sistemas SAP ao departamento 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 individuais são como instrumentos de uma orquestra: o fluxo de trabalho direciona e integra partes individuais para criar um todo harmônico. Peritos nesse campo referemse 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 documentos XML para descrever processos 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 recente. 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 diretó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 Tomcat, 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 navegador 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 adicional 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, oferece paletas de ação de programas BPEL que suportam processos baseados 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 fornecidas diretamente por serviços web como elementos invocados, ou estão disponíveis como variáveis manipulá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 atividades 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 processo 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 elementos 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 estruturas complexas. Manipuladores de falhas detectam erros de execução do processo e responde, digamos, derrubando a conexão do banco de dados. Em contraste, manipuladores 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 levar 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, é impossí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 abordagem requisição/resposta do HTTPé insuficiente quando a resposta demora muito a chegar. O tempo de uma requisição a um serviço sincronizado 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 requisiçã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 servidor envia a resposta ao endereço especificado para que o mecanismo BPEL nesse endereço possa continuar 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âncias estão ativas ao mesmo tempo no mecanismo. Por exemplo, algumas instâncias de “Aprovar viagem” podem estar sendo executadas simultaneamente 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ância do processo com referência aos parâmetros. No caso de uma viagem de negócios, o nome e a data da viagem provavelmente seriam suficientes. 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 manipuladores 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 modelada 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 vantagem é que o designer do processo pode atribuir manipuladores de erros e contramedidas localmente para cada passo.
Exemplo: reservar uma viagem de negóciosUsando o exemplo da viagem descrito no início deste artigo, posso agora modelar e mais tarde iniciar um processo simples. Quando o servidor do aplicativo e o BPEL forem baixados e instalados, o designer modela parte da reserva da viagem de negócios. Esse exemplo simples funciona sem compensação e chamadas assíncronas. 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 compreende quatro registros: o nome de usuário de quem vai viajar, o trajeto 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 converter os passos individuais da modelagem em arquivos XML. O BPEL separa informações de interface de serviços web. A linguagem usa operaçõ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 manipulador 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 licenç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 diretamente 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 iniciar 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. Primeiramente, 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 definições achem umas às outras, se o designer produzir algum erro, é preciso 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, execute 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 arquivo é criado selecionandose File / Export / Orchestration / Business Process Archive File e escolhendo File como tipo de distribuição. Esse passo escreve o arquivo BPR no disco. 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, é possí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 segundos 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 instalados 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 visualizaçã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 fluxo de trabalho com o BPEL não é trivial. Várias abordagens à modelagem de processo nos negócios, noções diferentes, variantes permitidas na implementação do padrão, as múltiplas camadas de um SOA e a variedade de produtos de software 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 consegue dar conta de quase tudo no fluxo de trabalho de negócios. Isso mantém os desenvolvedores à vontade e significa que eles podem suportar diversos métodos de modelagem.
Porém, não subestime a complexidade: 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á brechas 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 inteligí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 designer do processo precisa entender as sutilezas técnicas do fundamento 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 facilidade para o usuário final nunca foi a meta dessa tecnologia: o BPEL é uma plataforma de integração técnica 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 (suricato 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 anunciadas para esta versão. n
Firewall no UbuntuAprenda a trabalhar com o firewall do Ubuntu, configurandoo da forma correta para manter o seu computador e seus dados sempre seguros. n
OpManager7À medida que os negócios crescem, a infraestrutura 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ãodeobra adicional e outros problemas que afetam significativamente a estabilidade financeira das empresas. n