Page 1

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 dedicar­se ao bem estar do próximo. Maior vantagem do que essa não há! n Rafael Peregrino da Silva Diretor de Redação

http://www.linuxmagazine.com.br


u c.h ww .s x –w ro ne gje sa

nja

Emails para o editor

CARTAS

Permissão de Escrita Falha de impressora USB ✉

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

Resposta

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

Escreva para nós!

Algumas impressoras, especial­ mente as que combinam fax e scan­ ner (como a série multifuncional da HP), exigem um trabalho extra. Para essas, instale o pacote hplip. Se nada disso funcionar, tente con­ figurar a impressora com um driver de um modelo mais antigo da mes­ ma marca. Às vezes, as impressoras usam o mesmo chipset interno, ela só parece diferente e tem um núme­ ro de versão maior, mas ainda usa o mesmo protocolo. Se mesmo assim você ainda não tiver sorte, devolva a impressora ainda na garantia. Se nada funcionar apesar de seus esforços, ela deve estar com defeito (de fabricação ou quebrada mesmo). Você não aceitaria uma impressora que não funcionasse no Windows; por que então aceitá­la no Linux? n [1] CUPS: http://www.openprinting.org

Sempre queremos sua opinião sobre a Linux Magazine e nossos artigos. Envie seus emails para 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 K­9 , é o primeiro a apoiar a linha de criptografia e descriptografia de e­mails via PGP e pode verificar assinaturas digitais usando o livre Android Privacy Guard (APG) OpenPGP.  Ambos estão disponíveis para download a partir do Android Market, de forma gratuita.  Além disso, o K­9 possui suporte IMAP melhor do que o cliente de e­mail original do Android. Os desenvolvedores do k9mail imple­ mentaram também outras novas funções e

melhorias. Por exemplo, os usuários podem agora escolher uma identidade de reme­ tente de qualquer uma das suas contas e a interface de usuário oferece agora botões dedicados para o “arqui­­ vo” de mensagens e marcação como “spam”. Mais detalhes sobre o k9mail podem ser encontrados no Rele­ ase Notes e na página wiki do pro­ jeto . O k9mail é lançado sob a versão 2.0 da licença Apache e está hospedado no Google Code. n

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 presidente­executivo da companhia, Jeff Weiner em entrevista. “Esta é uma de nos­ sas principais prioridades. Estamos investindo um esforço considerável nisso”, disse Weiner. Os termos do acordo não foram divulgados. Wiener afirmou que o LinkedIn tem cerca de US$ 76 milhões em caixa, arrecadados em 2008. e financiou o acordo através de seu fluxo de caixa operacional. O LinkedIn, que gera receita por meio de anunciantes, além de um serviço premium, não divulga seus resultados trimestrais, uma vez que a empresa não tem capital aberto, mas Weiner afirmou que o crescimento na receita acelerou, e o lucro aumentou este ano. Os dois fundadores da mS­ poke também entrarão para o LinkedIn. O LinkedIn ganha cerca de 10 milhões de novos usuários por dia desde abril, e totaliza 75 milhões de membros em todo o mundo. n

Um dia depois de anunciar que o Kindle estava com estoques esgotados, a Amazon.com colocou à venda a nova versão do seu e­reader, menor, mais rápida e mais barata do que a anterior. O novo membro da família, que analistas esperavam ser chamado de Kindle 3, recebeu apenas o nome de Kindle. No anúncio da Amazon, o produto é vendido como “mais fino, mais rápido e com 50% mais contraste” do que outros e­readers. Com corpo 21% menor e 15% mais leve, ele mantém seis polegadas de tela. A bateria, segundo a Amazon, dura até um mês com o wireless desligado, e as páginas são trocadas com até 20% mais rapidez. O produto com acesso via Wi­Fi custa US$ 139. A versão com 3G sai por US$ 189. Ambos es­ tão disponíveis nas cores branca e grafite e têm 4 GB de espaço de armazenamento. Jim Friedland, analista da Cowen & Co. que publicou uma nota aos clientes de sua empresa intitulada “O Kindle 3 está para ser lançado?”, afirmou que diversas pis­ tas, entre as quais a notificação quanto a estoques esgotados, apontavam para a chegada da terceira geração do Kindle. n

