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 Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editora Flávia Jobstraibizer fjobs@linuxmagazine.com.br
EDITORIAL
Editora de Arte Paola Viveiros pviveiros@linuxmagazine.com.br Redator Mauro Baraldi mbaraldi@linuxmagazine.com.br Colaboradores Alexandre Borges, Augusto Campos, Tim Schürmann, Michael Kromer, Michael L. Collins, Kurt Seifried, Cezar Taurion, Marco Sinhoreli e Sérgio Pelissaria Junior. Tradução Diana Ricci Aranha Revisão Ana Carolina Hunger Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg Eßer, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian Kißling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, Jörg Luther, Nils Magnus. Anúncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 3675-2600 Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (América do Norte) aphalen@linuxpromagazine.com Hubert Wiest (Outros países) hwiest@linuxnewmedia.de Diretor de operações Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido www.linuxpromagazine.com – América do Norte Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por consequências que advenham de seu uso. A utilização de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permissão expressa da editora. Assume-se que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicação ou licenciamento a terceiros de forma mundial não-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux é uma marca registrada de Linus Torvalds. Linux Magazine é publicada mensalmente por: Linux New Media do Brasil Editora Ltda. Rua São Bento, 500 Conj. 802 – Sé 01010-001 – São Paulo – SP – Brasil Tel.: +55 (0)11 3675-2600 Direitos Autorais e Marcas Registradas © 2004 - 2010: Linux New Media do Brasil Editora Ltda. Impressão e Acabamento: RR Donnelley Distribuída em todo o país pela Dinap S.A., Distribuidora Nacional de Publicações, São Paulo. Atendimento Assinante www.linuxnewmedia.com.br/atendimento São Paulo: +55 (0)11 3512 9460 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 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 dedicarse 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 cartas@linuxmagazine.com.br 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 K9 , é o primeiro a apoiar a linha de criptografia e descriptografia de emails via PGP e pode verificar assinaturas digitais usando o livre Android Privacy Guard (APG) OpenPGP. Ambos estão disponíveis para download a partir do Android Market, de forma gratuita. Além disso, o K9 possui suporte IMAP melhor do que o cliente de email original do Android. Os desenvolvedores do k9mail 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
Para notícias sempre atualizadas e com a opinião de quem vive o mercado do Linux e do Software Livre, acesse nosso site: 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 presidenteexecutivo 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 ereader, menor, mais rápida e mais barata do que a anterior. O novo membro da família, que analistas esperavam ser chamado de Kindle 3, recebeu apenas o nome de Kindle. No anúncio da Amazon, o produto é vendido como “mais fino, mais rápido e com 50% mais contraste” do que outros ereaders. Com corpo 21% menor e 15% mais leve, ele mantém seis polegadas de tela. A bateria, segundo a Amazon, dura até um mês com o wireless desligado, e as páginas são trocadas com até 20% mais rapidez. O produto com acesso via WiFi custa US$ 139. A versão com 3G sai por US$ 189. Ambos 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 O próximo passo da tecnologia, é certamente, o uso inteligente de soluções de virtualizaçã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 passoapasso 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
Linux Magazine #70 | Setembro de 2010
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 vrdpldap, 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ância a falhas com o Xen 4 e Remus Exame minucioso Virtualização com Ganeti e Xen VirtualBox com LDAP Ambientes virtuais com Open Source Instalação e configuração do XCP
32 36 41 44 48 50
31
VoIP com FreeSWITCH
REDES
Fale com tranquilidade O FreeSWITCH é uma plataforma de telefonia poderosa e versátil que pode ir de um softphone até um PBX. 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 Tela de configuração da conta SIP no X-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;
Linux Magazine #70 | Setembro de 2010
Se uma música for ouvida, a cha mada foi bem sucedida. Caso contrá rio certifiquese de que os arquivos MOH estão corretamente instalados. Desligue com o comando pa hangup. Para se certificar de que os 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 XLite da CounterPath [4], que está disponível para o Linux, MacOS e Windows. Mesmo que seu servidor FreeSWITCH esteja sendo executado no Linux, seus softphones podem funcionar em qualquer siste ma operacional, contanto que sejam compatíveis com o SIP. Para começar, baixe o XLite 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 XLite e abra o menu de configuração de conta SIP clicando no botão Show Menu (esse botão é a pequena flecha no topo do fone, à esquerda). Apenas uma conta SIP está dis ponível no XLite, portanto, clique nela e depois no botão Properties. Como mostra a figura 1, preencha os campos e use 1234 como senha para o ramal 1000. Então limpe o campo Dialing plan, pois ele não é necessário com o
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 Cliente X-Lite registrado.
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
Ramais Padrão Amostra de Grupos de Discagem Conferências de Banda Estreita (8kHz) Conferências de Banda Larga (16kHz) Conferências de Banda Ultra-Larga (32kHz) Conferências com Qualidade de CD (48kHz) Recuperação de Correio de Voz Amostra de IVR Call Park Recuperação de Call Park Conferência FreeSWITCH Aplicativo de Informação Teste de Eco Música de Espera (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
Define um número de variáveis de sistema customizáveis, como senhas padrão e lista de preferência de codecs
$CONF/dialplan/default.xml
A maior parte do Dialplan padrão é configurada aqui
$CONF/directory/default/*.xml
Usuários individuais são definidos aqui, e.g., 1000.xml
$CONF/sip_profiles/internal.xml
Um “perfil SIP”, ou UA SIP para servir uma porta IP (normalmente a porta 5060)
$CONF/sip_profiles/external.xml |
Outro UA SIP que lida com registros de saída para provedores SIP (porta 5080)
$CONF/autoload_configs/modules.conf.xml |
Módulos carregados automaticamente na inicialização do FreeSWITCH
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 10001019, 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 XLite, 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
Linux Magazine #70 | Setembro de 2010
<condition field="destination_ number" expression="^(10[01] [0-9]|1500)$">
ramal. Caso haja um segundo tele fone, registreo como 1000 e usuo 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:888@conference.freeswitch.org, e o Dialplan padrão irá conectar seu fone se chamar 9888. Se a chamada for completada, ha verá uma voz TTS (texttospeach) anunciando seu nome ou número de identificação. Caso você seja a única pessoa na conferência, haverá uma gravação que o informará disso. Para chamar a conferência com o PortAudio, digite:
Listagem 1: Novo usuário 1500.xml 01 <include> 02 <user id="1500" mailbox="1500"> 03 <params> 04 <param name="password" value="$${default_password}"/> 05 <param name="vm‐password" value="1500"/> 06 </params> 07 <variables> 08 <variable name="toll_allow" value="domestic,international, local"/> 09 <variable name="accountcode" value="1500"/> 10 <variable name="user_context" value="default"/> 11 <variable name="effective_caller_id_name" value="Katherine"/> 12 <variable name="effective_caller_id_number" value="1500"/> 13 <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/> 14 <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> 15 <variable name="callgroup" value="techsupport"/> 16 </variables> 17 </user> 18 </include>
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:888@conference.freeswitch.org
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, ou Session Initiation Protocol é um protocolo baseado em TCP/IP utilizado para sessões de multimídia através da Internet. O protocolo baseado em texto é similar ao HTTP, com requisições e respostas, campos de cabeçalho, regras de codificação e códigos de status. Além do VoIP, o SIP é usado em mensagens instantâneas, jogos online e distribuição de streaming multimídia.
de conferência FreeSWITCH com o PSTN com +12137991400 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, juntese a ela e continue aprendendo as grandes possibilidades do VoIP. n
Mais informações [1] Comparação entre o FreeSWITCH e o Asterisk: http://www.freeswitch.org/node/117 [2] Site do FreeSWITCH: http://www.freeswitch.org [3] Download do FreeSWITCH: http://files.freeswitch.org [4] X-Lite: http://www.counterpath.com/x-lite.html [5] FreeSWITCH wiki: http://wiki.freeswitch.org/wiki/SIP_Provider_Examples [6] Site iptel.org: http://www.iptel.org [7] Biblioteca Sofia-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
Linux Magazine #70 | Setembro de 2010
[8] CELT codec: http://www.celt-codec.org [9] Siren codecs: http://www.polycom.com/company/about_us/ technology/siren_g7221/ index.html [10] T utorial FreeSWITCH: http://robsmart.co.uk/2009/06/02/freeswitch_linksys3102
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3854
65
Privilégios administrativos com o PolicyKit
SEGURANÇA
Poderes ao alcance das mãos Se 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. 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 No Gnome, o PolicyKit dá acesso às configurações de data e horá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 é extraofi cialmente chamada de PolicyKit-1 ou polkit-1 para distinguila 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 PolicyKit1 faz distinção entre usuários normais e administradores. Os administradores podem ajustar as configurações do sistema por padrão, como o root. Os arquivos de 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
Linux Magazine #70 | Setembro de 2010
Tabela 1: Pastas para entradas de autorização Diretório
Conteúdo
10-vendor.d
Regras do distribuidor
20-org.d
Regras feitas pela organização que distribui o sistema operacional
30-site.d
Regras feitas pelo site que distribui o sistema operacional
50-local.d
Regras locais
90-mandatory.d
Regras feitas pela organização que distribui o sistema operacional
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 O comportamento do pkexec com prompts de senhas é lógico, porém confuso à primeira vista. Com o comando $ pkexec - -user bonny apt-get install gnuchess você inicia o pkexec. O PolicyKit solicita então sua própria senha. Não há acesso ao diretório /var/lib/dpkg, por isso o apt-get também se recusa a instalar o programa. Para instalar o gnuchess como o usuário bonny, é preciso primeiro fazer o login como este usuário e depois digitar o comando pkexec apt-get install gnuchess O PolicyKit irá pedir agora a senha do usuário bonny, iniciar o apt-get com privilégios de root e instalar o gnuchess – assumindo que nenhuma regra do PolicyKit impeça isso.
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 O PolicyKit contém um certo número de módulos e, uma requisição feita a ele, sempre dispara um tipo de reação em cadeia. No início, um programa sem privilégios, conhecido por cliente, dispara uma função em um programa ou “mecanismo” com privilégios. Por exemplo, um applet de desktop (ou seja, o cliente) pode tentar mudar o estado do computador com o uso do DeviceKit (mecanismo). O mecanismo checa o PolicyKit para determinar se o cliente tem permissão para disparar essa ação. Para isso, ele envia uma requisição para o serviço D-Bus org.freedesktop.PolicyKit1. O D-Bus inicia, então, automaticamente, o daemon polkitd do PolicyKit, que confere as regras para ver se o cliente é confiável. Se for necessário o fornecimento de uma senha, o PolicyKit usa o D-Bus para solicitar que o ambiente de desktop abra um agente de autenticação. Normalmente, o agente é uma pequena janela que solicita uma senha do usuário. Os desenvolvedores de ambientes de desktop decidem o aspecto deste agente. Se o mecanismo receber uma resposta positiva do PolicyKit através do DBus, a função requisitada será executada; caso contrário, ele cancela a ação e envia uma mensagem de erro. A figura 2 ilustra todo o processo.
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 palavrachave Identity= e o usuário ou usuários a quem se aplicam as seguintes altera ções de privilégios. Múltiplos usuários e grupos precisam ser separados por vírgulas (como mencionado antes) após as conhecidas palavraschaves unix-user: ou unix-group. A linha seguinte contém o nome da função do sistema ou ação em questão, org.clockapplet.mechanism. settime, que se refere ao ajuste do relógio no Gnome. Digitar pkaction --verbose na linha de comando irá 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
Linux Magazine #70 | Setembro de 2010
Figura 2 O cliente primeiramente habilita um serviço do sistema. O serviço então utiliza o D-Bus para solicitar permissão ao PolicyKit e este pede uma senha de usuá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 O prompt da senha de autenticação do Gnome revela a ação do usuá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
O usuário pode iniciar a ação diretamente sem o uso de senha.
no
Acesso à ação é completamente bloqueado.
auth_self
O usuário precisa informar sua própria senha.
auth_self_keep
O usuário precisa informar sua própria senha. O PolicyKit irá guardá-la por alguns segundos.
auth_admin
O PolicyKit solicita uma senha administrativa.
auth_admin_keep O PolicyKit solicita uma senha administrativa e a guarda por alguns segundos.
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).
Linux Magazine #70 | Setembro de 2010
Figura 4 Assumindo que os usuários possuem os privilégios necessários, eles podem instalar programas. Nesse caso, o usuário precisa fornecer apenas sua senha para executar apt-get com privilégios de root.
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? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3850
71
Otimização do fluxo de trabalho
PROGRAMAÇÃO
Processos redesenhados jose luis navarro – sxc.hu
Construa ferramentas para gerenciamento do fluxo de trabalho com BPEL. 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 referemse 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 O ActiveBPEL implementa a versão 2.0 do padrão BPEL. O mecanismo possui licença GPLv2. Como um aplicativo web JEE, o BPEL coopera com um servidor como o Apache Tomcat. O editor visual dos processos do BPEL, conhecido como Designer, e é um aplicativo Eclipse RCP. Uma versão gratuita de 30 dias está disponível. É possível obter a licença para o teste, que será enviada pelo fabricante por email, na página de download [5]. Os desenvolvedores podem usar outros designers com o mecanismo ActiveBPEL. Por exemplo, a Eclipse Foundation desenvolveu seu próprio editor, o Active Endpoints, que oferece designers para Windows e Linux como um plugin do Eclipse. O plugin suporta verificação de erros de processos em combinação com o mecanismo, permite que os programadores determinem breakpoints, verifiquem o código e simulem execução de processos. Os processos podem ser distribuídos através de um diretório no disco ou um serviço web. Os desenvolvedores mantêm um fórum online ou suporte comercial para os usuários finais, e o suporte comercial de terceiros também está 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.
Linux Magazine #70 | Setembro de 2010
Figura 1 Em vez de editar manualmente o código XML, o Designer BPEL permite que os usuários modelem os processos com o recurso arrastar e soltar.
73
PROGRAMAÇÃO | BPEL
Quadro 2: Integrar fluxos de trabalho com estruturas Para integrar um componente de fluxo de trabalho com uma infraestrutura já existente, os arquitetos geralmente empregam um sistema de gerenciamento de lista de trabalho além do mecanismo central (figura 2). Quando um processo BPEL atribui uma tarefa a um funcionário específico, ele chama um serviço web. O serviço web envia a tarefa para o gerenciador de lista de trabalho, que aceita a busca e a adiciona à lista de tarefas do funcionário. Quando o funcionário completar a tarefa, o gerenciador de lista de trabalho envia uma mensagem dizendo que ela está completa ao mecanismo BPEL. Sistemas desse tipo estão geralmente ligados a grupos ou a um gerenciador web; outros sistemas usam email.
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 O mecanismo BPEL executa atividades individuais em uma sequência fornecida por usuá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.
Linux Magazine #70 | Setembro de 2010
Figura 3 Quando uma viagem de negócios é reservada, um serviço web decide qual meio de transporte será usado, após o que, o mecanismo de fluxo de trabalho faz uma reserva de trem ou aviã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 contramedidas 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 O designer ajuda a compilar o arquivo do processo de negócio dos vários arquivos de modelagem. O arquivo é executado por um servidor como o Tomcat.
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 selecionandose 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.
Linux Magazine #70 | Setembro de 2010
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, “Web Services Business Process Execution Language Version 2.0.” http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html [2] Apache Tomcat: http://tomcat.apache.org [3] ActiveBPEL, Edição da Comunidade: http://www.activevos.com/community-open-source.php [4] Documentação e tutoriais do ActiveBPEL: http://www.activevos.com/community-educationcenter.php [5] ActiveBPEL Designer: http://www.active-endpoints.com/download-trial.php [6] Navegador SoapUI: http://www.soapui.org [7] Juric, Matjaz B., Benny Mathew, e Poomachandra Sarang. Business Process Execution Language for Web Services BPEL and BPEL4WS, 2nd ed. Packt, 2006
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3842
77
SERVIÇOS
Linux.local O maior diretório de empresas que oferecem produtos, soluções e serviços em Linux e Software Livre, organizado por Estado. Sentiu falta do nome de sua empresa aqui? Entre em contato com a gente: 11 3675-2600 ou anuncios@linuxmagazine.com.br
Fornecedor de Hardware = 1 Redes e Telefonia / PBX = 2 Integrador de Soluções = 3 Literatura / Editora = 4 Fornecedor de Software = 5 Consultoria / Treinamento = 6
Empresa
Cidade
Endereço
Telefone
Web
1 2 3 4 5 6
Bahia IMTECH
Salvador
Av. Antonio Carlos Magalhaes, 846 – Edifício MaxCenter – Sala 337 – CEP 41825-000
71 4062-8688
www.imtech.com.br
Magiclink Soluções
Salvador
Rua Dr. José Peroba, 275. Ed. Metropolis Empresarial 1005, STIEP
71 2101-0200
www.magiclink.com.br
4 4
4 4
4 4 4
4 4
Ceará F13 Tecnologia
Fortaleza
Rua Padre Valdevino, 526 – Centro
Nettion Tecnologia e Segurança da Informação
Fortaleza
Av. Oliveira Paiva, 941, Cidade dos Funcionários – CEP 60822-130 85 3878-1900
85 3252-3836
www.f13.com.br
Linux Shopp
Vila Velha
Rua São Simão (Correspondência), 18 – CEP: 29113-120
27 3082-0932
www.linuxshopp.com.br
Megawork Consultoria e Sistemas
Vitória
Rua Chapot Presvot, 389 – sl 201, 202 – Praia do Canto CEP: 29055-410
27 3315-2370
www.megawork.com.br
4
4 4
Spirit Linux
Vitória
Rua Marins Alvarino, 150 – CEP: 29047-660
27 3227-5543
www.spiritlinux.com.br
4
4 4
62 3232-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 3WAY Networks
Goiânia
Av. Quarta Radial,1952. Setor Pedro Ludovico – CEP.: 74830-130
Minas Gerais Instituto Online
Belo Horizonte
Av. Bias Fortes, 932, Sala 204 – CEP: 30170-011
31 3224-7920
www.institutoonline.com.br
Linux Place
Belo Horizonte
Rua do Ouro, 136, Sala 301 – Serra – CEP: 30220-000
31 3284-0575
corporate.linuxplace.com.br
4 4 4
4 4 4
Microhard
Belo Horizonte
Rua República da Argentina, 520 – Sion – CEP: 30315-490
31 3281-5522
www.microhard.com.br
4 4 4
4 4
TurboSite
Belo Horizonte
Rua Paraíba, 966, Sala 303 – Savassi – CEP: 30130-141
0800 702-9004
www.turbosite.com.br
4
4 4
iSolve
Curitiba
Av. Cândido de Abreu, 526, Cj. 1206B – CEP: 80530-000
41 252-2977
www.isolve.com.br
Mandriva Conectiva
Curitiba
Rua Tocantins, 89 – Cristo Rei – CEP: 80050-430
41 3360-2600
www.mandriva.com.br
Telway Tecnologia
Curitiba
Rua Francisco Rocha 1830/71
41 3203-0375
www.telway.com.br
81 3223-8348
www.fuctura.com.br
Paraná 4 4
4
4 4 4 4 4 4
Pernambuco Fuctura Tecnologia
Recife
Rua Nicarágua, 159 – Espinheiro – CEP: 52020-190
4
4
4 4
4
4 4
4 4
Rio de Janeiro Clavis BBR Consultoria em informática
Rio de Janeiro
Av. Rio Branco 156, 1303 – Centro – CEP: 20040-901
21 2561-0867
www.clavis.com.br
Linux Solutions Informática
Rio de Janeiro
Av. Presidente Vargas 962 – sala 1001
21 2526-7262
www.linuxsolutions.com.br
Múltipla Tecnologia da Informação Rio de Janeiro
Av. Rio Branco, 37, 14° andar – CEP: 20090-003
21 2203-2622
www.multipla-ti.com.br
NSI Training
Rio de Janeiro
Rua Araújo Porto Alegre, 71, 4º andar Centro – CEP: 20030-012
21 2220-7055
www.nsi.com.br
4
4
Open IT
Rio de Janeiro
Rua do Mercado, 34, Sl, 402 – Centro – CEP: 20010-120
21 2508-9103
www.openit.com.br
4
4
Unipi Tecnologias
Campos dos Goytacazes
Av. Alberto Torres, 303, 1ºandar – Centro – CEP: 28035-581
22 2725-1041
www.unipi.com.br
4up Soluções Corporativas
Novo Hamburgo
Pso. Calçadão Osvaldo Cruz, 54 sl. 301 CEP: 93510-015
51 3581-4383
www.4up.com.br
Definitiva Informática
Novo Hamburgo
Rua General Osório, 402 - Hamburgo Velho
51 3594 3140
www.definitiva.com.br
4
RedeHost Internet
Gravataí
Rua Dr. Luiz Bastos do Prado, 1505 – Conj. 301 CEP: 94010-021
51 4062 0909
www.redehost.com.br
4 4 4
Solis
Lajeado
Av. 7 de Setembro, 184, sala 401 – Bairro Moinhos CEP: 95900-000
51 3714-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
Novo Hamburgo
Rua Joaquim Pedro Soares, 1099, Sl. 305 – Centro
51 3593-5437
www.dualcon.com.br
4
4
Datarecover
Porto Alegre
Av. Carlos Gomes, 403, Sala 908, Centro Comercial Atrium Center – Bela Vista – CEP: 90480-003
51 3018-1200
www.datarecover.com.br
4
4
LM2 Consulting
Porto Alegre
Rua Germano Petersen Junior, 101-Sl 202 – Higienópolis – CEP: 90540-140
51 3018-1007
www.lm2.com.br
4 4
4
4 4
Lnx-IT Informação e Tecnologia Porto Alegre
Av. Venâncio Aires, 1137 – Rio Branco – CEP: 90.040.193
51 3331-1446
www.lnx-it.inf.br
4
4
4 4
TeHospedo
Porto Alegre
Rua dos Andradas, 1234/610 – Centro – CEP: 90020-008
51 3301-1408
www.tehospedo.com.br
4 4
Propus Informática
Porto Alegre
Rua Santa Rita, 282 – CEP: 90220-220
51 3024-3568
www.propus.com.br
4 4 4
4 4
São Paulo Ws Host
Arthur Nogueira
Rua Jerere, 36 – Vista Alegre – CEP: 13280-000
19 3846-1137
www.wshost.com.br
4
DigiVoice
Barueri
Al. Juruá, 159, Térreo – Alphaville – CEP: 06455-010
11 4195-2557
www.digivoice.com.br
4 4 4
Dextra Sistemas
Campinas
4
4 4 4
Rua Antônio Paioli, 320 – Pq. das Universidades – CEP: 13086-045 19 3256-6722
www.dextra.com.br
4
4 4
Insigne Free Software do Brasil Campinas
Av. Andrades Neves, 1579 – Castelo – CEP: 13070-001
19 3213-2100
www.insignesoftware.com
4
4 4
Microcamp
Campinas
Av. Thomaz Alves, 20 – Centro – CEP: 13010-160
19 3236-1915
www.microcamp.com.br
PC2 Consultoria em Software Livre
Carapicuiba
Rua Edeia, 500 - CEP: 06350-080
11 3213-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éia Informática
Marília
Rua Goiás, 392 – Bairro Cascata – CEP: 17509-140
Redentor
Osasco
Rua Costante Piovan, 150 – Jd. Três Montanhas – CEP: 06263-270 11 2106-9392
14 3413-1137
www.redentor.ind.br
Go-Global
Santana de Parnaíba
Av. Yojiro Takaoca, 4384, Ed. Shopping Service, Cj. 1013 – CEP: 06541-038
www.go-global.com.br
11 2173-4211
www.epopeia.com.br
4 4 4
AW2NET
Santo André
Rua Edson Soares, 59 – CEP: 09760-350
11 4990-0065
www.aw2net.com.br
Async Open Source
São Carlos
Rua Orlando Damiano, 2212 – CEP 13560-450
16 3376-0125
www.async.com.br
4
Delix Internet
São José do Rio Preto
Rua Voluntário de São Paulo, 3066 9º – Centro – CEP: 15015-909
11 4062-9889
www.delixhosting.com.br
4
2MI Tecnologia e Informação
São Paulo
Rua Franco Alfano, 262 – CEP: 5730-010
11 4203-3937
www.2mi.com.br
4Linux
São Paulo
Rua Teixeira da Silva, 660, 6º andar – CEP: 04002-031
11 2125-4747
www.4linux.com.br
4 4
4
4 4 4 4 4
4
4 4
4 4 4 4
A Casa do Linux
São Paulo
Al. Jaú, 490 – Jd. Paulista – CEP: 01420-000
11 3549-5151
www.acasadolinux.com.br
4
4 4
Accenture do Brasil Ltda.
São Paulo
Rua Alexandre Dumas, 2051 – Chácara Santo Antônio – CEP: 04717-004
11 5188-3000
www.accenture.com.br
4
4 4
ACR Informática
São Paulo
Rua Lincoln de Albuquerque, 65 – Perdizes – CEP: 05004-010
11 3873-1515
www.acrinformatica.com.br
4
4
Agit Informática
São Paulo
Rua Major Quedinho, 111, 5º andar, Cj. 508 – Centro – CEP: 01050-030
11 3255-4945
www.agit.com.br
4 4
4
Altbit - Informática Comércio e Serviços LTDA.
São Paulo
Av. Francisco Matarazzo, 229, Cj. 57 – Água Branca – CEP 05001-000
11 3879-9390
www.altbit.com.br
4
AS2M -WPC Consultoria
São Paulo
Rua Três Rios, 131, Cj. 61A – Bom Retiro – CEP: 01123-001
11 3228-3709
www.wpc.com.br
Blanes
São Paulo
Rua André Ampére, 153 – 9º andar – Conj. 91 CEP: 04562-907 (próx. Av. L. C. Berrini)
11 5506-9677
www.blanes.com.br
4
4 4
4
4 4
4 4 4
4 4
Bull Ltda
São Paulo
Av. Angélica, 903 – CEP: 01227-901
11 3824-4700
www.bull.com
4
4
4 4
Commlogik do Brasil Ltda.
São Paulo
Av. das Nações Unidas, 13.797, Bloco II, 6º andar – Morumbi – CEP: 04794-000
11 5503-1011
www.commlogik.com.br
4 4 4
4 4
Computer Consulting Projeto e Consultoria Ltda.
São Paulo
Rua Caramuru, 417, Cj. 23 – Saúde – CEP: 04138-001
11 5071-7988
www.computerconsulting.com.br
4
4 4
Consist Consultoria, Sistemas e Representações Ltda.
São Paulo
Av. das Nações Unidas, 20.727 – CEP: 04795-100
11 5693-7210
www.consist.com.br
4
4 4 4 4
Domínio Tecnologia
São Paulo
Rua das Carnaubeiras, 98 – Metrô Conceição – CEP: 04343-080
11 5017-0040
www.dominiotecnologia.com.br
4
Ética Tecnologia
São Paulo
Rua Nova York, 945 – Brooklin – CEP:04560-002
11 5093-3025
www.etica.net
4
Getronics ICT Solutions and Services
São Paulo
Rua Verbo Divino, 1207 – CEP: 04719-002
11 5187-2700
www.getronics.com/br
Hewlett-Packard Brasil Ltda.
São Paulo
Av. das Nações Unidas, 12.901, 25º andar – CEP: 04578-000
11 5502-5000
www.hp.com.br
4
4 4 4 4
IBM Brasil Ltda.
São Paulo
Rua Tutóia, 1157 – CEP: 04007-900
0800-7074 837
www.br.ibm.com
4
4
4 4
iFractal
São Paulo
Rua Fiação da Saúde, 145, Conj. 66 – Saúde – CEP: 04144-020
11 5078-6618
www.ifractal.com.br
4
4 4
Integral
São Paulo
Rua Dr. Gentil Leite Martins, 295, 2º andar Jd. Prudência – CEP: 04648-001
11 5545-2600
www.integral.com.br
4 4 4 4
4 4
4
4 4
Itautec S.A.
São Paulo
Av. Paulista, 2028 – CEP: 01310-200
11 3543-5543
www.itautec.com.br
Komputer Informática
São Paulo
Av. João Pedro Cardoso, 39 2º andar – Cep.: 04335-000
11 5034-4191
www.komputer.com.br
Konsultex Informatica
São Paulo
Av. Dr. Guilherme Dumont Villares, 1410 6 andar, CEP: 05640-003
11 3773-9009
www.konsultex.com.br
Linux Komputer Informática
São Paulo
Av. Dr. Lino de Moraes Leme, 185 – CEP: 04360-001
11 5034-4191
www.komputer.com.br
4 4
Linux Mall
São Paulo
Rua Machado Bittencourt, 190, Cj. 2087 – CEP: 04044-001
11 5087-9441
www.linuxmall.com.br
Livraria Tempo Real
São Paulo
Al. Santos, 1202 – Cerqueira César – CEP: 01418-100
11 3266-2988
www.temporeal.com.br
Locasite Internet Service
São Paulo
Av. Brigadeiro Luiz Antonio, 2482, 3º andar – Centro – CEP: 01402-000
11 2121-4555
www.locasite.com.br
Microsiga
São Paulo
Av. Braz Leme, 1631 – CEP: 02511-000
11 3981-7200
www.microsiga.com.br
Locaweb
São Paulo
Av. Pres. Juscelino Kubitschek, 1.830 – Torre 4 Vila Nova Conceição – CEP: 04543-900
11 3544-0500
www.locaweb.com.br
Novatec Editora Ltda.
São Paulo
Rua Luis Antonio dos Santos, 110 – Santana – CEP: 02460-000
11 6979-0071
www.novateceditora.com.br
Novell América Latina
São Paulo
Rua Funchal, 418 – Vila Olímpia
11 3345-3900
www.novell.com/brasil
Oracle do Brasil Sistemas Ltda. São Paulo
Av. Alfredo Egídio de Souza Aranha, 100 – Bloco B – 5º andar – CEP: 04726-170
11 5189-3000
www.oracle.com.br
Proelbra Tecnologia Eletrônica Ltda.
São Paulo
Av. Rouxinol, 1.041, Cj. 204, 2º andar Moema – CEP: 04516-001
11 5052- 8044
www.proelbra.com.br
Provider
São Paulo
Av. Cardoso de Melo, 1450, 6º andar – Vila Olímpia – CEP: 04548-005
11 2165-6500
Red Hat Brasil
São Paulo
Av. Brigadeiro Faria Lima, 3900, Cj 81 8º andar Itaim Bibi – CEP: 04538-132
11 3529-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
Samurai Projetos Especiais
São Paulo
Rua Barão do Triunfo, 550, 6º andar – CEP: 04602-002
11 5097-3014
www.samurai.com.br
4
4 4
SAP Brasil
São Paulo
Av. das Nações Unidas, 11.541, 16º andar – CEP: 04578-000
11 5503-2400
www.sap.com.br
4
4 4
Savant Tecnologia
São Paulo
Av. Brig. Luis Antonio, 2344 cj 13 – Jd. Paulista – CEP:01402-000
11 2925-8724
www.savant.com.br
Simples Consultoria
São Paulo
Rua Mourato Coelho, 299, Cj. 02 Pinheiros – CEP: 05417-010
11 3898-2121
www.simplesconsultoria.com.br
4 4 4
4 4
4
4 4
4 4
4 4
Smart Solutions
São Paulo
Av. Jabaquara, 2940 cj 56 e 57
11 5052-5958
www.smart-tec.com.br
Snap IT
São Paulo
Rua João Gomes Junior, 131 – Jd. Bonfiglioli – CEP: 05299-000
11 3731-8008
www.snapit.com.br
4
4 4
Stefanini IT Solutions
São Paulo
Av. Brig. Faria Lima, 1355, 19º – Pinheiros – CEP: 01452-919
11 3039-2000
www.stefanini.com.br
4
4 4
4
4
4 4
4
4 4
4
4
4
4
Sybase Brasil
São Paulo
Av. Juscelino Kubitschek, 510, 9º andar Itaim Bibi – CEP: 04543-000 11 3046-7388
www.sybase.com.br
Unisys Brasil Ltda.
São Paulo
R. Alexandre Dumas 1658 – 6º, 7º e 8º andares – Chácara Santo Antônio – CEP: 04717-004
www.unisys.com.br
11 3305-7000
Utah
São Paulo
Av. Paulista, 925, 13º andar – Cerqueira César – CEP: 01311-916
11 3145-5888
www.utah.com.br
Webnow
São Paulo
Av. Nações Unidas, 12.995, 10º andar, Ed. Plaza Centenário – Chácara Itaim – CEP: 04578-000
11 5503-6510
www.webnow.com.br
4 4
WRL Informática Ltda.
São Paulo
Rua Santa Ifigênia, 211/213, Box 02– Centro – CEP: 01207-001
11 3362-1334
www.wrl.com.br
4
Systech
Taquaritinga
Rua São José, 1126 – Centro – Caixa Postal 71 – CEP: 15.900-000
16 3252-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
Central Server
11
DCS
13
Rede Host
15
UOL Host
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 infraestrutura de TI deve acompanhar esse ritmo e se manter 100% disponível para que a empresa possa se manter em atividade contínua e focada nas atividades relativas ao negócio. n
Tivoli e 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ãodeobra 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, configurandoo 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