09/2010
MADDOG p.28
DADOS CONFIÁVEIS p.21
Relembre alguns editores de
texto antigos que batem um bolão.
NEGÓCIOS p.30
Você tem certeza de que seus
repositórios estão seguros?
Como ganhar dinheiro
com Open Source.
# 70 Setembro 2010
Linux Magazine
# 70
A REVISTA DO PROFISSIONAL DE TI
CEZAR TAURION p.34
O Código Aberto como
incentivo à inovação
#44 07/08
R$ 13,90
€ 7,50
00044
VIRTUALIZAÇÃO LINUX PARK 2008 p.28
Iniciada em Porto Alegre a temporada
de seminários Linux Park de 2008
A REVISTA DO PROFISSIONAL DE TI
9 771806 942009
TI VIRTUAL TI VIRTUAL
CASE ALFRESCO p.26
A Construcap agilizou seus
projetos com o Alfresco
GOVERNANÇA COM
XEN GANETI SEJA UM BOM GESTOR E UTILIZE AS
MELHORES PRÁTICAS ADOTADAS E
RECOMENDADAS PELOS PROFISSIONAIS
MAIS EXPERIENTES NESSA ÁREA p.36
INFRAESTRUTURA DE CLOUD E AMBIENTES VIRTUALIZADOS SÃO A NOVA
REALIDADE DA TECNOLOGIA. p. 31
» 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
VEJA TAMBÉM NESTA EDIÇÃO:
Com o DNSSEC, a resolução
de nomes fica protegida
de ataques. Mas seu
preço vale a pena?
» Relatórios do Squid com o SARG p.60
REDES: IPV6 p.64
» Becape de bancos de dados com a Libferris p.46
Conheça as vantagens da
nova versão do Internet
Protocol, e veja por que
é difícil adotá-la
» Java, Ruby e Rails: conheça o JRuby on Rails p.74
» Benchmarks do GCC 4.3? p.58
» LPI nível 2: Servidores NIS e DHCP p.52
VIRTUALBOX LDAP » 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
WWW.LINUXMAGAZINE.COM.BR
GRÁTIS:
CD COM XCP
Xen Cloud Plataform
versão 0.5, instalável, 64 bits.
XEN CLOUD PLATFORM REDES: VOIP p.60
Utilize o FreeSWITCH, plataforma
de telefonia poderosa e versátil.
VOIP POLICYKIT FREESWITCH AUFS2
SEGURANÇA:
POLICYKIT p.66
Abordagem flexível para atribuição
de privilégios administrativos.
VEJA TAMBÉM NESTA EDIÇÃO:
» Otimização do fluxo de trabalho com BPEL p.72
» Sistema de arquivos aufs2 p.56
» Restauração de configurações p.53
» Bibliotecas compartilhadas em C p.22
WWW.LINUXMAGAZINE.COM.BR
GRÁTIS
ÍNDICE
CAPA
Futuro virtualizado
31
O
próximo passo da tecnologia, é certamente, o
uso inteligente de soluções de virtualização.
Tolerância a falhas com o Xen 4 e Remus
32
A
nova versão 4.0 do Xen é rica em recursos por si
só e agora se uniu ao Remus para uma integração
tolerante a falhas com alta disponibilidade.
Exame minucioso
36
A
libguestfs oferece um conjunto poderoso de ferramentas
para examinar imagens de discos em profundidade.
Virtualização com Ganeti e Xen
41
A
prenda como utilizar o poderoso Ganeti, que em
conjunto com o Xen irá lhe auxiliar no gerenciamento
de máquinas virtuais com alta disponibilidade.
VirtualBox com LDAP
44
A
dministradores especializados em virtualização centralizada
de desktop, há muito tempo se aborrecem com a falta de
mecanismos de autenticação sofisticados no VirtualBox.
O novo projeto vrdp-ldap oferece agora autenticação
baseada em LDAP para instâncias do VirtualBox na rede.
Ambientes virtuais com Open Source
48
É
possível manter soluções robustas para virtualização
utilizando Open Source. Conheça as ferramentas
com as quais você pode se beneficiar.
6
http://www.linuxmagazine.com.br
Linux Magazine 70 | ÍNDICE
COLUNAS
Klaus Knopper
TUTORIAL
12
Escrita invisível
Charly Kühnast
14
Zack Brown
16
O
btenha capacidade de escrita em dispositivos
somente leitura com o sistema de arquivos aufs.
Augusto Campos
21
Kurt Seifried
18
Alexandre Borges
22
56
NOTÍCIAS
Geral
➧ Android aceita comandos de voz e redige textos ditados
24
REDES
➧ O k9mail para Android possui suporte ao OpenPGP
Fale com tranquilidade
CORPORATE
Notícias
➧ McAfee compra empresa especializada em segurança mobile
26
60
O
FreeSWITCH é uma plataforma de telefonia poderosa
e versátil que pode ir de um softphone até um PBX.
➧ LinkedIn compra empresa para melhorar filtros de informações
➧ Amazon começa a vender novo Kindle a partir de US$ 139
Coluna: Jon “maddog” Hall
28
Coluna: Cezar Taurion
30
SEGURANÇA
CD
Xen para todos
50
Poderes ao alcance das mãos
66
S
e o Linux fechar as portas para você, o primeiro impulso pode
ser recorrer ao comando su ou sudo. O PolicyKit oferece uma
abordagem mais flexível para atribuir privilégios administrativos.
O
próximo passo da tecnologia, é certamente, o uso inteligente de soluções de virtualização.
PROGRAMAÇÃO
Processos redesenhados
ANÁLISE
De volta ao começo
52
72
C
onstrua ferramentas para gerenciamento
do fluxo de trabalho com BPEL.
D
eixe que seus usuários se divirtam utilizando o sistema e restaure
as configurações originais no próximo login ao seu estado original.
SERVIÇOS
Linux Magazine #70 | Setembro de 2010
Editorial
04
Emails
10
Linux.local
78
Eventos
80
Preview
82
7
Altruísmo produtivo
Expediente editorial
Diretor Geral
RafaelPeregrinodaSilva
[email protected]
Editora
FláviaJobstraibizer
[email protected]
EDITORIAL
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íveisteremsidotomados
duranteaproduçãodestarevista,aeditoranãoéresponsável
por eventuais imprecisões nela contidas ou por consequênciasqueadvenhamdeseuuso.Autilizaçãodequalquermaterialdarevistaocorreporcontaeriscodoleitor.
Nenhum material pode ser reproduzido em qualquer meio, em
parteounotodo,sempermissãoexpressadaeditora.Assume-se
quequalquercorrespondênciarecebida,talcomocartas,emails,
faxes,fotografias,artigosedesenhos,sejamfornecidosparapublicaçãooulicenciamentoaterceirosdeformamundialnão-exclusivapelaLinuxNewMediadoBrasil,amenosqueexplicitamenteindicado.
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:RRDonnelley
DistribuídaemtodoopaíspelaDinapS.A.,
DistribuidoraNacionaldePublicações,SãoPaulo.
Atendimento Assinante
www.linuxnewmedia.com.br/atendimento
SãoPaulo: +55(0)1135129460
RiodeJaneiro: +55(0)2135120888
BeloHorizonte:+55(0)3135161280
ISSN 1806-9428
Impresso no Brasil
.
4
Quando se divulga o Software Livre e de Código Aberto (SL/CA),
é comum enaltecermos as suas vantagens enquanto tecnologia:
SL/CA estimula a competição, promove inovação mais rápida, fornece
soluções mais flexíveis, confere controle e independência ao usuário
– seja ele doméstico ou corporativo –, é, via de regra, mais estável e
seguro, e premia a criação e a capacitação de mão de obra local. Essas
vantagens são válidas, entretanto, senão para todas, no mínimo para
a grande maioria das atividades de criação colaborativas. Há alguns
anos, um comparativo entre a Wikipédia e a Encyclopædia Brittani­
ca, mostrou que as informações disponíveis em ambas possuem um
nível similar de precisão, mas a velocidade em que erros são reparados
na primeira é uma ordem de grandeza superior à rapidez com que
correções são realizadas na segunda, desenvolvida usando o método
tradicional de pesquisa e revisão de informações. Novamente, uma
comparação de vantagens e desvantagens. Uma outra comparação
pode ser feita, por exemplo, entre o Google Maps e o projeto Open­
StreetMap: apesar da enorme quantidade de investimento da gigante
de buscas, o nível de acurácia dos mapas do projeto OpenStreetMap
é similar ao do produto do Google.
Mas o projeto que originou este editorial foi o Grameen Bank,
uma empresa do mercado financeiro especializada em microcrédito
para a população de mais baixa renda de Bangladesh, a Nação Ben­
gali, fincada entre a Índia e o Golfo de Bengala. Em 2006, o Prêmio
Nobel da Paz foi atribuído a Muhammad Yunus, fundador do Gra­
meen Bank, por seus esforços para criar desenvolvimento econômico
e social a partir de um trabalho junto às classes menos favorecidas
da população do seu país. O professor Yunus criou um novo con­
ceito de banco, que subverte totalmente o modelo tradicional de
instituição financeira, segundo o qual só se oferece crédito a quem
pode comprovar a possibilidade de pagamento. No Grameen Bank,
ao contrário, quanto menos se tem, mais elegível a um empréstimo
se é. Em seu último ano fiscal, o Grameen Bank emprestou mais de
meio bilhão de dólares para a população de baixa renda, contabili­
zando uma inadimplência de menos de 3%. O banco não tem ad­
vogados. O banco não tem cláusulas punitivas em seus contratos de
empréstimo. É uma “empresa social”. A única restrição do contrato
em caso de inadimplência é a inegibilidade para se tomar um novo
empréstimo. Quem quiser saber mais, vale a pena assistir o vídeo
(em inglês) disponível em: http://migre.me/15lV0
O desenvolvimento de esforços colaborativos como o SL/CA, a
Wikipedia, o OpenStreetMap, o Grameen Bank e a série de empre­
sas sociais criadas pelo professor Yunus em Bangladesh, têm como
base o altruísmo, conceito introduzido em 1830 por Augusto Comte
para descrever uma das mais nobres disposições humanas: a inclina­
ção inata do Homem a dedicar­se ao bem estar do próximo. Maior
vantagem do que essa não há! n
Rafael Peregrino da Silva
Diretor de Redação
http://www.linuxmagazine.com.br
u
c.h
ww
.s x
–w
ro
ne
gje
sa
nja
Emails para o editor
CARTAS
Permissão
de Escrita
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
Resposta
Hoje, impressoras USB são as menos problemáticas. Quer dizer, logica­
mente, com produtos Linux amigáveis e que contém especificações in­
cluídas no CUPS (Commun Unix Printing System), usado por todas as
distribuições Linux.
Procure por sua impressora no banco de dados do CUPS [1] para ver se
ela é suportada. Se for, o CUPS achará sua impressora automaticamente
quando ela for conectada e a mostrará como uma nova impressora, e então
será possível instalá­la com alguns cliques. Prefira a ferramenta de confi­
guração CUPS da web para isso, que é executada em seu próprio servidor
web em http://localhost:631/ no seu computador.
Se sua impressora não for detectada automaticamente, ou ao menos listada
na ferramenta de configuração web, mesmo assim será possível instalá­la
usando um arquivo ppd fornecido pelo fabricante da impressora e que vem
com algumas impressoras ou que pode ser baixado do site do vendedor. A
página de configuração do CUPS permite que se forneça o caminho para
o arquivo ppd instalado para usá­lo como um tipo de “driver da impressora”
(apesar de ele conter apenas descrições de drivers genéricos).
Escreva para nós!
Algumas impressoras, especial­
mente as que combinam fax e scan­
ner (como a série multifuncional da
HP), exigem um trabalho extra. Para
essas, instale o pacote hplip.
Se nada disso funcionar, tente con­
figurar a impressora com um driver
de um modelo mais antigo da mes­
ma marca. Às vezes, as impressoras
usam o mesmo chipset interno, ela
só parece diferente e tem um núme­
ro de versão maior, mas ainda usa o
mesmo protocolo.
Se mesmo assim você ainda não
tiver sorte, devolva a impressora ainda
na garantia. Se nada funcionar apesar
de seus esforços, ela deve estar com
defeito (de fabricação ou quebrada
mesmo). Você não aceitaria uma
impressora que não funcionasse no
Windows; por que então aceitá­la
no Linux? n
[1] CUPS:
http://www.openprinting.org
✉
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.
10
http://www.linuxmagazine.com.br
NOTÍCIAS
➧Android aceita
comandos de voz e
redige textos ditados
O Google anunciou lançou a nova versão
do aplicativo para o Android Voice Search
(google.com/mobile/voice-actions). A nova
versão traz o recurso “Voice Actions”, que
amplia o número de comandos que podem
ser dados com a voz, como pedir para abrir
o mapa em um local determinado ou até
ditar um email completo.
São 12 comandos novos, incluindo fazer
ligações para qualquer contato na agen­
da, busca de lugares em mapas envio de
mensagens de texto – com o texto sendo
ditado para o telefone. “Esses comandos
se somam à busca no Google por voz que
já existia anteriormente e é responsável
por um quarto das buscas a partir do Android”, conta o
brasileiro Hugo Barra, diretor da divisão de dispositivos
móveis da Google.
O aplicativo, porém, não roda em qualquer Android,
esclarece o blog Gadget Lab da revista Wired. Ele é com­
patível somente em telefones com a versão 2.2 (Froyo),
mais recente e disponível apenas nos aparelhos mais
poderosos, como o recém lançado Motorola Droid 2
e o modelo de referência Nexus One. Nenhum deles
é vendido no Brasil. Também entraria na lista o Droid
original, que pode ser atualizado para o novo Android,
e que tem uma versão GSM à venda no Brasil com o
nome Milestone. Porém, ainda não há versão oficial do
Android 2.2 para esse modelo, embora o usuário possa
optar por versões “alternativas”. n
➧O k9mail para Android possui suporte ao OpenPGP
A versão 3.0 do cliente de email para An­
droid k9mail, muitas vezes chamado ape­
nas de K­9 , é o primeiro a apoiar a linha
de criptografia e descriptografia de e­mails
via PGP e pode verificar assinaturas digitais
usando o livre Android Privacy Guard (APG)
OpenPGP. Ambos estão disponíveis para
download a partir do Android Market, de
forma gratuita. Além disso, o K­9 possui
suporte IMAP melhor do que o cliente de
e­mail original do Android.
Os desenvolvedores do k9mail imple­
mentaram também outras novas funções e
melhorias. Por exemplo, os usuários podem
agora escolher uma identidade de reme­
tente de qualquer uma das suas contas e
a interface de usuário oferece agora
botões dedicados para o “arqui­­
vo” de mensagens e marcação
como “spam”.
Mais detalhes sobre o k9mail
podem ser encontrados no Rele­
ase Notes e na página wiki do pro­
jeto . O k9mail é lançado sob a versão
2.0 da licença Apache e está hospedado
no Google Code. n
ParanotíciassempreatualizadasecomaopiniãodequemviveomercadodoLinuxedoSoftwareLivre,
acessenossosite:www.linuxmagazine.com.br
24
http://www.linuxmagazine.com.br
➧McAfee compra
CORPORATE
empresa especializada
em segurança móvel
A McAffe anunciou a compra da TenCube, empresa especializada em
segurança móvel. Com isso, a fabricante de antivírus oferecerá ferra­
mentas que permitem apagar dados, bem como backup dos mesmos,
bloqueio e localização de smartphones perdidos. Os valores da tran­
sação não foram divulgados.
Com a compra da TenCube – cujo principal produto leva o nome
de WaveSecure – a McAfee terá um portfólio mais completo voltado
para smartphones e que atenderá uma gama maior de modelos e siste­
mas operacionais, entre eles o Blackberry, iPhone, Windows Mobile,
Symbian, Android e aplicativos em Java.
O WaveSecure permite que os usuários possam bloquear seus dispo­
sitivos remotamente, assim como realizar a gestão de dados do apare­
26
lho perdido, fazendo, por exemplo,
um backup. Todos os telefones blo­
queados pela ferramenta mostram
uma mensagem permanente na
tela, instruindo como devolvê­lo ao
proprietário.
A TenCube é a segunda empresa
de segurança para dispositivos móveis
comprada pela McAfee em menos
de três meses. Em maio último, a
companhia comprou a TrustDigital,
que desenvolve antivírus. n
➧LinkedIn compra empresa para
melhorar filtros de informações
➧Amazon começa a vender novo
Kindle a partir de US$ 139
A rede social LinkedIn anunciou sua primeira aquisição: a
mSpoke, que filtra grandes quantidades de dados para en­
contrar informações relevantes.
O LinkedIn afirmou que a compra deve ajudar a melho­
rar os filtros de mensagens e notícias compartilhadas por
usuários na rede social. A mSpoke também deve ajudar o
serviço de recomendações de pessoas, empregos, etc. para
membros do LinkedIn, afirmou o presidente­executivo da
companhia, Jeff Weiner em entrevista. “Esta é uma de nos­
sas principais prioridades. Estamos investindo um esforço
considerável nisso”, disse Weiner.
Os termos do acordo não foram divulgados. Wiener
afirmou que o LinkedIn tem cerca de US$ 76 milhões em
caixa, arrecadados em 2008. e financiou o acordo através
de seu fluxo de caixa operacional.
O LinkedIn, que gera receita por meio de anunciantes,
além de um serviço premium, não divulga seus resultados
trimestrais, uma vez que a empresa não tem capital aberto,
mas Weiner afirmou que o crescimento na receita acelerou,
e o lucro aumentou este ano. Os dois fundadores da mS­
poke também entrarão para o LinkedIn. O LinkedIn ganha
cerca de 10 milhões de novos usuários por dia desde abril,
e totaliza 75 milhões de membros em todo o mundo. n
Um dia depois de anunciar que o Kindle estava com
estoques esgotados, a Amazon.com colocou à venda
a nova versão do seu e­reader, menor, mais rápida
e mais barata do que a anterior. O novo membro
da família, que analistas esperavam ser chamado
de Kindle 3, recebeu apenas o nome de Kindle.
No anúncio da Amazon, o produto é vendido como
“mais fino, mais rápido e com 50% mais contraste”
do que outros e­readers. Com corpo 21% menor e
15% mais leve, ele mantém seis polegadas de tela. A
bateria, segundo a Amazon, dura até um mês com
o wireless desligado, e as páginas são trocadas com
até 20% mais rapidez.
O produto com acesso via Wi­Fi custa US$
139. A versão com 3G sai por US$ 189. Ambos es­
tão disponíveis nas cores branca e grafite e têm 4
GB de espaço de armazenamento. Jim Friedland,
analista da Cowen & Co. que publicou uma nota
aos clientes de sua empresa intitulada “O Kindle
3 está para ser lançado?”, afirmou que diversas pis­
tas, entre as quais a notificação quanto a estoques
esgotados, apontavam para a chegada da terceira
geração do Kindle. n
http://www.linuxmagazine.com.br
Infraestrutura virtual
CAPA
Futuro virtualizado
Opróximopassodatecnologia,écertamente,ouso
inteligentedesoluçõesdevirtualização.
por Flávia Jobstraibizer
M
icros, pequenas, médias ou
grandes empresas podem
fazer uso de tecnologias
de virtualização sem medo. Migrar
estações de trabalho para a nuvem,
manter servidores ou máquinas de
uso geral virtualizadas em locais dife­
rentes do local de onde são acessadas,
simular sistemas operacionais diversos
dentro de seu próprio computador e
outros impressionantes recursos da
virtualização, atualmente está ao
alcance de todos.
Nesta edição da Linux Magazine,
você poderá conhecer um pouco
mais o mundo dos aplicativos open
source disponíveis para virtualização
e gerenciamento de infraestrutura
em nuvem, o que poderá lhe auxi­
liar na escolha do melhor aplicativo
para seu próprio ambiente virtual.
Esta edição acompanha ainda
um CD fantástico, contendo o XCP
(Xen Cloud Platform), e um tutorial
passo­a­passo nas próximas páginas
irá lhe auxiliar na instalação e con­
figuração de um ambiente de cloud
com esta incrível ferramenta.
Ainda nesta seção, você irá en­
contrar um excelente artigo sobre o
Ganeti, gerenciador open source de
máquinas virtuais criado pela Goo­
gle. O Ganeti é capaz de gerenciar
servidores virtuais na plataforma do
hypervisor Xen sobre sistema ope­
racional Linux em clusters de PCs
comuns. Após ser instalado em uma
máquina física (ou cluster) equipa­
da com Linux e Xen, o gerenciador
LinuxMagazine#70 | Setembrode2010
se encarrega das tarefas de criação
de discos virtuais, instalação de sis­
temas operacionais, inicialização e
desligamento de máquinas virtuais e
ainda suporte a falhas de hardware.
Não perca!
E por falar em Xen, você irá
encontrar ainda nesta edição, um
artigo sobre a nova versão 4.0 do
Xen, que é rica em recursos por si
só e agora se uniu ao Remus para
uma integração tolerante a falhas
com alta disponibilidade.
Em se tratando de autenticação
eficiente em sistemas virtualizados,
os administradores de sistemas, há
muito tempo se aborrecem com a
falta de mecanismos de autenticação
sofisticados no VirtualBox. Apresen­
tamos novo projeto vrdp­ldap, que
oferece autenticação baseada em
LDAP para instâncias do Virtual­
Box na rede.
E finalizando, saiba como obter
capacidade de escrita em dispositi­
vos somente leitura com o sistema
de arquivos aufs. n
Matérias de capa
TolerânciaafalhascomoXen4eRemus
Exameminucioso
VirtualizaçãocomGanetieXen
VirtualBoxcomLDAP
AmbientesvirtuaiscomOpenSource
InstalaçãoeconfiguraçãodoXCP
32
36
41
44
48
50
31
VoIP com FreeSWITCH
REDES
Fale com
tranquilidade
OFreeSWITCHéumaplataformadetelefoniapoderosae
versátilquepodeirdeumsoftphoneatéumPBX.
por Michael S. Collins
P
rojetos de código aberto vêm
diminuindo a barreira para que
entusiastas e empresas entrem
na era da telefonia VoIP. O Asterisk
PBX, por exemplo, é uma alterna­
tiva de alta funcionalidade e baixo
orçamento que alvoroçou o mundo
de sistemas de telefonia empresarial
[1]. Talvez o software mais inquie­
tante de todos, no entanto, venha na
forma de uma biblioteca softswitch
escalonável chamada FreeSwitch.
O site do FreeSwitch [2] diz que ele
pode ser usado como um “mecanismo
de switching simples, um PBX, um
gateway de mídia ou um servidor de
mídia para hospedar aplicativos IVR”.
Com essa descrição versátil, o Fre­
eSwitch apareceu em ambientes de
produção como um switch de teleco­
municações, em vários cenários de
negócios como um PBX, como um
softphone para usuários de laptop e
até mesmo como um mecanismo
de roteamento de voz para o proje­
to OpenSim.
Além disso, é possível empregar o
FreeSwitch como um aplicativo ou
usá­lo como uma biblioteca (libfreeswitch) que pode ser embarcada em
software de terceiros. Essa dupla iden­
tidade é semelhante à relação entre
cURL (aplicativo) e libcurl (biblioteca).
O FreeSwitch tem sido utilizado
em alguns cenários exóticos; no en­
tanto, os novatos nos aplicativos de
telefonia irão se dar bem com o Fre­
eSwitch em sua configuração padrão
como um PABX SOHO. Embora os
arquivos de configuração e ajustes do
FreeSwitch pareçam complicados,
em pouco tempo, será possível apre­
ciar o poder e a flexibilidade dessa
versátil ferramenta de telefonia.
Instalando
o FreeSwitch
Figura 1 Teladeconfiguraçãoda
contaSIPnoX-Lite.
60
No momento, a versão estável cor­
rente do FreeSwitch é a 1.0.4, que
pode ser baixada do site do projeto
[3] ou do repositório Subversion.
Diferentemente de outros projetos, o
SVN trunk é extremamente estável,
portanto, é aconselhavel usar o trunk
mais recente. De qualquer modo, os
desenvolvedores do FreeSWITCH
facilitaram a atualização para o último
trunk, mesmo que a última versão
estável esteja instalada.
Existem alguns binários pré­com­
pilados; porém, recomendo a com­
pilação com o código fonte.
Primeiro, descompacte e instale
a fonte. Neste exemplo, fiz o down­
load em /usr/src e instalei a partir
dos comandos:
tar zxvf freeswitch 1.0.4.tar.gz
cd freeswitch 1.0.4
./configure
make install
Recomendo usar os arquivos de som:
make cd-sounds-install
make 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
http://www.linuxmagazine.com.br
FreeSWITCH | REDES
principais arquivos executáveis do
FreeSWITCH estejam em bin, por
isso usei symlinks:
ln -s
/usr/local/freeswitch/bin/
freeswitch
/usr/local/bin/freeswitch
ln -s /usr/local/freeswitch/bin
/fs_cli /usr/local/bin/fs_cli
4;Logitech USB Headset;1;0;
O i e o o estão próximos aos dis­
positivos de entrada e de saída sele­
cionados. Para alterar o dispositivo
de entrada, utilize o comando pa
indev com o número do dispositivo,
pa indev #x
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.
onde x é o número do dispositivo
de entrada. O dispositivo de saída
pode ser alterado com o comando
pa outdev. Na minha configuração,
usarei o dispositivo 4 como saída e
o 5 como entrada. Se houver os ar­
quivos MOH (music on hold) ins­
talados, esse comando chamará o
ramal MOH e enviará o MOH ao
dispositivo de saída PortAudio:
Seu novo softswitch
pa call 9999
O primeiro comando básico é version,
que mostrará a versão do FreeSWI­
TCH que está sendo executada, in­
cluindo a revisão SVN. O comando
status mostra informações sobre sua
instância do FreeSWITCH incluin­
do o tempo de execução e o número
de sessões ativas no momento. Outro
comando básico é o help, para ajuda.
Para sair do FreeSWITCH, digite
fsctl shutdown ou use o comando mais
breve ... (três pontos). Se houver
uma placa de som ou headsets em
seu sistema, tente o seguinte:
load mod_portaudio
Após algumas linhas de debug,
será exibida a mensagem +OK quando
o módulo for carregado. Agora, liste
os dispositivos PortAudio disponíveis
em seu sistema:
pa devlist
API CALL [pa(devlist)] output:
0;Built-in Microphone;2;0;i
1;Built-in Input;2;0;
2;Built-in Output;0;2;r,o
3;Logitech USB Headset;0;2;
LinuxMagazine#70 | Setembrode2010
Se uma música for ouvida, a cha­
mada foi bem sucedida. Caso contrá­
rio certifique­se de que os arquivos
MOH estão corretamente instalados.
Desligue com o comando pa hangup.
Para se certificar de que os dispo­
sitivos de entrada e de saída estão
funcionando, faça o teste:
pa call 9996
Agora, quando falar no disposi­
tivo de entrada, sua voz ecoará no
dispositivo de saída. O comando pa
hangup terminará a ligação.
Como é possível ver, o FreeSWI­
TCH e o PortAudio podem ser usados
para criar um softphone simples. Dessa
maneira, será possível usar qualquer
codec suportado por sua instalação – e
há codecs de alta qualidade disponí­
veis – sem a necessidade de instalação
de um cliente softphone.
o fone baseado em software é apro­
priadamente chamado de softphone.
Vários tipos de hard phones estão dis­
poníveis. Os softphones têm versões
proprietárias e FLOSS. Uma versão
gratuita popular – mas sem código
aberto – é o X­Lite da CounterPath
[4], que está disponível para o Linux,
MacOS e Windows. Mesmo que seu
servidor FreeSWITCH esteja sendo
executado no Linux, seus softphones
podem funcionar em qualquer siste­
ma operacional, contanto que sejam
compatíveis com o SIP.
Para começar, baixe o X­Lite no
seu sistema e faça a instalação pa­
drão (a instalação do softphone no
mesmo sistema que executa o Fre­
eSWITCH não é recomendada; no
entanto, em muitos casos, ela fun­
cionará para testes).
Agora, inicie o X­Lite e abra o
menu de configuração de conta SIP
clicando no botão Show Menu (esse
botão é a pequena flecha no topo do
fone, à esquerda).
Apenas uma conta SIP está dis­
ponível no X­Lite, portanto, clique
nela e depois no botão Properties.
Como mostra a figura 1, preencha
os campos e use 1234 como senha
para o ramal 1000.
Então limpe o campo Dialing
plan, pois ele não é necessário com o
Conectar um fone SIP
A maneira mais comum de utilização
do FreeSWITCH é com um fone
SIP. O aparelho físico é normal­
mente chamado de hard phone, já
Figura 2 ClienteX-Literegistrado.
61
REDES | FreeSWITCH
eSWITCH sem a necessidade de
passar por um grande arquivo.
Tabela 1: Destaques do Dialplan
Ramais
Função
1000-1019
2000-2002
30xx
31xx
32xx
33xx
4000
5000
5900
5901
9888
9992
9996
9999
RamaisPadrão
AmostradeGruposdeDiscagem
ConferênciasdeBandaEstreita(8kHz)
ConferênciasdeBandaLarga(16kHz)
ConferênciasdeBandaUltra-Larga(32kHz)
ConferênciascomQualidadedeCD(48kHz)
RecuperaçãodeCorreiodeVoz
AmostradeIVR
CallPark
RecuperaçãodeCallPark
ConferênciaFreeSWITCH
AplicativodeInformação
TestedeEco
MúsicadeEspera(MOH)|
FreeSWITCH. Agora, clique em OK,
depois em Close e o fone tentará o
registro. A figura 2 mostra um registro
bem sucedido. Para fazer uma cha­
mada de teste, digite 9999 e clique no
botão verde para discar. Em alguns
instantes uma música de espera será
ouvida. Para fechar o FreeSWITCH,
use o comando fsctl shutdown.
Destaques da
configuração
A configuração padrão do FreeSWI­
TCH possui muitos recursos. A tabela 1 mostra destaques Dialplan e
a tabela 2 mostra os arquivos e sub­
diretórios mais importantes da con­
figuração FreeSWITCH.
A instalação padrão irá criar um
diretório chamado /usr/local/freeswitch/conf, o qual chamarei de
$CONF. Todos os arquivos de con­
figuração são em formato XML e
podem incluir outros arquivos XML
adicionalmente.
O topo dessa árvore XML é $CONF/
freeswitch.xml, que contém vários
arquivos XML que, por sua vez,
contêm mais arquivos XML. Essa
organização permite que se façam
mudanças à configuração do Fre­
FreeSWITCH
como um Daemon
Para iniciar o FreeSWITCH como
um daemon, use o argumento de
linha de comando -nc:
freeswitch -nc
O FreeSWITCH dirá que está
sendo executado em segundo pla­
no e dará o ID do processo (PID).
Para parar o FreeSWITCH, basta
digitar freeswitch -stop no prompt
do Linux. Por enquanto, deixe o
FreeSWITCH sendo executado e
use o comando fs_cli para conectar:
aparecerá uma saudação com uma
breve mensagem de boas vindas e
um prompt em linha de comando
e, talvez, alguma mensagem de
debug na tela. Para desabilitar o
debug, digite:
/log info
Isso irá restringir as mensagens
de log ao nível de INFO e abaixo e
evitará uma enxurrada de informa­
ções de debug.
Todos os comandos do progra­
ma fs_cli devem iniciar com uma
barra invertida, por isso, digite /help
Tabela 2: Arquivos de configuração importantes
62
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”,ouUASIPparaserviruma
portaIP(normalmenteaporta5060)
$CONF/sip_profiles/external.xml|
OutroUASIPquelidacomregistrosdesaída
paraprovedoresSIP(porta5080)
$CONF/autoload_configs/modules.conf.xml|
Móduloscarregadosautomaticamentena
inicializaçãodoFreeSWITCH
http://www.linuxmagazine.com.br
FreeSWITCH | REDES
para ver uma lista de comandos dis­
poníveis. Tudo o mais digitado no
prompt fs_cli será enviado para o
servidor FreeSWITCH, com uma
exceção: Os (...) não fecharão o
FreeSWITCH no fs_cli; isso ape­
nas encerrará o programa. Em vez
de fechar o FreeSWITCH a partir
do fs_cli, saia do programa e então
digite o comando freeswitch stop no
prompt do Linux.
Mantenha o FreeSWITCH em se­
gundo plano enquanto configura um
novo usuário e modifica o Dialplan.
“corresponde a exatamente 4 dígitos
– dos quais os dois primeiros são 10,
o seguinte é 0 ou 1 e o último é qual­
quer dígito entre 0 e 9 – e armazena o
valor correspondente na variável $1”.
Simplificando, corresponde a qual­
quer coisa entre 1000­1019, inclusive.
Para adicionar o novo usuário
Katherine ao ramal 1500, utilize o
caracter pipe (|), que é um OR lógico:
Adicionar
um usuário SIP
Agora, inicie o programa fs_cli
e digite reloadxml ou aperte F6. O
novo ramal está pronto para o uso.
O melhor meio de testar isso é
configurar um softphone (ou um
aparelho padrão caso haja algum)
como 1500 com o FreeSWITCH.
No seu cliente X­Lite, abra as con­
figurações de conta SIP e altere o
nome de exibição para Katherine e
os campos User name e Authorization
user name para 1500 antes de salvar as
alterações. O cliente exibirá registering e depois Ready. Agora, é pos­
sível fazer chamadas de seu próprio
O FreeSWITCH vem com 20 usuá­
rios pré­determinados, mas se quiser
adicionar mais, apenas dois passos
modificam a configuração:
Adicione uma entrada de usuá­
rio em $CONF/directory/default/
Modifique o Dialplan para per­
mitir que o novo usuário receba
chamadas
Para adicionar um novo usuário
chamado Katherine com o ramal
1500, vá para $CONF/directory/default
e faça uma cópia do arquivo 1000.xml:
cp 1000.xml 1500.xml
Em um editor, abra o 1500.xml,
substitua 1000 por 1500 e altere o
effective_caller_id_name para Katherine. 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
LinuxMagazine#70 | Setembrode2010
<condition field="destination_
number" expression="^(10[01]
[0-9]|1500)$">
ramal. Caso haja um segundo tele­
fone, registre­o como 1000 e usu­o
para chamar 1500.
Fora do switch Local
Uma vantagem do VoIP são as liga­
ções via internet gratuitas ou muito
baratas. O FreeSWITCH pode ro­
tear ligações de e para a internet,
mesmo por trás de um dispositivo
NAT. Os dispositivos NAT causam
vários problemas para ligações SIP;
no entanto, o FreeSWITCH é ótimo
para contornar essas questões.
Em vários casos, a configuração
padrão funcionará sem qualquer mu­
dança. Um simples teste é chamar o
servidor de conferência pública Fre­
eSWITCH. A URI SIP desse servidor
é sip:[email protected],
e o Dialplan padrão irá conectar seu
fone se chamar 9888.
Se a chamada for completada, ha­
verá uma voz TTS (text­to­speach)
anunciando seu nome ou número
de identificação. Caso você seja a
única pessoa na conferência, haverá
uma gravação que o informará disso.
Para chamar a conferência com
o PortAudio, digite:
Listagem 1: Novo usuário 1500.xml
01 <include>
02 <user id="1500" mailbox="1500">
03
<params>
04
<param name="password" value="$${default_password}"/>
05
<param name="vm‐password" value="1500"/>
06
</params>
07
<variables>
08
<variable name="toll_allow" value="domestic,international,
local"/>
09
<variable name="accountcode" value="1500"/>
10
<variable name="user_context" value="default"/>
11
<variable name="effective_caller_id_name"
value="Katherine"/>
12
<variable name="effective_caller_id_number" value="1500"/>
13
<variable name="outbound_caller_id_name"
value="$${outbound_caller_name}"/>
14
<variable name="outbound_caller_id_number"
value="$${outbound_caller_id}"/>
15
<variable name="callgroup" value="techsupport"/>
16
</variables>
17 </user>
18 </include>
63
REDES | FreeSWITCH
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>
pa call
sip:[email protected]
sofia profile external
restart reloadxml
Vários provedores oferecem ser­
viços de conexão que dão acesso à
PSTN (Public Switched Telephone
Network) ou simples contas SIP. O
FreeSWITCH usa o conceito de
“gateways” para estabelecer cone­
xões com esses provedores. Os ga­
teways são usados para registros no
provedor. Caso já possua um prove­
dor SIP, use as configurações desse
provedor. O wiki do FreeSWITCH
oferece exemplos de configurações
para alguns provedores [5]. Neste
exemplo, mostrarei como configu­
rar um gateway para iptel.org, que
oferece contas SIP gratuitas.
Primeiramente, crie uma con­
ta no site iptel.org [6] e anote seu
nome de usuário e senha. Depois,
crie um novo arquivo em $CONF/
sip_profiles/external. Certifique­
se de incluir o nome do usuário e
a senha nos campos apropriados. O
arquivo deve ficar parecido com o
da listagem 2.
Salve o arquivo e, no prompt do
FreeSWITCH, digite o comando:
“Sofia” é o nome da biblioteca
SIP [7] usada pelo FreeSWITCH
e é também o nome do comando
para executar funções relativas ao
SIP (digite sofia para ver a sintaxe).
O comando acima instrui o Fre­
eSWITCH a reiniciar o perfil external após carregar os dados XML.O
comando reloadxml é opcional; po­
rém, coso tenha feito mudanças nos
dados XML (criando ou editando
um arquivo), será preciso que essas
mudanças sejam carregadas na rei­
nicialização do perfil. Para verificar
se seu sistema está registrado no iptel.
org, digite o comando:
sofia status
Caso seu registro esteja correto,
surgirá uma linha como a seguinte:
iptel gateway sip:myusername@sip.
iptel.org REGED
REGED significa que o gateway está
registrado no provedor. Caso apare­
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>
64
ça FAIL_WAIT, provavelmente há um
problema de configuração.
O último passo para receber
chamadas é a permissão no Dial­
plan. A configuração padrão possui
um contexto público que trata as
chamadas recebidas pela internet
como confiáveis.
Primeiro, é preciso permitir cha­
madas ao seu novo usuário iptel.
org e depois especificar onde rotear
essas chamadas. Para isso, crie um
novo arquivo chamado $CONF/dialplan/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 number (Destination numbers – números
de destino – não se restringem a ca­
racteres numéricos).
A chamada é roteada para o ramal
especificado nos parâmetros informa­
dos ao aplicativo de transferência.
No meu caso, roteei para o ramal
MOH para o teste. É possível rotear
para seu fone SIP. Caso esteja regis­
trado como 1000, então o destino
da transferência é 1000 XML default.
Salve o arquivo e vá para o prompt
do FreeSWITCH e pressione F6 (ou
digite reloadxml).
Para receber uma chamada na sua
nova conta, será preciso que alguém
faça uma ligação SIP para a sua nova
URI SIP iptel.org. Em resumo, é
possível testar com PortAudio. No
prompt do FreeSWITCH, digite:
pa call sip:myusername@sip.
iptel.org
Se a chamada for bem sucedida,
chegará ao ramal destinado.
Codecs de qualidade
Chamadas telefônicas tradicionais
possuem uma qualidade de som
marginal e os celulares são piores.
http://www.linuxmagazine.com.br
FreeSWITCH | REDES
O FreeSWITCH oferece uma óti­
ma qualidade de voz nas chamadas
com codecs gratuitos e de código
aberto. O codec de código aberto
CELT [8] possui uma ótima qua­
lidade sem dissipação.
O FreeSWITCH traz também os
codecs Siren [9] da Polycom. Esses
codecs de excelente qualidade não
têm o código aberto, mas estão livres
de royalties. A configuração padrão
utiliza os codecs Siren.
Um fato que é importante ressal­
tar é que codecs de alta qualidade
podem expor as limitações de head­
sets. Os equipamentos mais recentes
e os que estão na lista “certificada
do Skype” funcionarão melhor com
bons codecs. Pessoalmente, uso o
headset Logitech Clear Chat Pro
USB sem grandes problemas.
Para o teste, recomendo uma liga­
ção a um amigo que também tenha
o FreeSWITCH instalado.
Para iniciar, faça uma chamada
PSTN ou com um celular, desligue
e, imediatamente, faça outra ligação
com um codec de alta qualidade.
A utilização do PortAudio facilita o
teste. Primeiramente, edite $CONF/
autoload_configs/portaudio.xml. Lo­
calize a linha <param name=”samplerate” value=”8000”/>, altere o valor
para 48000 e salve o arquivo.
No prompt do FreeSWITCH di­
gite os seguintes comandos:
SIP – Protocolo de Inicio de Sessão
SIP,ouSessionInitiationProtocoléumprotocolobaseadoemTCP/IPutilizadoparasessõesdemultimídiaatravésdaInternet.Oprotocolobaseado em texto é similar ao HTTP, com requisições e respostas, campos de
cabeçalho,regrasdecodificaçãoecódigosdestatus.AlémdoVoIP,oSIP
éusadoemmensagensinstantâneas,jogosonlineedistribuiçãodestreamingmultimídia.
de conferência FreeSWITCH com
o PSTN com +1­213­799­1400 e com­
parar a diferença entre codecs VoIP
de alta qualidade e e a baixa quali­
dade do PSTN.
Próximo passo
Esta breve introdução ao FreeSWI­
TCH mostra apenas um pouco do
que esse software de código aberto
pode fazer. Uma maneira de usar
o FreeSWITCH na prática é apre­
sentada por Rob Smart, da IBM,
que escreveu um tutorial chamado
“Home VOIP system using FreeSwi­
tch and a Linksys 3102 voice gateway”
[10] mostrando como configurar o
FreeSWITCH como um servidor
de comunicação no Reino Unido.
Uma comunidade crescente e vi­
brante oferece suporte aos novatos
e veteranos, portanto, junte­se a ela
e continue aprendendo as grandes
possibilidades do VoIP. n
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
reloadxml
reload mod_portaudio
Agora, ligue para seu amigo ou
faça uma conferência FreeSWITCH:
pa call 9888
A qualidade do áudio certamente
será bem melhor, especialmente se
sua conexão com a internet for rápi­
da. As conferências FreeSWITCH
podem misturar chamadas com quais­
quer codecs e taxas de sampling. De
fato, é possível fazer uma chamada
LinuxMagazine#70 | Setembrode2010
[8] CELTcodec:http://www.celt-codec.org
[9] Sirencodecs:http://www.polycom.com/company/about_us/
technology/siren_g7221/ index.html
[10] T
utorialFreeSWITCH:
http://robsmart.co.uk/2009/06/02/freeswitch_linksys3102
Gostou do artigo?
Queremosouvirsuaopinião.Faleconoscoem
[email protected]
Esteartigononossosite:
http://lnm.com.br/article/3854
65
Privilégios administrativos com o PolicyKit
SEGURANÇA
Poderes ao
alcance das mãos
SeoLinuxfecharasportasparavocê,oprimeiroimpulsopode
serrecorreraocomandosuousudo.OPolicyKitofereceuma
abordagemmaisflexívelparaatribuirprivilégiosadministrativos.
por Tim Schürmann
P
or padrão, o Linux delega res­
ponsabilidades: o único usuá­
rio com permissão de modificar
as configurações do sistema é o oni­
presente root. Os usuários normais
estão restritos ao seu desktop.
No uso diário, essa restrição pode
ser um aborrecimento, especialmen­
te se for preciso apenas montar um
pendrive USB ou ajustar o horário
do relógio. Quando vários usuários
compartilham um PC, o usuário
root precisa assumir o teclado para
efetuar as mudanças.
Um projeto recente chamado PolicyKit [1] oferece uma solução mais
refinada ao problema de configurar
privilégios de acesso. O PolicyKit su­
porta gerenciamento independente
de privilégios que lembra um auxílio
à lista telefônica: os programas do
Linux podem “fazer uma ligação”
para saber se um determinado usuá­
rio tem permissão de executar uma
função específica do sistema.
Chame o
administrador
No Ubuntu, quando se tenta acer­
tar o horário do sistema, antes que
a janela escondida em Sistema / Administração / Hora e data permita a
mudança, é preciso clicar antes no
Figura 1 NoGnome,oPolicyKitdáacessoàsconfiguraçõesdedataehorário.
66
ícone do cadeado ou do escudo. De­
pois de fazer isso, a janela Configurações de data e hora irá perguntar
ao PolicyKit se há autorização para
ajustar o relógio.
Para responder essa pergunta, o
PolicyKit checa o conjunto de regras,
que dirá que é possível acertar o re­
lógio se você for membro do grupo
Administradores e puder informar
a senha correta. O PolicyKit pede,
então, que o gerenciador de desktop
Gnome peça a senha.
O Gnome faz isso imediatamente,
abrindo uma janela como mostra a
figura 1. Quando o PolicyKit possui
todas as informações necessárias, ele
libera janela Configurações de data
e hora, que por sua vez desbloqueia
a funcionalidade do diálogo.
Com essa abordagem, o PolicyKit
pode liberar ou proibir privilégios
de modo orientado. Por exemplo,
é possível permitir que um usuário,
a quem chamarei de carlo, acerte o
relógio sem ter acesso a nenhuma
outra função do sistema. Em com­
paração com su e sudo, os aplicati­
vos envolvidos aqui não recebem
privilégios de root; isto é, carlo não
terá permissão de usar a janela de
hora e data para configurar o fuso
http://www.linuxmagazine.com.br
PolicyKit | SEGURANÇA
horário ou acessar qualquer outra
parte do sistema.
Jogos de números
Esse admirável mundo novo do Po­
licyKit possui alguns problemas. Por
exemplo, o aplicativo e a distribui­
ção precisam suportar o PolicyKit –
pelo menos no Ubuntu, até agora. O
OpenSUSE 11.2 e o Fedora 12 ainda
exigem a senha de root para a maio­
ria das configurações do sistema. O
OpenSUSE usa o PolicyKit para per­
mitir que qualquer usuário atualize
softwares, mas somente para isso.
Além disso, a versão 0.9.1 do siste­
ma foi completamente reformulada;
as versões mais recentes do PolicyKit
não podem mais ser usadas com pro­
gramas mais antigos. Por isso, os de­
senvolvedores tiveram que modificar
ou reformar todos os aplicativos que
suportam o PolicyKit, fazendo com
que os distribuidores oferecessem
as versões mais recentes e as mais
antigas. A última versão é extra­ofi­
cialmente chamada de PolicyKit-1 ou
polkit-1 para distingui­la das outras.
A última versão não suporta o ge­
renciador gráfico de privilégios, que
funciona apenas em versões mais an­
tigas do PolicyKit, até a 0.9.0, mais
precisamente. Para as tarefas de ge­
renciamento de privilégios, a única
alternativa é usar seu editor favorito,
mas isso não é tão complicado quan­
to se possa imaginar.
Dono da casa
O PolicyKit­1 faz distinção entre
usuários normais e administradores.
Os administradores podem ajustar as
configurações do sistema por padrão,
como o root. Os arquivos de confi­
guração em /etc/polkit-1/localauthority.conf.d definem os membros.
Assim que instalado, o PolicyKit
possui um único arquivo, 50-localauthority.conf, com o conteúdo:
[Configuration]
AdminIdentities=unix-user:0
LinuxMagazine#70 | Setembrode2010
Tabela 1: Pastas para entradas de autorização
Diretório
Conteúdo
10-vendor.d
Regrasdodistribuidor
20-org.d
Regrasfeitaspelaorganizaçãoquedistribui
osistemaoperacional
30-site.d
Regrasfeitaspelositequedistribui
osistemaoperacional
50-local.d
Regraslocais
90-mandatory.d
Regrasfeitaspelaorganizaçãoquedistribui
osistemaoperacional
que instrui o PolicyKit a solicitar a
senha (unix-user) do usuário com ID
0 para todos (AdminIdentities) que
precisam de privilégios de adminis­
trador. Logicamente, o ID 0 designa
o usuário root. Em outras palavras,
instalar o PolicyKit não muda as coisas
em nada. No Ubuntu, um segundo
arquivo de configuração, chamado
51-ubuntu-admin.conf, sobrescreve
essa regra com o seguinte conteúdo:
[Configuration]
AdminIdentities=unix-group:admin
Seguindo esses parâmetros, todos
os membros do grupo de usuários
admin são automaticamente admi­
nistradores privilegiados. É fácil mo­
dificar o padrão de acordo com suas
necessidades, na próxima vez em que
atualizar o sistema, o arquivo voltará
para seu estado original e todo seu
trabalho irá se perder. Felizmente,
o PolicyKit avalia seus arquivos de
configuração em ordem lexicográfi­
ca, portanto, criar seu próprio arqui­
vo de configuração irá sobrescrever
qualquer outro cujo nome principiar
com um número menor.
Para dar privilégios administrati­
vos aos usuários adam e bonny, basta
criar um arquivo 60-myconfig.conf no
diretório /etc/polkit-1/localauthority.conf.d com o seguinte conteúdo:
[Configuration]
AdminIdentities=unix-group:admin;
unix-user:adam;unix-user:bonny
O nome do arquivo não impor­
ta, ele só precisa começar com um
número mais alto do que os outros
(60 nesse exemplo). Os futuros ad­
ministradores estão separados por
ponto e vírgula e vêm depois de
AdminIdentities=. Os indivíduos
adam e bonny precisam do prefixo
unix-user:. Os grupos são indicados
por unix-group:.
Quem pode mais?
Regras definem que tem permissão
para chamar funções do sistema. O
PolicyKit os chama de “Authorization
Entries” (Entradas de Autorização)
e os agrupa em subdiretórios no di­
retório /etc/polkit-1/localauthority.
Algumas regras estão em 50-local.d;
a tabela 1 lista os outros.
Listagem 1: Acertar o relógio
01
02
03
04
05
06
Carlo allowed to set the
Identity=unix-user:carlo
Action=o rg.gnome.clockapplet.mechanism.settime
ResultActive=yes
ResultInactive=no
ResultAny=no
67
SEGURANÇA | PolicyKit
Quadro 1: Armadilhas da senha
Ocomportamentodopkexeccompromptsdesenhasélógico,porémconfusoàprimeiravista.Comocomando
$ pkexec - -user bonny apt-get install gnuchess
você inicia o pkexec. O PolicyKit solicita então sua própria senha. Não há
acessoaodiretório/var/lib/dpkg,porissooapt-gettambémserecusaa
instalaroprograma.Parainstalarognuchesscomoousuáriobonny,éprecisoprimeirofazerologincomoesteusuárioedepoisdigitarocomando
pkexec apt-get install gnuchess
OPolicyKitirápediragoraasenhadousuáriobonny,iniciaroapt-getcom
privilégiosde rooteinstalarognuchess–assumindoquenenhumaregrado
PolicyKitimpeçaisso.
Listagem 2: Usuários sem privilégios iniciam programas
01
02
03
04
05
06
Allow program execution via
Identity=unix-user:carlo
Action=org.freedesktop.policykit.exec
ResultActive=yes
ResultInactive=no
ResultAny=no
Para permitir que o usuário sem
privilégios carlo acerte o relógio, será
preciso criar um novo arquivo de
configuração com a extensão .pkla
(PolicyKit Local Authority).
Mais uma vez, o nome do arquivo
não faz diferença: o PolicyKit sim­
plesmente avalia todos os arquivos
.pkla desse diretório em ordem lexi­
cográfica ascendente. Entretanto, faz
Quadro 2: Por debaixo do pano
OPolicyKitcontémumcertonúmerodemódulose,umarequisiçãofeitaa
ele,sempredisparaumtipodereaçãoemcadeia.Noinício,umprograma
semprivilégios,conhecidoporcliente,disparaumafunçãoemumprogramaou“mecanismo”comprivilégios.Porexemplo,umappletdedesktop
(ouseja,ocliente)podetentarmudaroestadodocomputadorcomouso
doDeviceKit(mecanismo).
OmecanismochecaoPolicyKitparadeterminarseoclientetempermissão
paradispararessaação.Paraisso,eleenviaumarequisiçãoparaoserviçoD-Busorg.freedesktop.PolicyKit1.OD-Businicia,então,automaticamente,odaemonpolkitddoPolicyKit,queconfereasregrasparaverseo
clienteéconfiável.Sefornecessárioofornecimentodeumasenha,oPolicyKitusaoD-Busparasolicitarqueoambientededesktopabraumagentedeautenticação.Normalmente,oagenteéumapequenajanelaquesolicitaumasenhadousuário.Osdesenvolvedoresdeambientesdedesktop
decidemoaspectodesteagente.
SeomecanismoreceberumarespostapositivadoPolicyKitatravésdoDBus, a função requisitada será executada; caso contrário, ele cancela a
açãoeenviaumamensagemdeerro.Afigura 2ilustratodooprocesso.
68
sentido escolher um nome intuitivo.
Para o carlo que vai acertar o relógio,
o arquivo seria como o da listagem 1.
Uma descrição entre chaves abre
o arquivo, seguida da palavra­chave
Identity= e o usuário ou usuários a
quem se aplicam as seguintes altera­
ções de privilégios. Múltiplos usuários
e grupos precisam ser separados por
vírgulas (como mencionado antes)
após as conhecidas palavras­chaves
unix-user: ou unix-group.
A linha seguinte contém o nome
da função do sistema ou ação em
questão, org.clockapplet.mechanism.
settime, que se refere ao ajuste do
relógio no Gnome. Digitar pkaction
--verbose na linha de comando irá in­
formar quais outras ações o PolicyKit
suporta. Essa lista pode ser bem longa,
dependendo de sua distribuição; o
comando a seguir redireciona a saída
para um arquivo texto list.txt para
facilitar a inspeção:
$ pkaction --verbose > list.txt
O prompt de diálogo da senha no
Gnome, mostrado na figura 3, for­
nece outra informação útil. A seção
Details revela qual Action (ação) o
usuário tentou fazer.
No arquivo .pkla, é possível usar
wildcards (*) para agrupar múltiplas
ações. Por exemplo,
Action=org.gnome.clockapplet.
mechanism.*
modifica todas as ações que começam
por org.gnome.clockapplet.mechanism
ao mesmo tempo. Isso quer dizer que
o usuário carlo pode acertar a hora
e mudar o fuso horário.
Privilégios
As últimas três linhas da regra na listagem 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
http://www.linuxmagazine.com.br
PolicyKit | SEGURANÇA
sem problemas; auth_self pede que
ele forneça sua senha de usuário e
auth_self_keep faz o PolicyKit lembrar
dessa senha por alguns segundos. Se
carlo precisar ajustar o horário de
novo durante esse período, não será
preciso digitar sua senha de novo.
Por fim, auth_admin pede que o u­
suário forneça a senha administrati­
va. Isso se aplica a qualquer usuário
listado depois de AdminIdentities= no
arquivo /etc/polkit-1/localauthority.conf.d/60-myconfig.conf – nesse
exemplo, adam e bonny. A tabela 2
mostra os outros valores suportados
para ResultActive. Seguindo o mes­
mo padrão, ResultInactive cuida das
buscas originárias de sessões inativas;
ResultAny não faz distinção entre ses­
sões ativas e inativas.
Com base nos padrões mostrados
anteriormente, é possível adicionar
mais sessões ao seu arquivo .pkla,
ajustando assim suas atribuições de
privilégios. Em um ambiente de pro­
dução, regras para uma única ação
serão normalmente agrupadas em um
arquivo, que é, então, nomeado para
uma ação. As alterações do usuário
carlo estariam salvas então em org.
gnome.clockapplet.mechanism.pkla.
Tudo ou nada
O PolicyKit aplica regras imediata­
mente, sem necessidade de reinicia­
lização. No Ubuntu, no entanto, as
alterações não modificam a capacida­
de do usuário de acertar o relógio: a
Canonical parece ter redirecionado
as configurações do sistema fazendo
com que um clique no ícone do ca­
deado busque por org.freedesktop.
systemtoolsbackends.set. Para que o
usuário bonny possa acertar o reló­
gio, é preciso modificar a linha 3 da
listagem 1 dessa maneira:
Action=org.freedesktop.
systemtoolsbackends.set
Como o nome da ação sugere,
isso daria a bonny o acesso a todas
LinuxMagazine#70 | Setembrode2010
Figura 2 Oclienteprimeiramentehabilitaumserviçodosistema.Oserviço
entãoutilizaoD-BusparasolicitarpermissãoaoPolicyKiteeste
pedeumasenhadeusuário.
as outras configurações do sistema.
Ela não só poderia alterar o horário,
mas também poderia mexer com o
gerenciamento de usuários. No Ubun­
tu, seria então mais fácil adicionar
bonny ao grupo de administradores.
Plataforma de
lançamento
Com o PolicyKit, é possível deixar
usuários comuns iniciarem progra­
mas do sistema. Para permitir que isso
aconteça, o pkexec substitui o conhe­
cido sudo. Por exemplo, o comando
no arquivo de configuração /etc/
polkit-1/localauthority.conf.d/60myconfig.conf – têm permissão de
usar pkexec para iniciar um progra­
ma. Para permitir que o usuário sem
privilégios carlo inicie programas,
basta criar uma nova regra. A ação
para isso é org.freedesktop.policykit.
exec (listagem 2).
O código da listagem 2 permitiria
que carlo iniciasse qualquer progra­
ma através do pkexec. Se é necessário
permitir que carlo execute apt-get
apenas após fornecer sua senha,
outro arquivo de configuração pre­
cisa ser feito.
$ pkexec --user bonny /usr/bin/
apt-get
inicia o gerenciador de pacotes no
contexto da conta do usuário bonny
(quadro 1). O aplicativo é executado
em um ambiente mínimo e seguro.
Isso torna impossível a injeção de có­
digo malicioso, mas também impos­
sibilita a inicialização de programas
X11 com a conta de outro usuário.
Por padrão, apenas administrado­
res – quer dizer, os usuários listados
Figura 3 Opromptdasenhade
autenticaçãodoGnome
revelaaaçãodousuário.
69
SEGURANÇA | PolicyKit
Listagem 3: Aplicar controles de acesso
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-/ /freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<vendor>Linux New Media AG</vendor>
<vendor_url>http://www.linuxnewmedia.de</vendor_url>
<action id="de.linuxnewmedia.example.run-apt-get">
<description>run apt-get</description>
<description xml:lang="en">run apt-get</description>
<message>Y ou need to authenticate to modify the system configuration</message>
<message xml:lang="en">You must identify yourself to run the program apt-get</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_self_keep</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path"> /usr/bin/apt-get</annotate>
</action>
</policyconfig>
Ação em grupo
O PolicyKit só responde a uma requi­
sição se souber a ação em questão.
Os aplicativos precisam primeiro
dizer ao PolicyKit quais funções de
sistemas eles oferecem. Para que
isso aconteça, inclua a informação
necessária em um ou em múltiplos
arquivos XML que ficam no subdi­
retório /usr/share/polkit-1/actions,
onde também está org.gnome.clockapplet.mechanism.policy com as ações
do applet do relógio do Gnome que
requerem autenticação do PolicyKit.
Tabela 2: Tipos de privilégios do PolicyKit
Valor
Significado
yes
Ousuáriopodeiniciaraação
diretamentesemousodesenha.
no
Acessoàaçãoécompletamentebloqueado.
auth_self
Ousuárioprecisainformarsuaprópriasenha.
auth_self_keep
Ousuárioprecisainformarsuaprópriasenha.O
PolicyKitiráguardá-laporalgunssegundos.
auth_admin
OPolicyKitsolicitaumasenhaadministrativa.
auth_admin_keep OPolicyKitsolicitaumasenhaadministrativa
eaguardaporalgunssegundos.
Listagem 4: Início sem uma senha
01
02
03
04
05
06
70
Release apt-get program for
Identity=unix-user:carlo
Action=de.linuxnewmedia.example.run-apt-get
ResultActive=yes
ResultInactive=no
ResultAny=no
Iniciar o programa /usr/bin/aptget é apenas mais uma ação. Para
aplicar o controle de acesso, é pre­
ciso acrescentar outro arquivo XML
(listagem 3).
A estrutura é mais complexa do
que os arquivos de configuração
que vimos até agora. Os caracteres
no início são essenciais em qual­
quer arquivo XML. O publisher
ou o desenvolvedor são revelados
entre as tags <vendor> e </vendor> e
o endereço está em <vendor_url>. A
definição da ação a ser executada,
que inicia em <action id=> e um
nome único, ao qual o PolicyKit
também se refere por Action ID,
vem em seguida. Qualquer nome
é válido, contanto que tenha ape­
nas números, letras em caixa baixa,
pontos e traços. A convenção é usar
a URL de trás para frente e anexar
o nome da ação.
Uma descrição da ação é dada
entre as tags <description> e </description>. 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-
http://www.linuxmagazine.com.br
PolicyKit | SEGURANÇA
pplet.mechanism.policy é um bom
exemplo. A janela para inserir a se­
nha mostra o texto message, e <message 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_active. A tag allow_inactive cuida das
requisições de sessões inativas de
modo semelhante (e corresponde
a ResultInactive), enquanto que
allow_any (como contrapartida a
ResultAny) não se preocupa com
a origem.
Por fim, o caminho para o pro­
grama é especificado em <annotate 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.
Extras
Agora, é preciso estabelecer uma
regra especial (exceção) para o
usuário carlo em /etc/polkit-1/
localauthority/50-local.d ( listagem 4) para permitir que ele inicie
o programa apt-get através do pkexec sem inserir uma senha. Infeliz­
mente, o pkexec não confere os pa­
râmetros que o usuário passa junto
com o programa. Neste exemplo,
carlo poderia instalar um pacote
arbitrário (malicioso).
LinuxMagazine#70 | Setembrode2010
Figura 4 Assumindoqueosusuáriospossuemosprivilégiosnecessários,eles
podeminstalarprogramas.Nessecaso,ousuárioprecisafornecer
apenassuasenhaparaexecutarapt-getcomprivilégiosderoot.
Conclusão
O PolicyKit dá aos administradores
uma ferramenta extremamente fle­
xível para moldar perfis de acesso.
Diferente do su e sudo, o PolicyKit
não libera o usuário na totalidade
do aplicativo; em vez disso, restrin­
ge o usuário a funções individuais
do sistema. Além disso, os usuários
não precisam recorrer à linha de co­
mando; no máximo, eles terão que
fornecer uma senha.
Em cenários mais complexos, as
regras podem ficar um tanto confusas
e o uso de um editor de texto para
criá­las e mantê­las não é exatamente
algo inconveniente. Além do mais,
o PolicyKit é mais um sistema de
gerenciamento de privilégios além
do próprio sistema Linux.
Mesmo que se use o PolicyKit
para evitar que carlo execute um
programa, ele ainda poderá fazer isso
com sudo. Isso significa que é preciso
ficar de olho nas suas configurações
do PolicyKit e nos outros privilégios.
Para que o PolicyKit funcione bem,
os desenvolvedores precisam manter
suporte explicitamente em seus apli­
cativos; os sistemas de desktop preci­
sam fornecer um diálogo de senha
e as distribuições precisam ser mais
consistentes no seu uso do PolicyKit.
As últimas versões do openSUSE, do
Fedora e o Ubuntu mostram que ain­
da há muito a ser feito. n
Mais informações
[1] PolicyKit:http://www.freedesktop.org/wiki/Software/PolicyKit
Gostou do artigo?
Queremosouvirsuaopinião.Faleconoscoem
[email protected]
Esteartigononossosite:
http://lnm.com.br/article/3850
71
Otimização do fluxo de trabalho
PROGRAMAÇÃO
Processos
redesenhados
jose luis navarro – sxc.hu
ConstruaferramentasparagerenciamentodofluxodetrabalhocomBPEL.
por Michael Kleinhenz
U
m funcionário em uma via­
gem de negócios envia um
email com as datas e o lugar
de uma central de serviço; alguém
do escritório copia esses detalhes em
vários portais online de reservas e
emite um memorando de confirma­
ção. O funcionário volta da viagem
e insere mais uma vez os mesmos
dados solicitando reembolso. Algum
funcionário mais esperto poderia usar
scripts para automatizar esse proces­
so, removendo, assim, a necessidade
de inserir informações redundantes,
porém, o que aconteceria se a empre­
sa modificasse o processo? Alguém
se habilitaria a reescrever todos os
scripts customizados?
Os desenvolvedores geralmente
precisam de modos para modificar
processos de negócios sem reinventar
a infraestrutura existente. Os proces­
sos são a interface entre os departa­
mentos de produção e o de TI. Ao
mesmo tempo, desenvolvedores e
administradores precisam monitorar
todo o sistema e seus processos in­
ternos – um desafio para arquitetos
e designers.
72
O propósito do gerenciamento
de sistemas de fluxo de trabalho
(WFMS – Workflow Management
Systems) é modelar operações inde­
pendentemente de sua implementa­
ção. A ideia é fornecer aos usuários
as ferramentas básicas para mapear
procedimentos de funções de negó­
cios, tais como email, transações
de cartões de crédito ou sistemas
inventariais sem a necessidade de
programas antigos.
O XML se presta muito bem a
esse tipo de tarefa, mas, devido à
dificuldade em editar um arquivo
XML somente com um editor, várias
ferramentas gráficas estão disponíveis
para esse trabalho. O WFMS lê a
definição do processo codificada no
XML e se refere a ela para coorde­
nar e verificar a instância tangível
do processo moldado.
Mecanismos de fluxo de trabalho
oferecem meios para tratar da ca­
deia de atividades e sua sequência.
Para integrar serviços individuais, a
maioria dos mecanismos usa SOA
(Arquitetura Orientada a Serviço),
uma descrição de função baseada
em XML. A SOA permite que a em­
presa una componentes de diferen­
tes grupos. Por exemplo, é possível
empregar sistemas SAP ao departa­
mento Contabilidade e ainda usar
um componente próprio baseado
em JEE ou Dotnet da Engenharia.
Se todos os aplicativos possuírem
interfaces SOA, o WFMS pode
unir suas funções entre aplicativos
e controlar fluxos de trabalho entre
os componentes. Serviços web indi­
viduais são como instrumentos de
uma orquestra: o fluxo de trabalho
direciona e integra partes individuais
para criar um todo harmônico. Pe­
ritos nesse campo referem­se a isso
como “programação global”.
O BPEL (Business Process Execution Language ou Linguagem de
Execução de Processos de Negócios)
é um padrão para o gerenciamento de
fluxo de trabalho SOA. IBM, BEA,
Microsoft, SAP e outras adotaram o
padrão BPEL OASIS, que está agora
na versão 2.0 [1]. O BPEL usa docu­
mentos XML para descrever proces­
sos e depende dos padrões WSDL e
SOAP de serviços web.
http://www.linuxmagazine.com.br
BPEL | PROGRAMAÇÃO
Instalar o BPEL
O ambiente run-time do ActiveBPEL
(quadro 1) vem na forma de um
servlet Java e precisa de um servlet
container e do JRE 1.5 ou mais re­
cente. O software inclui um script
para o Tomcat 5.5, o que simplifica
a instalação.
Os administradores podem baixar
a distribuição do Core do Tomcat
[2] e descompactá­la em um dire­
tório de sua escolha. Além disso, é
preciso descompactar o ActiveBPEL
[3] Community Edition Engine no
mesmo diretório e configurar CATALINA_HOME para o caminho do Tom­
cat, como mostra o seguinte código:
export CATALINA_HOME=$(pwd)
/apachetomcat
cd activebpel5.0.2
./install.sh
Depois de ir para o diretório do
mecanismo do BPEL e iniciar a
instalação, é preciso esperar que o
servidor Tomcat inicie:
Quadro 1: ActiveBPEL
OActiveBPELimplementaaversão2.0dopadrãoBPEL.OmecanismopossuilicençaGPLv2.ComoumaplicativowebJEE,oBPELcooperacomum
servidor como o Apache Tomcat. O editor visual dos processos do BPEL,
conhecidocomoDesigner,eéumaplicativoEclipseRCP.Umaversãogratuitade30diasestádisponível.Épossívelobteralicençaparaoteste,que
seráenviadapelofabricanteporemail,napáginadedownload[5].OsdesenvolvedorespodemusaroutrosdesignerscomomecanismoActiveBPEL.
Porexemplo,aEclipseFoundationdesenvolveuseupróprioeditor,oActive
Endpoints,queoferecedesignersparaWindowseLinuxcomoumplugindo
Eclipse.Opluginsuportaverificaçãodeerrosdeprocessosemcombinação
comomecanismo,permitequeosprogramadoresdeterminembreakpoints,
verifiquemocódigoesimulemexecuçãodeprocessos.Osprocessospodem
serdistribuídosatravésdeumdiretórionodiscoouumserviçoweb.Osdesenvolvedoresmantêmumfórumonlineousuportecomercialparaosusuáriosfinais,eosuportecomercialdeterceirostambémestádisponível.
Então usa uma das ferramentas de
edição para criar um ambiente BPEL
– isto é, para formular um plano na
linguagem de descrição formal. O
ambiente Eclipse, por exemplo, ofe­
rece paletas de ação de programas
BPEL que suportam processos ba­
seados no uso do mouse (figura 1).
O BPEL modela um processo
como uma seqüência de etapas ou
atividades de processamento. Essas
atividades são normalmente forne­
cidas diretamente por serviços web
como elementos invocados, ou estão
disponíveis como variáveis manipu­
láveis. Os desenvolvedores podem
organizar as atividades individuais
como nós em um gráfico. Cada nó
contém exatamente um elemento de
controle – por exemplo, condições
cd ../apachetomcat/bin
./startup.sh
O Tomcat normalmente oferece
uma interface administrativa na porta
8080. Para isso, ele executa um na­
vegador com http://localhost:8080/
BpelAdmin/. Na configuração padrão,
o software utiliza um banco de dados
na memória que não salva nenhum
dado quando é fechado. A interface
de serviço web e um designer adicio­
nal possibilitam integrar os processos.
Detalhes da configuração e alguns
tutoriais estão disponíveis na web [4].
Projetar modelos
de processos
O 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.
LinuxMagazine#70 | Setembrode2010
Figura 1 EmvezdeeditarmanualmenteocódigoXML,oDesignerBPEL
permitequeosusuáriosmodelemosprocessoscomorecurso
arrastaresoltar.
73
PROGRAMAÇÃO | BPEL
Quadro 2: Integrar fluxos de trabalho com estruturas
Paraintegrarumcomponentedefluxodetrabalhocomumainfraestruturajá
existente,osarquitetosgeralmenteempregamumsistemadegerenciamento
delistadetrabalhoalémdomecanismocentral(figura 2).
QuandoumprocessoBPELatribuiumatarefaaumfuncionárioespecífico,
elechamaumserviçoweb.Oserviçowebenviaatarefaparaogerenciador
delistadetrabalho,queaceitaabuscaeaadicionaàlistadetarefasdofuncionário.Quandoofuncionáriocompletaratarefa,ogerenciadordelistade
trabalhoenviaumamensagemdizendoqueelaestácompletaaomecanismo
BPEL.Sistemasdessetipoestãogeralmenteligadosagruposouaumgerenciadorweb;outrossistemasusamemail.
que desencadeiam outras ativida­
des ou fluxos que executam outras
atividades em paralelo. Elementos
como sequências ou loops também
gerenciam o fluxo de controle.
Quando armazenadas em um
documento XML, essas estruturas
representam uma definição de pro­
cesso BPEL. A definição também
contém meta informação e descrição
de interface. O designer formula a
definição em WSDL e como elemen­
tos PartnerLinks. Esses elementos
criam uma camada de abstração –
entre as atividades invoke abaixo de
um processo por um lado, e serviços
web tangíveis por outro.
O BPEL usa o esquema padrão
do XML para passar valores; as va­
riáveis podem, então, aceitar estru­
turas complexas. Manipuladores de
falhas detectam erros de execução
do processo e responde, digamos,
derrubando a conexão do banco
de dados. Em contraste, manipula­
dores de eventos oferecem serviços
adicionais além da lógica normal
do processo.
Controle
de sequências
O 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.
Figura 2 OmecanismoBPELexecutaatividadesindividuaisemumasequênciafornecidaporusuários.
74
Cada instância possui seus próprios
estados. A instância une sistemas de
TI individuais com os empregados
envolvidos (quadro 2). Os envolvidos
recebem suas próprias conexões de
serviços web: para que isso aconte­
ça, o mecanismo envia um email ao
funcionário ou adiciona uma tarefa
ao grupo da empresa.
Processos de negócios podem le­
var dias, dependendo do aplicativo.
Métodos mais antigos, tais como
reduzir um banco de dados SQL
não conseguem garantir totalmente
a integridade dos dados nesse tipo
de ambiente: por exemplo, é im­
possível que o remetente se lembre
de uma carta que enviou. Em vez
disso, sistemas de fluxo de trabalho
dependem de compensação, como
uma segunda carta que cancela a
reserva de um hotel. A compensa­
ção é definida como um processo
separado em um contexto BPEL; os
desenvolvedores podem usar todas
as opções de design do BPEL dentro
da compensação.
Falante
Outro problema acontece com
processos longos: a típica aborda­
gem requisição/resposta do HTTPé
insuficiente quando a resposta de­
mora muito a chegar. O tempo de
uma requisição a um serviço sin­
cronizado como esse se esgotaria
antes que o serviço web pudesse
responder. Por essa razão, o BPEL
define técnicas para comunicações
web assíncronas entre o cliente e
o servidor. O cliente interrompe a
conexão quando uma confirmação
de recebimento chega a ele. A re­
quisição usa um cabeçalho replyTo
(responder à) para definir a URL
para a resposta. Quando a tarefa
estiver completa, os dois parceiros
trocam de papéis, e o antigo servi­
dor envia a resposta ao endereço
especificado para que o mecanismo
BPEL nesse endereço possa conti­
nuar o processo. Se for impossível
http://www.linuxmagazine.com.br
BPEL | PROGRAMAÇÃO
ao mecanismo do processo aceitar
respostas, a tarefa segue para outro
componente, como um enterprise
service bus.
Criar estrutura
O mecanismo do processo tem a
tarefa de alocar uma mensagem de
sucesso a uma instância do processo
muito tempo depois da requisição
correspondente ter sido emitida,
e, em alguns casos, muitas instân­
cias estão ativas ao mesmo tempo
no mecanismo. Por exemplo, algu­
mas instâncias de “Aprovar viagem”
podem estar sendo executadas si­
multaneamente no mecanismo do
processo, pois vários membros da
equipe planejam visitar uma feira.
Se for impossível adicionar um ID
de transação à requisição porque a
interface foi definida externamente,
o WFMS tenta identificar a instân­
cia do processo com referência aos
parâmetros. No caso de uma viagem
de negócios, o nome e a data da via­
gem provavelmente seriam suficien­
tes. Atributos comparáveis a chaves
primárias são chamados de sets de
correlação no BPEL.
Os escopos na modelagem são
parecidos com blocos de código
C++ ou Java. Um escopo ou scope,
é uma área com variáveis locais,
sequências de processos e mani­
puladores de falhas que permitem
que o desenvolvedor mantenha
uma definição de processo enxuta,
onde estruturas locais e variáveis
locais estão disponíveis apenas no
scope local.
Um exemplo de entrega mode­
lada com o uso de scopes ajudará
a ilustrar: uma empresa cobra uma
determinada quantia de um cartão
de crédito (subscope invoice), mas
não consegue entregar a mercadoria,
pois o endereço está errado (subscope
delivery). O manipulador de falhas
correspondente passa o erro para
o scope surrounding, que também
possui um manipulador de falhas.
LinuxMagazine#70 | Setembrode2010
Figura 3 Quandoumaviagemdenegócioséreservada,umserviçoweb
decidequalmeiodetransporteseráusado,apósoque,omecanismodefluxodetrabalhofazumareservadetremouavião.
O manipulador de falhas notifica
o funcionário que emitiu a ordem
e compensa as atividades após ter
feito isso, creditando a quantia na
conta do cartão de crédito. A van­
tagem é que o designer do proces­
so pode atribuir manipuladores de
erros e contra­medidas localmente
para cada passo.
Exemplo: reservar uma
viagem de negócios
Usando o exemplo da viagem descri­
to no início deste artigo, posso agora
modelar e mais tarde iniciar um pro­
cesso simples. Quando o servidor do
aplicativo e o BPEL forem baixados
e instalados, o designer modela par­
te da reserva da viagem de negócios.
Esse exemplo simples funciona sem
compensação e chamadas assíncro­
nas. O resultado é uma coleção de
arquivos XML que o designer pode
juntar em um arquivo e transferir
para o mecanismo.
A entrada para o processo com­
preende quatro registros: o nome de
usuário de quem vai viajar, o traje­
to da viagem, a data e o horário. O
processo inicia com a seleção de um
meio de transporte. Para que isso
aconteça, um serviço web se refere à
duração da viagem e à identidade do
viajante para decidir se reserva uma
passagem de trem ou de avião. Os
CEOs e engenheiros podem ter uma
prioridade de avião, por exemplo.
Após tomar essa decisão, o mecanismo
do processo reserva a passagem. Os
dados da viagem são então enviados
ao funcionário (figura 3).
Selecionar e clicar
O ActiveBPEL Designer [5] é uma
interface gráfica que ajuda a conver­
ter os passos individuais da modela­
gem em arquivos XML. O BPEL
separa informações de interface de
serviços web. A linguagem usa ope­
rações, descrições de parâmetros e
links parceiros (representações abs­
75
PROGRAMAÇÃO | BPEL
tratas de verdadeiros endereços de
serviços). O próprio modelo define
a estrutura, a sequência e o manipu­
lador de exceção.
Seguindo com esse exemplo, os
novatos do BPEL podem baixar o
ActiveBPEL Designer, descompactá­
lo e iniciá­lo da seguinte maneira:
./ActiveVOS_Designer_unix_6_0_2.sh
Quando receber o arquivo de li­
cença por email, não há nada que o
impeça de instalá­lo. Se preferir não
usar a versão de teste, é possível usar
qualquer outro designer BPEL. Um
assistente instala a versão completa
do mecanismo, permitindo que os
usuários testem o mecanismo dire­
tamente do editor.
Após a instalação, o usuário pode
corrigir o problema de codificação
com a versão 6.0.2 para o Linux e
recodificar o arquivo:
cd ./Designer/designerrecode ibmpc
..latin1 jre/lib/i386/jvm.cfg
Digite então ./designer para ini­
ciar o designer e aceitar o caminho
sugerido para o espaço de trabalho.
O fechamento da aba fecha a página
inicial. Os usuários do Eclipse logo
se sentirão em casa. No espaço de
trabalho padrão do designer, é possível
selecionar File / New / Orchestration
Project para criar um novo projeto.
O arquivo WSDL, services.wsdl,
descreve todas as interfaces. Primeira­
mente, armazene o arquivo na árvore
do projeto abaixo de wsdl; o mesmo
se aplica à descrição do processo
BPEL, travelbooking.bpel, abaixo
de bpel. O descritor de distribuição
contém os detalhes do endereço dos
serviços. O importante é que as de­
finições achem umas às outras, se o
designer produzir algum erro, é pre­
ciso conferir as referências WSDL
nos arquivos PDD e BPEL.
Tentativa e erro
Após criar um processo, é possível
testá­lo no simulador. Para isso, exe­
cute o processo selecionando Run
Figura 4 Odesignerajudaacompilaroarquivodoprocessodenegócio
dosváriosarquivosdemodelagem.Oarquivoéexecutadoporum
servidorcomooTomcat.
76
/ Simulate Process no mecanismo
interno. Esse comando configura
manualmente dados de parâmetro
através da aba Process Variables para
simular os valores passados por outro
serviço web em uso.
Se o processo funcionar como
projetado, o usuário do BPEL pode
então criar um arquivo de distribui­
ção (figura 4). Esse arquivo BPR é um
pacote JAR que contém os arquivos
necessários para que o processo seja
executado no mecanismo. O arqui­
vo é criado selecionando­se File /
Export / Orchestration / Business
Process Archive File e escolhendo
File como tipo de distribuição. Esse
passo escreve o arquivo BPR no dis­
co. Como opção, é possível passar
a distribuição diretamente para um
mecanismo em execução através de
um serviço web.
Se preferir trabalhar com o Ant
e sem o designer mais tarde, é pos­
sível criar um arquivo BPRD. Um
descritor de distribuição descreve
como uma definição de processo
chega até o mecanismo de fluxo
de trabalho e configura o que antes
eram parâmetros abstratos. Esses
detalhes são compilados em travelbooking.pdd.
O desenvolvedor precisa agora
parar o designer e iniciar o Tomcat
com o mecanismo ActiveBPEL.
Para apresentar o novo processo ao
mecanismo, basta copiar o arquivo
BPR para o diretório de destribui­
ção bpr abaixo da instalação do
Tomcat. Depois de alguns segun­
dos o servlet container identifica o
arquivo. É possível monitorar esse
processo em http://localhost:8080/
BpelAdmin/deployment_log_detail.jsp,
o log de distribuição da interface
de administração.
O log lista os processos instala­
dos em Deployed Process. Se um
usuário iniciar um processo do
tipo travelbooking através de uma
requisição SOAP, a interface do
administrador mostra seu estado
http://www.linuxmagazine.com.br
BPEL | PROGRAMAÇÃO
e o conteúdo variável em http://
localhost:8080/BpelAdmin/active_processes.jsp. O processo de visuali­
zação no front end web é similar
ao display do designer.
Boas conexões
Qualquer cliente SOAP pode fazer
uma requisição SOAP; o SoapUI é
uma boa escolha para testes rápidos
[6]. A definição WSDL para travelbooking() pode então ser carregada
diretamente com o mecanismo em
execução: http://localhost:8080/activebpel/services/TravelbookingPartn
erLinkService?-wsdl. Se as definições
forem importadas dessa maneira e
o endereço do serviço HTTP para
o mecanismo for configurado, já
é possível integrar o projeto com
seus aplicativos.
Devido as muitas camadas de
abstração, o gerenciamento de flu­
xo de trabalho com o BPEL não é
trivial. Várias abordagens à mode­
lagem de processo nos negócios,
noções diferentes, variantes permi­
tidas na implementação do padrão,
as múltiplas camadas de um SOA
e a variedade de produtos de soft­
ware dificultam uma solução para
os arquitetos de sistema. Literatura
especializada no assunto encheria
uma pequena biblioteca, mas o livro
Business Process Execution Language 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 desenvolvedores
A resposta do BPEL à concorrência
é oferecer uma abordagem universal.
O BPEL é tão universal que conse­
gue dar conta de quase tudo no fluxo
de trabalho de negócios. Isso man­
tém os desenvolvedores à vontade
e significa que eles podem suportar
diversos métodos de modelagem.
LinuxMagazine#70 | Setembrode2010
Porém, não subestime a complexi­
dade: um WFMS baseado no BPEL
exige do desenvolvedor um grande
conhecimento da funcionalidade da
tecnologia SOA e um “sim” certeiro
para processar tecnologia das divisões
dos negócios.
Apesar de toda a padronização,
o BPEL possui alguns problemas.
Por exemplo, o padrão não é muito
claro em algumas áreas, ou há bre­
chas que muitos revendedores de
mecanismos BPEL exploram com
extensões proprietárias. Apesar de
exigir a linguagem XPath para a
manipulação de variáveis e valores,
por exemplo, é possível o uso de
extensões como XQuery ou JavaScript. Essa abordagem pode facilitar
a modelagem, mas significa que as
definições do processo não são inte­
ligíveis para qualquer mecanismo de
fluxo de trabalho.
A linguagem de descrição não
funciona bem como uma ferramenta
do departamento de marketing ou
para a equipe de gerentes que queira
definir fluxo de trabalho de negócios
por si mesmos. Ao contrário: o de­
signer do processo precisa entender
as sutilezas técnicas do fundamen­
to SOA. Habilidades com o SOAP
e grande compreensão do padrão
WSDL são úteis.
A visão de deixar todo o trabalho
com o chefe é uma ilusão. Mas a fa­
cilidade para o usuário final nunca
foi a meta dessa tecnologia: o BPEL
é uma plataforma de integração téc­
nica para qualquer tipo de definição
de processo de trabalho. Se houver
perseverança na criação de uma
estrutura com o BPEL, será possí­
vel relaxar e ver o fluxo de trabalho
conforme seus processos de negócios
forem evoluindo. n
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,ePoomachandra
Sarang.BusinessProcessExecutionLanguageforWeb
ServicesBPELandBPEL4WS,2nded.Packt,2006
Gostou do artigo?
Queremosouvirsuaopinião.Faleconoscoem
[email protected]
Esteartigononossosite:
http://lnm.com.br/article/3842
77
SERVIÇOS
Linux.local
Omaiordiretóriodeempresasqueoferecemprodutos,soluçõese
serviçosemLinuxeSoftwareLivre,organizadoporEstado.Sentiu
faltadonomedesuaempresaaqui?Entreemcontatocomagente:
11 3675-2600 ou [email protected]
Fornecedor de Hardware = 1
Redes e Telefonia / PBX = 2
Integrador de Soluções = 3
Literatura / Editora = 4
Fornecedor de Software = 5
Consultoria / Treinamento = 6
Empresa
Cidade
Endereço
Telefone
Web
1 2 3 4 5 6
Bahia
IMTECH
Salvador
Av.AntonioCarlosMagalhaes,846–Edifício
MaxCenter–Sala337–CEP41825-000
714062-8688
www.imtech.com.br
MagiclinkSoluções
Salvador
RuaDr.JoséPeroba,275.Ed.MetropolisEmpresarial1005,STIEP
712101-0200
www.magiclink.com.br
4 4
4 4
4 4 4
4 4
Ceará
F13Tecnologia
Fortaleza
RuaPadreValdevino,526–Centro
NettionTecnologiae
SegurançadaInformação
Fortaleza
Av.OliveiraPaiva,941,CidadedosFuncionários–CEP60822-130 853878-1900
853252-3836
www.f13.com.br
LinuxShopp
VilaVelha
RuaSãoSimão(Correspondência),18–CEP:29113-120
273082-0932
www.linuxshopp.com.br
MegaworkConsultoria
eSistemas
Vitória
RuaChapotPresvot,389–sl201,202–PraiadoCanto
CEP: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
623232-9333
www.3way.com.br
4 4 4
4 4
4 4
4 4
4
4 4
www.nettion.com.br
Espírito Santo
4 4
4 4
Goiás
3WAYNetworks
Goiânia
Av.QuartaRadial,1952.SetorPedroLudovico–CEP.:74830-130
Minas Gerais
InstitutoOnline
BeloHorizonte
Av.BiasFortes,932,Sala204–CEP:30170-011
313224-7920
www.institutoonline.com.br
LinuxPlace
BeloHorizonte
RuadoOuro,136,Sala301–Serra–CEP:30220-000
313284-0575
corporate.linuxplace.com.br
4
4 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
iSolve
Curitiba
Av.CândidodeAbreu,526,Cj.1206B–CEP:80530-000
41252-2977
www.isolve.com.br
MandrivaConectiva
Curitiba
RuaTocantins,89–CristoRei–CEP:80050-430
413360-2600
www.mandriva.com.br
TelwayTecnologia
Curitiba
RuaFranciscoRocha1830/71
413203-0375
www.telway.com.br
813223-8348
www.fuctura.com.br
Paraná
4 4
4
4 4 4 4
4 4
Pernambuco
FucturaTecnologia
Recife
RuaNicarágua,159–Espinheiro–CEP:52020-190
4
4
4 4
4
4 4
4 4
Rio de Janeiro
ClavisBBRConsultoria
eminformática
RiodeJaneiro
Av.RioBranco156,1303–Centro–CEP:20040-901
212561-0867
www.clavis.com.br
LinuxSolutionsInformática
RiodeJaneiro
Av.PresidenteVargas962–sala1001
212526-7262
www.linuxsolutions.com.br
MúltiplaTecnologiadaInformação RiodeJaneiro
Av.RioBranco,37,14°andar–CEP:20090-003
212203-2622
www.multipla-ti.com.br
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
Camposdos
Goytacazes
Av.AlbertoTorres,303,1ºandar–Centro–CEP:28035-581
222725-1041
www.unipi.com.br
4upSoluçõesCorporativas
NovoHamburgo
Pso.CalçadãoOsvaldoCruz,54sl.301CEP:93510-015
513581-4383
www.4up.com.br
DefinitivaInformática
NovoHamburgo
RuaGeneralOsório,402-HamburgoVelho
5135943140
www.definitiva.com.br
4
RedeHostInternet
Gravataí
RuaDr.LuizBastosdoPrado,1505–Conj.301CEP:94010-021
5140620909
www.redehost.com.br
4 4 4
Solis
Lajeado
Av.7deSetembro,184,sala401–BairroMoinhos
CEP:95900-000
513714-6653
www.solis.coop.br
4
4
4 4
4 4 4 4
Rio Grande do Sul
4 4
4 4
4
4 4
4 4 4 4 4
DualCon
NovoHamburgo
RuaJoaquimPedroSoares,1099,Sl.305–Centro
513593-5437
www.dualcon.com.br
4
4
Datarecover
PortoAlegre
Av.CarlosGomes,403,Sala908,Centro
ComercialAtriumCenter–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
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 Paulo
WsHost
ArthurNogueira
RuaJerere,36–VistaAlegre–CEP:13280-000
193846-1137
www.wshost.com.br
4
DigiVoice
Barueri
Al.Juruá,159,Térreo–Alphaville–CEP:06455-010
114195-2557
www.digivoice.com.br
4 4 4
DextraSistemas
Campinas
4
4
4 4
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
PC2Consultoriaem
SoftwareLivre
Carapicuiba
RuaEdeia,500-CEP:06350-080
113213-6388
www.pc2consultoria.com
78
4
4
http://www.linuxmagazine.com.br
4
4
Linux.local | SERVIÇOS
Empresa
Cidade
Endereço
Telefone
Web
1 2 3 4 5 6
São Paulo (continuação)
EpopéiaInformática
Marília
RuaGoiás,392–BairroCascata–CEP:17509-140
Redentor
Osasco
RuaCostantePiovan,150–Jd.TrêsMontanhas–CEP:06263-270 112106-9392
143413-1137
www.redentor.ind.br
Go-Global
Santana
deParnaíba
Av.YojiroTakaoca,4384,Ed.ShoppingService,
Cj.1013–CEP:06541-038
www.go-global.com.br
112173-4211
www.epopeia.com.br
4
4
4
AW2NET
SantoAndré
RuaEdsonSoares,59–CEP:09760-350
114990-0065
www.aw2net.com.br
AsyncOpenSource
SãoCarlos
RuaOrlandoDamiano,2212–CEP13560-450
163376-0125
www.async.com.br
4
DelixInternet
SãoJosédo
RioPreto
RuaVoluntáriodeSãoPaulo,30669º–Centro–CEP:15015-909
114062-9889
www.delixhosting.com.br
4
2MITecnologiaeInformação
SãoPaulo
RuaFrancoAlfano,262–CEP:5730-010
114203-3937
www.2mi.com.br
4Linux
SãoPaulo
RuaTeixeiradaSilva,660,6ºandar–CEP:04002-031
112125-4747
www.4linux.com.br
4 4
4
4 4
4 4
4
4
4 4
4 4
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ática
ComércioeServiçosLTDA.
SãoPaulo
Av.FranciscoMatarazzo,229,Cj.57–
ÁguaBranca–CEP05001-000
113879-9390
www.altbit.com.br
4
AS2M-WPCConsultoria
SãoPaulo
RuaTrêsRios,131,Cj.61A–BomRetiro–CEP:01123-001
113228-3709
www.wpc.com.br
Blanes
SãoPaulo
RuaAndréAmpére,153–9ºandar–Conj.91
CEP:04562-907(próx.Av.L.C.Berrini)
115506-9677
www.blanes.com.br
4
4 4
4
4 4
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
ComputerConsulting
ProjetoeConsultoriaLtda.
SãoPaulo
RuaCaramuru,417,Cj.23–Saúde–CEP:04138-001
115071-7988
www.computerconsulting.com.br
4
4 4
ConsistConsultoria,SistemaseRepresentaçõesLtda.
SãoPaulo
Av.dasNaçõesUnidas,20.727–CEP:04795-100
115693-7210
www.consist.com.br
4
4 4 4 4
DomínioTecnologia
SãoPaulo
RuadasCarnaubeiras,98–MetrôConceição–CEP:04343-080
115017-0040
www.dominiotecnologia.com.br
4
ÉticaTecnologia
SãoPaulo
RuaNovaYork,945–Brooklin–CEP:04560-002
115093-3025
www.etica.net
4
GetronicsICTSolutions
andServices
SãoPaulo
RuaVerboDivino,1207–CEP:04719-002
115187-2700
www.getronics.com/br
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 4 4
4 4
4
4 4
ItautecS.A.
SãoPaulo
Av.Paulista,2028–CEP:01310-200
113543-5543
www.itautec.com.br
KomputerInformática
SãoPaulo
Av.JoãoPedroCardoso,392ºandar–Cep.:04335-000
115034-4191
www.komputer.com.br
KonsultexInformatica
SãoPaulo
Av.Dr.GuilhermeDumontVillares,14106andar,CEP:05640-003
113773-9009
www.konsultex.com.br
LinuxKomputerInformática
SãoPaulo
Av.Dr.LinodeMoraesLeme,185–CEP:04360-001
115034-4191
www.komputer.com.br
4
4
LinuxMall
SãoPaulo
RuaMachadoBittencourt,190,Cj.2087–CEP:04044-001
115087-9441
www.linuxmall.com.br
LivrariaTempoReal
SãoPaulo
Al.Santos,1202–CerqueiraCésar–CEP:01418-100
113266-2988
www.temporeal.com.br
LocasiteInternetService
SãoPaulo
Av.BrigadeiroLuizAntonio,2482,3ºandar–Centro
–CEP:01402-000
112121-4555
www.locasite.com.br
Microsiga
SãoPaulo
Av.BrazLeme,1631–CEP:02511-000
113981-7200
www.microsiga.com.br
Locaweb
SãoPaulo
Av.Pres.JuscelinoKubitschek,1.830–Torre4
VilaNovaConceição–CEP:04543-900
113544-0500
www.locaweb.com.br
NovatecEditoraLtda.
SãoPaulo
RuaLuisAntoniodosSantos,110–Santana–CEP:02460-000
116979-0071
www.novateceditora.com.br
NovellAméricaLatina
SãoPaulo
RuaFunchal,418–VilaOlímpia
113345-3900
www.novell.com/brasil
OracledoBrasilSistemasLtda. SãoPaulo
Av.AlfredoEgídiodeSouzaAranha,100–BlocoB–5º
andar–CEP:04726-170
115189-3000
www.oracle.com.br
ProelbraTecnologia
EletrônicaLtda.
SãoPaulo
Av.Rouxinol,1.041,Cj.204,2ºandarMoema–CEP:04516-001
115052-8044
www.proelbra.com.br
Provider
SãoPaulo
Av.CardosodeMelo,1450,6ºandar–VilaOlímpia
–CEP:04548-005
112165-6500
RedHatBrasil
SãoPaulo
Av.BrigadeiroFariaLima,3900,Cj818ºandar
ItaimBibi–CEP:04538-132
113529-6000
4
4
4 4
4
4 4
4
4
4 4
4
4 4
4 4
4 4 4
4
4 4
4
4 4
4 4 4
4
4
4 4
4 4
4
4
4
www.e-provider.com.br
4
4 4
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
SimplesConsultoria
SãoPaulo
RuaMouratoCoelho,299,Cj.02Pinheiros–CEP:05417-010
113898-2121
www.simplesconsultoria.com.br
4 4 4
4 4
4
4 4
4 4
4 4
SmartSolutions
SãoPaulo
Av.Jabaquara,2940cj56e57
115052-5958
www.smart-tec.com.br
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
4
4
4 4
4
4 4
4
4
4
4
SybaseBrasil
SãoPaulo
Av.JuscelinoKubitschek,510,9ºandarItaimBibi–CEP:04543-000 113046-7388
www.sybase.com.br
UnisysBrasilLtda.
SãoPaulo
R.AlexandreDumas1658–6º,7ºe8ºandares–Chácara
SantoAntônio–CEP:04717-004
www.unisys.com.br
113305-7000
Utah
SãoPaulo
Av.Paulista,925,13ºandar–CerqueiraCésar–CEP:01311-916
113145-5888
www.utah.com.br
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
WRLInformáticaLtda.
SãoPaulo
RuaSantaIfigênia,211/213,Box02–Centro–CEP:01207-001
113362-1334
www.wrl.com.br
4
Systech
Taquaritinga
RuaSãoJosé,1126–Centro–CaixaPostal71–CEP:15.900-000
163252-7308
www.systech-ltd.com.br
4 4
Linux Magazine #70 | Setembro de 2010
4
4
79
SERVIÇOS
Calendário de eventos
Índice de anunciantes
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
Maceió, AL
www.lg.com.br/jornada
15 a 17 de outubro
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
SOLISC – Congresso
Catarinense de
Software Livre
22 e 23 de outubro
Latinoware 2010
10 a 12 de novembro
São Paulo, SP
Florianópolis, SC
Foz do
Iguaçu, PR
www.futurecom.com.br
www.solisc.org.br/2010
www.latinoware.org
Empresa
Pág.
Globo.com
02,03
Latinoware
Intelig
05
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
Nerdson – Os quadrinhos mensais da Linux Magazine
80
http://www.linuxmagazine.com.br
PREVIEW
Na Linux Magazine #71
OpManager7
À medida que os negócios crescem, a infra­estrutura
de TI deve acompanhar esse ritmo e se manter 100%
disponível para que a empresa possa se manter em
atividade contínua e focada nas atividades relativas
ao negócio. n
Tivoli e Linux
Há 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 remotos
A melhoria da continuidade dos negócios para escritó­
rios remotos é crítica e merece absoluta atenção, para
evitar a perda de produtividade, custo de mão­de­obra
adicional e outros problemas que afetam significati­
vamente a estabilidade financeira das empresas. n
Na Ubuntu User #20
Firewall no Ubuntu
Aprenda a trabalhar com o firewall
do Ubuntu, configurando­o da forma
correta para manter o seu computa­
dor e seus dados sempre seguros. n
Ubuntu 10.10
Conheça os novos recursos do Ubuntu 10.10 Maverick Meerkat (surica­
to independente), que promete ter significativas mudanças na interface
gráfica, totalmente redesenhada. Inicialização mais rápida, navegador
mais rápido e experiência web mais leve e veloz são as novidades anun­
ciadas para esta versão. n
82
http://www.linuxmagazine.com.br
Download

GRÁTIS: CD COM XCP