http://www.linuxmagazine.com.br


Infraestrutura virtual

CAPA

Futuro virtualizado 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 passo­a­passo nas próximas páginas irá lhe auxiliar na instalação e con­ figuração de um ambiente de cloud com esta incrível ferramenta. Ainda nesta seção, você irá en­ contrar um excelente artigo sobre o Ganeti, gerenciador open source de máquinas virtuais criado pela Goo­ gle. O Ganeti é capaz de gerenciar servidores virtuais na plataforma do hypervisor Xen sobre sistema ope­ racional Linux em clusters de PCs comuns. Após ser instalado em uma máquina física (ou cluster) equipa­ da com Linux e Xen, o gerenciador

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 vrdp­ldap, que oferece autenticação baseada em LDAP para instâncias do Virtual­ Box na rede. E finalizando, saiba como obter capacidade de escrita em dispositi­ vos somente leitura com o sistema de arquivos aufs. n

Matérias de capa Tolerâ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 certifique­se de que os arquivos MOH estão corretamente instalados. Desligue com o comando pa hangup. Para se certificar de que os dispo­ sitivos de entrada e de saída estão funcionando, faça o teste: pa call 9996

Agora, quando falar no disposi­ tivo de entrada, sua voz ecoará no dispositivo de saída. O comando pa hangup terminará a ligação. Como é possível ver, o FreeSWI­ TCH e o PortAudio podem ser usados para criar um softphone simples. Dessa maneira, será possível usar qualquer codec suportado por sua instalação – e há codecs de alta qualidade disponí­ veis – sem a necessidade de instalação de um cliente softphone.

o fone baseado em software é apro­ priadamente chamado de softphone. Vários tipos de hard phones estão dis­ poníveis. Os softphones têm versões proprietárias e FLOSS. Uma versão gratuita popular – mas sem código aberto – é o X­Lite da CounterPath [4], que está disponível para o Linux, MacOS e Windows. Mesmo que seu servidor FreeSWITCH esteja sendo executado no Linux, seus softphones podem funcionar em qualquer siste­ ma operacional, contanto que sejam compatíveis com o SIP. Para começar, baixe o X­Lite no seu sistema e faça a instalação pa­ drão (a instalação do softphone no mesmo sistema que executa o Fre­ eSWITCH não é recomendada; no entanto, em muitos casos, ela fun­ cionará para testes). Agora, inicie o X­Lite e abra o menu de configuração de conta SIP clicando no botão Show Menu (esse botão é a pequena flecha no topo do fone, à esquerda). Apenas uma conta SIP está dis­ ponível no X­Lite, portanto, clique nela e depois no botão Properties. Como mostra a figura 1, preencha os campos e use 1234 como senha para o ramal 1000. Então limpe o campo Dialing plan, pois ele não é necessário com o

Conectar um fone SIP

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

Figura 2 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 1000­1019, inclusive. Para adicionar o novo usuário Katherine ao ramal 1500, utilize o caracter pipe (|), que é um OR lógico:

Adicionar um usuário SIP

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

O FreeSWITCH vem com 20 usuá­ rios pré­determinados, mas se quiser adicionar mais, apenas dois passos modificam a configuração: Adicione uma entrada de usuá­ rio em $CONF/directory/default/ Modifique o Dialplan para per­ mitir que o novo usuário receba chamadas Para adicionar um novo usuário chamado Katherine com o ramal 1500, vá para $CONF/directory/default e faça uma cópia do arquivo 1000.xml: cp 1000.xml 1500.xml

Em um editor, abra o 1500.xml, substitua 1000 por 1500 e altere o effective_caller_id_name para Katherine. Seu novo arquivo deverá ficar parecido com o da listagem 1. Agora, abra $CONF/dialplan/default. xml e localize a entrada do Dialplan (ou ramal) chamada Local_Extension. Na linha: <condition field="destination_ number" expression="^(10[01] [0-9])$">

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

Linux Magazine #70 | Setembro de 2010

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

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

Fora do switch Local

Uma vantagem do VoIP são as liga­ ções via internet gratuitas ou muito baratas. O FreeSWITCH pode ro­ tear ligações de e para a internet, mesmo por trás de um dispositivo NAT. Os dispositivos NAT causam vários problemas para ligações SIP; no entanto, o FreeSWITCH é ótimo para contornar essas questões. Em vários casos, a configuração padrão funcionará sem qualquer mu­ dança. Um simples teste é chamar o servidor de conferência pública Fre­ eSWITCH. A URI SIP desse servidor é sip: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 (text­to­speach) anunciando seu nome ou número de identificação. Caso você seja a única pessoa na conferência, haverá uma gravação que o informará disso. Para chamar a conferência com o PortAudio, digite:

Listagem 1: Novo usuário 1500.xml 01 <include> 02 <user id="1500" mailbox="1500"> 03 <params> 04 <param name="password" value="$${default_password}"/> 05 <param name="vm‐password" value="1500"/> 06 </params> 07 <variables> 08 <variable name="toll_allow" value="domestic,international, local"/> 09 <variable name="accountcode" value="1500"/> 10 <variable name="user_context" value="default"/> 11 <variable name="effective_caller_id_name" value="Katherine"/> 12 <variable name="effective_caller_id_number" value="1500"/> 13 <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/> 14 <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> 15 <variable name="callgroup" value="techsupport"/> 16 </variables> 17 </user> 18 </include>

63


REDES | FreeSWITCH

Listagem 2: Configuração de um gateway para uma conta SIP 01 <include> 02 <gateway name="iptel"> <!‐‐ used in dialstrings ‐‐> 03 <param name="username" value="YOUR_USERNAME_HERE"/> 04 <param name="realm" value="iptel.org"/> 05 <param name="password" value="YOUR_PASSWORD_HERE"/> 06 <param name="proxy" value="sip.iptel.org"/> 07 </gateway> 08 </include>

pa call sip: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 +1­213­799­1400 e com­ parar a diferença entre codecs VoIP de alta qualidade e e a baixa quali­ dade do PSTN.

Próximo passo

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

sentada por Rob Smart, da IBM, que escreveu um tutorial chamado “Home VOIP system using FreeSwi­ tch and a Linksys 3102 voice gateway” [10] mostrando como configurar o FreeSWITCH como um servidor de comunicação no Reino Unido. Uma comunidade crescente e vi­ brante oferece suporte aos novatos e veteranos, portanto, junte­se a ela e continue aprendendo as grandes possibilidades do VoIP. n

Mais informações [1] Comparaçã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 é extra­ofi­ cialmente chamada de PolicyKit-1 ou polkit-1 para distingui­la das outras. A última versão não suporta o ge­ renciador gráfico de privilégios, que funciona apenas em versões mais an­ tigas do PolicyKit, até a 0.9.0, mais precisamente. Para as tarefas de ge­ renciamento de privilégios, a única alternativa é usar seu editor favorito, mas isso não é tão complicado quan­ to se possa imaginar.

Dono da casa

O PolicyKit­1 faz distinção entre usuários normais e administradores. Os administradores podem ajustar as configurações do sistema por padrão, como o root. Os arquivos de confi­ guração em /etc/polkit-1/localauthority.conf.d definem os membros. Assim que instalado, o PolicyKit possui um único arquivo, 50-localauthority.conf, com o conteúdo: [Configuration] AdminIdentities=unix-user:0

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 palavra­chave Identity= e o usuário ou usuários a quem se aplicam as seguintes altera­ ções de privilégios. Múltiplos usuários e grupos precisam ser separados por vírgulas (como mencionado antes) após as conhecidas palavras­chaves unix-user: ou unix-group. A linha seguinte contém o nome da função do sistema ou ação em questão, org.clockapplet.mechanism. settime, que se refere ao ajuste do relógio no Gnome. Digitar pkaction --verbose na linha de comando irá in­ formar quais outras ações o PolicyKit suporta. Essa lista pode ser bem longa, dependendo de sua distribuição; o comando a seguir redireciona a saída para um arquivo texto list.txt para facilitar a inspeção: $ pkaction --verbose > list.txt

O prompt de diálogo da senha no Gnome, mostrado na figura 3, for­ nece outra informação útil. A seção Details revela qual Action (ação) o usuário tentou fazer. No arquivo .pkla, é possível usar wildcards (*) para agrupar múltiplas ações. Por exemplo, Action=org.gnome.clockapplet. mechanism.*

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

Privilégios

As últimas três linhas da regra na listagem 1 definem os privilégios. Quando

o usuário carlo tentar qualquer ação na sessão atual, o PolicyKit confere ResultActive= configurado com yes e permite que carlo altere o horário

http://www.linuxmagazine.com.br


PolicyKit | SEGURANÇA

sem problemas; auth_self pede que ele forneça sua senha de usuário e auth_self_keep faz o PolicyKit lembrar dessa senha por alguns segundos. Se carlo precisar ajustar o horário de novo durante esse período, não será preciso digitar sua senha de novo. Por fim, auth_admin pede que o u­ suário forneça a senha administrati­ va. Isso se aplica a qualquer usuário listado depois de AdminIdentities= no arquivo /etc/polkit-1/localauthority.conf.d/60-myconfig.conf – nesse exemplo, adam e bonny. A tabela 2 mostra os outros valores suportados para ResultActive. Seguindo o mes­ mo padrão, ResultInactive cuida das buscas originárias de sessões inativas; ResultAny não faz distinção entre ses­ sões ativas e inativas. Com base nos padrões mostrados anteriormente, é possível adicionar mais sessões ao seu arquivo .pkla, ajustando assim suas atribuições de privilégios. Em um ambiente de pro­ dução, regras para uma única ação serão normalmente agrupadas em um arquivo, que é, então, nomeado para uma ação. As alterações do usuário carlo estariam salvas então em org. gnome.clockapplet.mechanism.pkla.

Tudo ou nada

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

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

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 referem­se a isso como “programação global”. O BPEL (Business Process Execution Language ou Linguagem de Execução de Processos de Negócios) é um padrão para o gerenciamento de fluxo de trabalho SOA. IBM, BEA, Microsoft, SAP e outras adotaram o padrão BPEL OASIS, que está agora na versão 2.0 [1]. O BPEL usa docu­ mentos XML para descrever proces­ sos e depende dos padrões WSDL e SOAP de serviços web.

http://www.linuxmagazine.com.br


BPEL | PROGRAMAÇÃO

Instalar o BPEL

O ambiente run-time do ActiveBPEL (quadro 1) vem na forma de um servlet Java e precisa de um servlet container e do JRE 1.5 ou mais re­ cente. O software inclui um script para o Tomcat 5.5, o que simplifica a instalação. Os administradores podem baixar a distribuição do Core do Tomcat [2] e descompactá­la em um dire­ tório de sua escolha. Além disso, é preciso descompactar o ActiveBPEL [3] Community Edition Engine no mesmo diretório e configurar CATALINA_HOME para o caminho do Tom­ cat, como mostra o seguinte código: export CATALINA_HOME=$(pwd) /apachetomcat cd activebpel5.0.2 ./install.sh

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

Quadro 1: ActiveBPEL 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 contra­medidas localmente para cada passo.

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

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

Selecionar e clicar

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


PROGRAMAÇÃO | BPEL

tratas de verdadeiros endereços de serviços). O próprio modelo define a estrutura, a sequência e o manipu­ lador de exceção. Seguindo com esse exemplo, os novatos do BPEL podem baixar o ActiveBPEL Designer, descompactá­ lo e iniciá­lo da seguinte maneira: ./ActiveVOS_Designer_unix_6_0_2.sh

Quando receber o arquivo de li­ cença por email, não há nada que o impeça de instalá­lo. Se preferir não usar a versão de teste, é possível usar qualquer outro designer BPEL. Um assistente instala a versão completa do mecanismo, permitindo que os usuários testem o mecanismo dire­ tamente do editor. Após a instalação, o usuário pode corrigir o problema de codificação com a versão 6.0.2 para o Linux e recodificar o arquivo: cd ./Designer/designerrecode ibmpc ..latin1 jre/lib/i386/jvm.cfg

Digite então ./designer para ini­ ciar o designer e aceitar o caminho sugerido para o espaço de trabalho. O fechamento da aba fecha a página inicial. Os usuários do Eclipse logo se sentirão em casa. No espaço de trabalho padrão do designer, é possível selecionar File / New / Orchestration Project para criar um novo projeto. O arquivo WSDL, services.wsdl, descreve todas as interfaces. Primeira­ mente, armazene o arquivo na árvore do projeto abaixo de wsdl; o mesmo se aplica à descrição do processo BPEL, travelbooking.bpel, abaixo de bpel. O descritor de distribuição contém os detalhes do endereço dos serviços. O importante é que as de­ finições achem umas às outras, se o designer produzir algum erro, é pre­ ciso conferir as referências WSDL nos arquivos PDD e BPEL.

Tentativa e erro

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

Figura 4 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 selecionando­se File / Export / Orchestration / Business Process Archive File e escolhendo File como tipo de distribuição. Esse passo escreve o arquivo BPR no dis­ co. Como opção, é possível passar a distribuição diretamente para um mecanismo em execução através de um serviço web. Se preferir trabalhar com o Ant e sem o designer mais tarde, é pos­ sível criar um arquivo BPRD. Um descritor de distribuição descreve como uma definição de processo chega até o mecanismo de fluxo de trabalho e configura o que antes eram parâmetros abstratos. Esses detalhes são compilados em travelbooking.pdd. O desenvolvedor precisa agora parar o designer e iniciar o Tomcat com o mecanismo ActiveBPEL. Para apresentar o novo processo ao mecanismo, basta copiar o arquivo BPR para o diretório de destribui­ ção bpr abaixo da instalação do Tomcat. Depois de alguns segun­ dos o servlet container identifica o arquivo. É possível monitorar esse processo em http://localhost:8080/ BpelAdmin/deployment_log_detail.jsp, o log de distribuição da interface de administração. O log lista os processos instala­ dos em Deployed Process. Se um usuário iniciar um processo do tipo travelbooking através de uma requisição SOAP, a interface do administrador mostra seu estado

http://www.linuxmagazine.com.br


BPEL | PROGRAMAÇÃO

e o conteúdo variável em http:// localhost:8080/BpelAdmin/active_processes.jsp. O processo de visuali­

zação no front end web é similar ao display do designer.

Boas conexões

Qualquer cliente SOAP pode fazer uma requisição SOAP; o SoapUI é uma boa escolha para testes rápidos [6]. A definição WSDL para travelbooking() pode então ser carregada diretamente com o mecanismo em execução: http://localhost:8080/activebpel/services/TravelbookingPartn erLinkService?-wsdl. Se as definições

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

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

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 infra­estrutura de TI deve acompanhar esse ritmo e se manter 100% disponível para que a empresa possa se manter em atividade contínua e focada nas atividades relativas ao negócio. n

Tivoli e Linux

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

Escritórios remotos

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

Na Ubuntu User #20 Firewall no Ubuntu

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

Ubuntu 10.10

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

http://www.linuxmagazine.com.br

Linux Magazine Community Edition 70  

Linux Magazine Community Edition

Read more
Read more
Similar to
Popular now
Just for you