30

93511895 lm-87-ce

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 2: 93511895 lm-87-ce

3Linux Magazine #87 | Fevereiro de 2012

ED

ITO

RIA

L

Da série: “do que o mercado de trabalho precisa de verdade”, quis abordar nesta edição uma característica básica necessária a qualquer tipo de atividade profi ssional e que, segundo pesquisas, falta a uma grande parcela da força de trabalho atualmente, mormente àqueles profi ssionais provenientes da assim chamada “Geração Y” e que pode signifi car a diferença na ascensão do profi ssional dentro da estrutura das corporações, sendo comumente designada pelo jargão “vestir a camisa”: o compromisso com a empresa, suas metas e, igualmente importante, com a qualidade do seu trabalho.

Conta uma velha história que uma galinha um dia chegou para um porco e disse: “Estou com uma oportunidade de negócios ímpar nas mãos, uma oportunidade que pode nos tornar ricos, mas preciso de um sócio como você!” O porco, claro, fi cou interessado no “Ne-gócio da China” que a galinha havia descoberto. E ela continuou: “É um negócio em que servimos café da manhã de altíssima qualidade às pessoas: eu forneço os ovos, e você fornece o bacon...”

Apesar do tom jocoso da fábula acima, ela nos dá ensejo a clas-sifi car o tipo de compromisso que podemos assumir dentro do nos-so ambiente de trabalho, e que vai refl etir em nossa atitude diária dentro da empresa: queremos apenas contribuir “com ovos” ou es-tamos visceralmente comprometidos com os resultados do negócio como um todo, não importando a nossa posição? Tenha certeza de que, se nos enquadrarmos no último caso, nossos superiores ou par-ceiros de negócios vão sempre reconhecer o nosso valor – além de lembrarem-se de nós quando houver uma possibilidade de promoção ou quando uma oportunidade interessante aparecer.

Tão importante quanto o compromisso – e intestinalmente ligada a ele – é a qualidade. Afi nal, quem não se compromete com seu trabalho, via de regra não confere qualidade a ele. E aqui vale a máxima: não se contente com qualquer coisa menor do que a excelência e não abra mão de suas convicções! Dentro de qualquer empresa sempre haverá, feliz ou infelizmente, profi ssionais que poderemos classifi car em A, B ou C, no que tange ao nível de conhecimento de que dispõem e de produtivi-dade que podem alcançar. Nunca se contente com menos que o nível A! E esteja sempre antenado com o que há de mais atual acontecendo no seu segmento. Muitas vezes, isso irá lhe custar horas de sono, menos tempo junto à família e vai parecer loucura a muitos de seus amigos. Mas lembre-se de que os loucos que acham que são capazes de mudar o mundo, são aqueles que efetivamente o mudam, pois fazem a diferen-ça. A história e a ciência estão recheadas de exemplos desse tipo, que imprimiram a nossa sociedade um novo impulso para avançar. Einstein chegou a trabalhar mais de 90 horas por semana. E os desenvolvedores do primeiro Macintosh chegaram a imprimir camisetas onde se lia: “90 horas por semana e adorando!” Nenhum deles teria chegado aonde che-gou sem esse nível de comprometimento e qualidade.

E, na área de tecnologia, o Software Livre é uma das ferramentas mais poderosas para ajudá-lo a fazer a diferença! Aproveite. ■

Rafael Peregrino da SilvaDiretor de Redação

Faça a diferençaExpediente editorialDiretor Geral Rafael Peregrino da Silva [email protected]

Editores Flávia Jobstraibizer [email protected]

Kemel Zaidan [email protected]

Editora de Arte Larissa Lima Zanini [email protected]

Estagiário Felipe Brumatti Sentelhas [email protected]

ColaboradoresAlexandre Borges, Alexandre Santos, Arne Roßmann, Augusto Campos, Charly Kühnast, Chris Binnie, Christine König, Dmitri Popov, Florian Effenberger, Jens-Christoph Brendel, Jon ‘maddog’ Hall, Klaus Knopper, Kurt Seifried, Marcel Hilzinger, Markus Feilner, Peter Vescuso, René Hesse, Thomas Leichtenstern, Udo Seidel, Zack Brown.

Tradução Elias Praciano, Gabriela Edel Mei, Rodrigo

Garcia, Sebastião Luiz da Silva Guerra

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) [email protected] Tel.: +55 (0)11 3675-2600

Penny Wilby (Reino Unido e Irlanda) [email protected]

Amy Phalen (América do Norte) [email protected]

Hubert Wiest (Outros países) [email protected]

Diretor de operações Claudio Bazzoli [email protected]

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. Assu-me-se que qualquer correspondência recebida, tal como car-tas, emails, faxes, fotografi as, artigos e desenhos, sejam for-necidos para publicação ou licenciamento a terceiros de forma mundial não-exclusiva pela Linux New Media do Brasil, a me-nos 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 - 2012: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/atendimentoSão Paulo: +55 (0)11 3675-2600 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280

ISSN 1806-9428 Impresso no Brasil

Page 3: 93511895 lm-87-ce

4 www.linuxmagazine.com.br

CAPA

Ao resgate, homens! 33

Que atire o primeiro pendrive, aquele que nunca perdeu

um arquivo precioso, seja por acidente ou descuido.

Ufffa! 34

O TestDisk, e seu primo PhotoRec, irão ajudá-lo a

recuperar os dados que você pensou ter perdido.

Visualize sua rede 40

A grande quantidade de ferramentas de monitoramento de redes

para SNMP torna mais fácil a vida do administrador que precisa

lidar com uma abundância de dados em constante modifi cação.

Ferramentas perigosas de teste 45

A ferramenta de monitoramento OpenNMS é uma arma útil e que pode

fornecer uma gama de informações importantes para os administradores.

ÍND

ICE

Page 4: 93511895 lm-87-ce

5

TUTORIALUma nuvem para chamar de sua 55

Confi gure uma nuvem pessoal no seu servidor com o ownCloud.

Entrega silenciosa 60

O Offl ineimap sincroniza suas contas IMAP em uma máquina local, oferecendo backup completo e uma série de funções offl ine.

ANÁLISEÔnibus corporativo 64

Um serviço de Bus corporativo é uma via expressa centralizada para dados em ambientes com arquitetura orientada a servidor. Um bom ESB lida com orquestração, roteamento de mensagens e análise de eventos.

Duelo de bancos de dados 72

A competição entre MySQL e PostgreSQL é tão antiga quanto os próprios bancos de dados e sem um vencedor claro. Apesar disso, é sempre emocionante e elucidante assistir à batalha dos dois.

SERVIÇOSEditorial 04

Emails 06

Linux.local 78

Preview 82

Linux Magazine #87 | Fevereiro de 2012

| ÍNDICELinux Magazine 87

COLUNASZack Brown 07

Klaus Knopper 08

Charly Kühnast 10

Kurt Seifried 11

Alexandre Borges 14

Augusto Campos 16

NOTÍCIASGeral 17

➧ PostgreSQL na nuvem da Amazon

➧ Um tablet com a interface Plasma do KDE

CORPORATENotícias 20

➧ Greg Kroah-Hartman deixa a SUSE para trabalhar na Linux Foundation

➧ Lenovo ameaça liderança da HP

➧ Android aumenta sua presença nos tablets

➧ Dez anos de suporte da Red Hat

Entrevista com Nils Brauckmann 22

As chaves do sucesso para o Código Aberto 26

Coluna: Jon “maddog” Hall 30

Coluna: Alexandre Santos 32

ANDROIDSem amarras 50

Via de regra, os fabricantes de smartphones equipados com Android defi nem o que os usuários podem ou não podem fazer com o telefone. Com alguns truques, entretanto, é possível obter o controle total do seu aparelho.

SEGURANÇAEntrevista: Jim Reavis 48

Sentamos-nos com Jim Reavis, co-fundador e diretor executivo da Cloud Security Alliance, para falar sobre a função e a missão da CSA , agora e no futuro.

Page 5: 93511895 lm-87-ce

14

CO

LU

NA

www.linuxmagazine.com.br

Coluna do Alexandre Borges

Sistemas de criptografi a Nosso colunista apresenta aos leitores alguns dos algoritmos

de criptografi a mais conhecidos e outros nem tanto…

Em continuação ao assunto do mês anterior, é comum ouvirmos falar nos mais diversos mo-delos (alguns chamam de sistemas) de codifi -

cação. É claro que não é possível entrar em qualquer detalhe mais específi co nesta coluna, contudo vamos tentar comentar algo aqui.

Um sistema antigo e digno de nota é o modelo cha-mado “Null Cipher” (ou cifragem de encobrimento) onde, na verdade, não ocorre qualquer criptografi a, entretanto o leitor sabe quais linhas ou letras ler no tex-to e, com isto, recuperar a mensagem pretendida (por exemplo, no fi lme “Desconhecido” há algo nesse senti-do). Outros sistemas clássicos, já que temos hoje em dia algoritmos mais modernos como as cifragens de bloco e streams, assim como os modelos de chave pública e privada, são as cifras de substituição (que, como o ROT 13, são muito curiosas ), pois envolvem algum tipo de substituição de uma letra por outra baseando-se numa variável criptográfi ca ou temos as cifras de transposi-ção onde é realizado o deslocamento do alfabeto para a criação do mapa de substituições. Em geral, ambas são aplicadas em conjunto.

Por exemplo, poderíamos criar algo mais simples aqui tendo a primeira linha com as linhas do texto original que encontramos e a segunda com a troca a ser feita:

A B C D E F G H I J K L . . . E F G H I J K L M N O P . . .

Neste caso, a palavra “GEEK” transformaria-se em “KIIO”. Acho que o leitor já entendeu que deslocamos na linha de baixo o alfabeto em cinco posições. Aliás, o romano Júlio Cesar (13/07/100 a.C – 15/03/40 a.C) já usava tal mecanismo, mas com o deslocamento de apenas 3 letras! Outros modelos de transposição

podem ser vistos em páginas da Wikipédia sobre essa forma de criptografi a [1] [2] . O problema destas ci-fras é que elas são suscetíveis à análise de frequência, ou seja, é possível inferir qual letra da codifi cação resultante corresponde a qual letra verdadeira do texto original pela taxa de ocorrências (o leitor pode aprender mais em uma página do Wikibooks sobre o tema [3] ), algo que não ocorre com One-Time Pad (inventado por Gilbert Vernan) porque, nesse caso, a chave pode ser tão longa quanto se queira (em geral, do tamanho do texto a ser codifi cado) e nunca se re-pete. Para que este esquema seja efi ciente, ambas as partes trocam previamente uma sequência de letras, atribui-se a cada letra sua série numérica natural (A=0, B=1, C=2,...) e usa-se ainda a função matemá-tica “mod” pois existem apenas 26 letras (lembre-se que 30 mod 26 = 4) . Observe uma aplicação simples do que acabamos de expor:

Sequência aleatória trocada entre as partes:

eoralqjdnagflrappmkdlahwakxnazcqerdloqpjd...

Sequência “numérica” das letras:

A B C D E F G H I . . . X Y Z 0 1 2 3 4 5 6 7 8 . . . 2 3 2 4 2 5

Texto a ser codifi cado: L I N U X

Equivalência numérica: 11 8 13 20 23

Equivalência aleatória: E O R A L

Equivalência numérica: 4 14 17 0 11

Valor resultante cifrado: 15 22 30 20 34

Após aplicação do módulo: 15 22 4 20 8

Texto codifi cado fi nal: P W E U I

Tabela 1 Codifi cação da palavra Linux.

Page 6: 93511895 lm-87-ce

15Linux Magazine #87 | Fevereiro de 2012

Feito isto, podemos levar adiante nosso exemplo (tabela 1).

Então, usando o método de One-Time Pad, a palavra “LINUX” se transformou em “PWEUI”. Você pode encontrar mais deta-lhes sobre o método em sua página da Wikipédia [4] .

Por fi m, outra maneira interes-sante de não permitir que ninguém possa ler a mensagem trocada entre duas partes é fazer uso da Estega-nografi a (que o leitor já conhece bem) o qual realiza a ocultação (codifi cando ou não) das mensa-gens em outros meios como fotos ou arquivos mp3. Existem boas ferramentas para Linux como o SteGui, Steghide e OutGuess.

No mês que vem eu irei encerrar esta sequência justamente comentan-do sobre as principais características dos principais algoritmos que esta-vam envolvidos na primeira coluna desta série sobre criptografi a e outros detalhes. Até mais. ■

Alexandre Borges ([email protected]) é ins-

trutor independente e ministra regularmente treina-

mentos de tecnologia Oracle (áreas de Solaris, LDAP,

Cluster, Containers/OracleVM, MySQL, e Hardware),

Symantec (Netbackup, Veritas Cluster,Backup Exec,

Storage Foundation e SEP) e EC-Council (CEH e

CHFI), além de estar sempre envolvido com assun-

tos relacionados ao kernel Linux.

Mais informações

[1] Transposition cipher: http://en.wikipedia.org/wiki/Transposition_cipher

[2] Vigenère cipher: http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher

[3] Cryptography/Frequency

analysis: http://en.wikibooks.org/wiki/Cryptography/Frequency_analysis

[4] One-time pad: http://en.wikipedia.org/wiki/One-time_pad

Page 7: 93511895 lm-87-ce

16

CO

LU

NA

www.linuxmagazine.com.br

Coluna do Augusto

Em 2012, aprenda a programar Seja para desenvolver e modifi car algum programa ou simplesmente

para entender o que se passa no seu computador, nunca o

conhecimento em programação foi tão importante como agora.

Leitores da Linux Magazine já têm fartas opor-tunidades para aprender alguma linguagem de programação: por aqui já foram publicadas séries

memoráveis de artigos de expoentes do desenvolvimento, transmitindo seu conhecimento e técnicas em boa parte das tecnologias atuais populares em ambientes Linux.

Mas aprender uma linguagem de programação não é a mesma coisa que aprender a programar. Quem já aprendeu a programar geralmente não encontra gran-des difi culdades em fazer a transição para uma nova linguagem ou ambiente (e este costuma ser o foco dos artigos a respeito), mas aprender os fundamentos da programação em si usualmente exige mais esforço e algum apoio interativo, de preferência vindo de um professor, tutor.

Embora as sequências, repetições, decisões, entradas e saídas sejam técnicas simples de descrever, aprender a usá-las de forma estruturada é um desafi o para muitos, que nem sempre encontram os recursos e a motivação necessários para superá-los.

Se esse for o seu caso, ainda estamos sufi cientemen-te no início do ano para que eu possa aproveitar este espaço para lhe transmitir um convite: que tal incluir em seus planos para 2012 aprender a programar, mas de uma maneira diferente?

Esta proposta circulou bastante na virada do ano, vinda do site Code Year [1] , que vai oferecer lições interativas semanais de programação, e promete que os interessados vão programar aplicativos e sites antes mesmo que se deem conta.

Como muita gente que deu seus primeiros passos na programação usando BASIC nos computadores pessoais de 8 bits nos anos 1980, é perfeitamente possível apren-der os conceitos básicos usando um ambiente interativo, e é essencialmente isso que o Code Year oferece como complemento as suas lições.

A proposta é interessante, e centenas de milhares de pessoas se inscreveram nos primeiros dias do ano. Elas já passaram pelas lições iniciais e, provavelmente, se divertiram interagindo em seu próprio navegador para ter um primeiro contato com a forma como operações aritméticas são defi nidas e resolvidas, como obter con-fi rmações do usuário e outros elementos essenciais (como variáveis numéricas, strings, vetores, seleções, repetições etc.) que, aos poucos, vão construindo um primeiro programa.

É só na altura da segunda lição que o aluno chega a ser informado que a parte introdutória do curso usa a linguagem Javascript e, para ser franco, a forma como o curso é construído me surpreendeu pela linguagem que se adequa à fi nalidade de experimentar interativa-mente os rudimentos da lógica de programação.

Aprender a programar pode ser útil para quem quer estar apto a desenvolver ou modifi car (no espírito do código aberto, é claro) aplicativos, utilitários e comple-mentos que lhe interessam, mas também, pode servir para, simplesmente, entender melhor o que acontece nos bastidores do seu computador, como usuário ou gestor.

E a quem já sabe programar, apresento duas exten-sões do mesmo convite: que tal aprender uma nova linguagem ou ambiente em 2012 e aproveitar para ensinar os primeiros passos a algum novo interessado (talvez até com ajuda do Code Year)? Eu já coloquei em prática os dois enfoques, e estou gostando. Expe-rimente você também! ■

Augusto César Campos é administrador de TI e, desde 1996, man-

tém o site BR-linux.org, que cobre a cena do Software Livre no Brasil

e no mundo.

Mais informações [1] Code Year: http://codeyear.com/

Page 8: 93511895 lm-87-ce

Em 2012chega ao Brasil

a maior revista alemãde informática e tecnologia

Em março nas bancas!

Teste | iPhone 4S

12

iPhone 4S

Testamos o novo hardware e o Siri na prática

Por fora, o 4S é praticamente igual ao seu antecessor. Mas suas entranhas foram

muito melhoradas: novo processador Dual-Core, gráficos mais rápidos, melhor câ-

mera, iOS 5 e o novo software de reconhecimento de fala Siri.

por Stephan Ehrmann

Teste | iPhone 4S

13

O iPhone 4S foi o primeiro a sair

das fábricas da Apple com o

iOS 5, mas os donos de modelos

mais antigos a partir do iPhone 3GS,

iPod touch de terceira geração ou do

iPad 1 também podem ser atualizados

gratuitamente. O novo sistema libera

as amarras com o iTunes e permite

que futuras atualizações sejam feitas

“pelo ar”, via Wi-Fi.

O novo sistema traz, de acordo

com a Apple, mais de 200 melhorias,

incluindo um novo sistema de noti-

ficações, um app Câmera renovado,

uma lista de lembretes (tarefas) e uma

banca virtual. Ele está agora integra-

do ao Twitter, substitui o antigo app

de SMS pelo iMessage e faz espelha-

mento com o AirPlay, permitindo que

se veja, em uma TV conectada a um

Apple TV, exatamente o que está na

tela do seu telefone. Entramos em de-

talhes sobre essas novidades em nossa

matéria especial sobre iOS 5. A outra

grande novidade do lado do software

é o iCloud, um serviço web para usuá-

rios de qualquer iGadget, Macs ou PCs,

para o qual também dedicamos maté-

rias completas nessa edição.

Tal e qual

Nem mesmo pelo texto em suas cos-

tas pode-se determinar a diferença

entre o iPhone 4S e se antecessor.

Apenas uma comparação minuciosa

pode revelar detalhes como o fato de

os botões de volume estarem alguns

milímetros mais para baixo, o que faz

com que algumas capinhas de pro-

teção não se encaixem mais perfeita-

mente. A diferença mesmo está nas

duas novas linhas pretas na carcaça

de alumínio, dos lados esquerdo e di-

reito superiores, dividindo a estrutura

em quatro partes, contra três do mo-

delo anterior. Isso foi necessário para

acomodar a construção de mais uma

antena, que corrige um defeito que

levou o iPhone 4 a um pequeno de-

sastre de relações públicas: ao segu-

rar o telefone de uma certa maneira,

tampando a antena, o sinal da rede

celular ia para o ralo. Com o iPhone

4S isso não acontece mais, graças à re-

dundância de antenas. Não importa

como se segure o aparelho, a recep-

ção permanece intacta.

A qualidade da recepção, porém,

parece não ter aumentado com a

De imediato reconhece-se o iPhone 4S (à esquerda)

apenas pela linha preta acima dos botões de volume.

Deap

O iPhone 4S está disponível nas cores preta e branca.

nova antena. Testamos o nível de si-

nal em várias situações diferentes e

ele permaneceu exatamente o mes-

mo no 4 e no 4S.

Pela primeira vez é possível fa-

zer downloads no iPhone 4S a 14,4

Mbit/s, o dobro do iPhone 4, mas a

velocidade de upload permanece

Teste | iPhone 4S

76

c’t especial 02/2012

Cinco vezes melhor

As novidades do iOS 5 e o iCloud

Segundo a Apple, mais de 200 novas funções estariam

presentes no iOS 5, nova atualização gratuita – e ansiosamete

aguardada – para o iPhone, o iPad e o iPod touch

por Leonhard Becker

Teste | iPhone 4S

77

c’t especial 02/2012

c’t especial 02/2012

Assim como acontece com o

Mac OS X, a Apple lança uma

versão atualizada do seu siste-

ma operacional móvel todos os anos

desde 2007, juntamente com um

novo modelo de iPhone. Esse ano,

porém, a empresa apresentou o sis-

tema completo aos desenvolvedores

três meses antes do lançamento.

Mas na quinta versão, a empresa

resolveu ir um passo além: além das

inúmeras melhorias e novas funcio-

nalidades, que vão desde a concep-

ção do novo sistema de notificações

até pequenos detalhes de interface, o

iOS 5 corta seu cordão umbilical com

o iTunes. A partir de agora não é mais

necessário um computador com

Mac OS X ou Windows para configu-

rar seu iGadget. Basta tirar da caixa e

usar. Até mesmo atualizações do sis-

tema, backups e envio de fotos para

o computador são feitos “pelo ar” – o

que era impossível com o iOS 4.

Cordão umbilical

Com o iOS 5 não é mais necessário

usar o iTunes para a ativação ou res-

tauração de um iPhone, iPad ou iPod

touch. Ao invés do irrecusável convite

para conectar o dispositivo ao iTunes,

você é recebido por um educado as-

sistente de configuração, que ajuda

a escolher o idioma, o país, ativar os

serviços de localização e a sua pri-

meira conexão sem fio. A ativação

requer uma conexão à internet. A

seguir, pode-se escolher uma confi-

guração completamente nova ou a

recuperação de dados a partir de um

backup, que pode estar no iTunes ou

no iCloud. Para isso é preciso digitar

seu Apple-ID.

Por último, o usuário é questiona-

do se estaria disposto a enviar “dados

de uso e diagnóstico anônimos“ au-

tomaticamente para a Apple. Segun-

da a empresa, esses dados anônimos

incluem, entre outras coisas, informa-

ções de hardware e especificações do

sistema, métricas de desempenho e

dados sobre o uso dos equipamen-

tos e de aplicativos. Essa opção pode

ser alterada a qualquer momento no

Ajustes, em Geral > Sobre > Diagnós-

tico e uso. Depois disso o seu iGadget

estará pronto para usar!

Parcialmente nublado

A troca de dados e conteúdo tam-

bém vêm gradualmente migrando da

conexão via USB com o iTunes para a

internet – caso se queira. Há anos já

é possível obter emails, contatos, ca-

lendários e notas através de contas

MobileMe, Exchange ou IMAP. Servi-

ços adicionais como o Buscar iPhone,

a possibilidade de apagar todos os

seus dados remotamente e a sincro-

nização dos favoritos do Safari fazem

parte, desde outubro deste ano, do

novo iCloud.

O iCloud consiste em uma conta

de email (com endereço @me.com)

e sincronização de contatos, calen-

dários, lembretes, favoritos e notas

entre todos os seus iGadgets e seus

Macs com OS X Lion, Windows Vista

ou 7. Emails, contatos e calendários

também são acessíveis via web. Os

calendários incluem também listas

de tarefas, acessíveis no novo app

Lembretes do iOS 5 e podem ser

compartilhados com outras pessoas

para uso em grupo.

No site do iCloud.com também

oferece o acesso ao Buscar meu iPho-

ne, assim como aos documentos do

Pages, Numers ou Keynote criados

no iOS e enviados automaticamen-

te para a nuvem. Pelo navegador é

possível duplicar, apagar ou baixar

qualquer documento disponível em

vários formatos. Um documento de

Keynote, por exemplo, pode ser bai-

xado em seu formato riginal, PDF ou

PowerPoint. Também é possível subir

arquivos compatíveis com esses pro-

gramas para o iCloud pelo navegador.

Os desenvolvedores podem, da mes-

ma maneira, integrar seus apps à nu-

vem, sincronizando documentos en-

tre todos os dispositivos do usuários

mas sem o acesso via web.

Outra parte bacana do serviço é o

Compartilhar Fotos. Se ativado pelo

usuário, o recurso faz com que todas

as fotos dos últimos 30 dias captura-

das pela câmera do seu iPhone ou

adicionadas à Sequência de Fotos

sejam enviados e armazenados nos

servidores da Apple. Os diposistivos

com iOS armazenam até 1000 fotos,

mas os Macs ou PCs não tem limite

algum. O recurso faz juz ao nome até

o momento, ou seja, nada de enviar

vídeos para o rolo de fotos.

Uma cópia de todas as fotos cap-

turadas com o iOS é enviada direta-

mente para a nuvem, mas apenas

com uma conexão Wi-Fi, assim como

para receber novas fotos. As fotos

adicionadas à Sequência de Fotos no

iPhoto também aparecem automá-

ticamente em todos os dispositivos

conectados a essa conta. O recurso

não vem ativado por padrão e deve

ser explicitamente autorizado pelo

usuário. As fotos aparecem em um

álbum especial, dentro do app Fotos.

O Apple TV 2 também recebeu uma

atualização para poder receber a Se-

quência de Fotos e mostrar todas as

suas fotografias direto na sua TV LED

de 60” automágicamente.

iTunes nas nuvens

A partir do iOS 4.3.3 os usuários já

podem baixar músicas, séries de TV,

livros e apps comprados na iTunes

Store em qualquer dispositivo autori-

zado pela conta respectiva.

O iTunes na nuvem vai além. Com

ele, você tem a opção de baixar auto-

máticamente qualquer compra feita

na iTunes Store para todos os seus

disositivos cadastrados com a mes-

ma conta, eliminando a necessidade

de sincronização. Há, porém, uma li-

mitação: ao ativar a opção de descar-

regamento automático de suas com-

pras no iOS, o Apple-ID fica ligado a

ele por no mínimo 90 dias. É possível

mudar o Apple-ID na loja da Apple a

qualquer momento para baixar con-

teúdo manualmente, mas o descar-

iCloud

112

c’t especial 02/2012

De volta para o futuroiCloud em equipamentos antigos

O novo serviço online da Apple traz novos pré-requisitos:

apenas os dispositivos equipados com iOS 5 ou Mac OS

X 10.7 podem brincar nas nuvens. O que a empresa não

deixa claro para o usuário é que algumas partes do iCloud

funcionam até mesmo com o iOS 3 ou com o Mac OS X 10.5.

por Markus Stöbe

O iCloud já está disponível gra-

tuitamente para quem quiser.

Usuários do MobileMe têm

então a oportunidade de escolher

entre continuar usando o serviço an-

tigo até a data de vencimento de sua

assinatura anual ou pular de vez para

dentro da Maria-Fumaça do iCloud.

A favor do MobileMe está o fato de

que ele funciona com praticamente

todos os equipamentos antigos da

Apple. Quem ainda não atualizou seus

iGadgets para o iOS 5 ou seus Macs

para o OS X Lion está de fora do iCloud,

segundo a Apple. Isso é um tanto irri-

tante para aqueles que, por exemplo,

possuem um Mac novo com o Lion

mas não podem ou não querem atua-

Com o auxílio do compartilhamento público de calendários pode-se acessar os compromissos do

iCloud até mesmo no iCal do OS X 10.5. Já mudanças em eventos existentes são tão impossíveis

quanto a criação de novos.

iCloud

113

c’t especial 02/2012

lizar seus iPhones para o iOS 5.Mas para uma parte do serviço existe uma entrada pelos fundos. A Apple utiliza para o e-mail, calendá-rios e contatos os padrões IMAP, Cal-DAV e CardDAV, respectivamente. O endereço de acesso aos servidores estão até mesmo em um documento de suporte oficial no site da empre-sa. Para receber e-mails o endereço é imap.mail.me.com e para enviar e--mails endereço é smtp.mail.me.com. O nome de usuário e a senha são os mesmos usados do seu Apple ID, in-clusive o que vier depois do @, já que é preciso um e-mail válido para poder se registrar no iCloud. Pode ser um endereço @me.com ou outro endere-ço de e-mail qualquer.Tanto no iOS 3 quanto no Mac OS X 10.5 podemos entrar esses dados manualmente em uma nova conta IMPA no Mail e usar nossa conta de e-mails normalmente. Até mesmo as notas são movidas para uma pasta própria – o que não é de se admirar, já que são apenas rascunhos marca-dos com uma etiqueta especial. A partir do iOS 4, as notas aparecem

corretamente no app Notas e, no OS X 10.6, como uma subpasta da seção Lembretes. Se você já estiver com esses últimos sistemas, é possível até mesmo editar o texto das notas, mas nos mais antigos apenas a leitura é permitida, sendo impossível criar no-vas notas ou editá-las.

Contatos e compromissosCom os endereços dos servidores para compromissos e contatos a Apple infelizmente não é assim tão generosa. Mas quem já criou uma conta no iCloud, seja uma nova ou uma migração do MobileMe, pode facilmente encontrar sozinho os en-dereços desses servidores. O ende-reço para o servidor de calendários encontra-se em ˜/Library/Calendars, em um arquivo .plist que fica dentro do diretório que começa com uma sequência bizarra de letras e números e termina com a extensão .caldav.O endereço para o servidor Card-DAV fica escondido ainda mais fun-do nas entranhas do sistema em ˜/Library/Application Suport/Address-Book/Sources. Também aqui é possí-vel achar um arquivo Configuration.plist dentro de uma pasta nomeada com uma sequência de letras e nú-meros.Ambos os arquivos podem ser aber-tos em editores de texto simples, como o TextWrangler (gratuito na App Sto-re). Procure pelo termo iCloud e Bum! Lá está o nosso endereço. No geral, o nome desses servidores deve ser algo como p04-caldav.icloud.com para os

A conta de e-mail do iCloud pode ser visualizada basicamente em qualquer cliente com suporte a

IMAP, como o Mail do OS X 10.5. Apenas as notas ficam separadas em uma pasta normal de mesmo

nome no servidor.

Ao assinar o URL apropriado de um servidor CalDAV no iCal, os dados do calendário são atualizados

pela internet mesmo sem o Lion.

A conta de e il do iCloud pod visualizada b i amente em qual cliente com s t

Ao assinar o URL propriado de u id

iCloud

100

c’t especial 02/2012

c’t especial 02/2012

Entre o céu e a TerraiCloud para todos os gostos

Outrora um problema apenas dos executivos, agora um velho conhecido

de todos os donos de um Mac, iPhone, iPad ou iPod touch: ter seus

e-mails, compromissos, endereços e notas em todos os seus dispositivos

pessoais atualizados instantaneamente. O novo serviço gratuito da Apple

promete isso e muito mais, mas também não deixa de ter suas manhas.

por Leonhard Becker e Ole Meiners

iCloud

101

c’t especial 02/2012

R ecentemente, na redação: “Minha

agenda está finalmente igualzinha

no PC casa, no meu iPhone e no

MacBook da editora. O iCloud é supim-

pa!” O time da c’t entrou em silêncio ab-

soluto. O que podemos dizer ao nosso

colega representante de vendas? Teria

ele tentado ironicamente dizer que

serviços de sincronização já eram um

truque velho e que o iCloud não era

nenhuma novidade de abalar o mun-

do? Afinal, o MobileMe e até mesmo o

antigo .Mac já permitiam e equiparação

de endereços, compromissos, favoritos

e muitas outras coisas. Mas não, ele fa-

lava sério. “Nunca achei que valesse a

pena pagar cem dólares por isso.” Aha!

O iCloud é então supimpa, apenas por-

que é gratuito em sua versão básica

com 5 GB de capacidade de armazena-

mento nas nuvens. Mas para os sincro-

nizadores mais experientes vão achar

diversas novidades no iCloud.Por dentro da nuvemO iCloud é basicamente um serviço

de e-mail IMAP com notificações de

envio via push e sincronização de e-

-mails, compromissos, agenda, notas,

favoritos e tarefas, esse último uma

novidade em relação ao MobileMe.

Por si só esse conjunto de recursos

não seriam lá essas coisas, já que Goo-

gle, Yahoo e tantos outros oferecem

mais ou menos a mesma coisa. Mas a

Apple mantém o iCloud livre de pro-

paganda, inclusive no acesso via web

no endereço www.icloud.com.

Entretanto, nem todo mundo

pode entrar para a festa. O registro

requer um Mac rodando o OS X 10.7.2

ou um dispositivo rodando o iOS 5.

Com a turma dos PCs a Apple é me-

nos exigente, suportando inclusive

o Windows Vista. Mas nós mostrare-

mos a você como usar os serviços do

iCloud em máquinas velhinhas ainda

nessa edição.O recurso De Volta ao Meu Mac,

que até aqui era sozinho considerado

por muitos como motivo para pagar

a assinatura anual do MobileMe, tam-

bém foi incorporado na versão gratui-

ta do iCloud. Ele permite o acesso se-

guro a arquivos e pastas que estão no

Mac da sua casa a partir do compu-

tador do escritório, sem a complica-

ção de se criar um túnel VPN ou usar

soluções com domínios dinâmicos. A

propósito, isso não funciona mais no

Snow Leopard.A Apple trouxe ao iCloud também

o recurso Buscar meu iPhone (ou iPad,

ou iPod touch). O serviço de localiza-

ção foi inclusive estendido aos Macs,

permitindo que computadores es-

quecidos ou roubados tenham maio-

res chances de serem encontrados.

Assim como no iOS, os donos dessas

máquinas podem enviar uma mensa-

gem, bloquear ou apagar completa-

mente seus dados à distância.

Um outro recurso baseado em

localização, desta vez para localizar

seres humanos, chega na forma do

app Amigos, disponibilizado gratuita-

mente na App Store. Além da locali-

zar o seu marido ou seus filhos – lo-

gicamente apenas a aprovação dos

mesmos – é possível obter acesso

temporário à localização de qualquer

membro do iCloud que concordar

com o acesso, algo muito útil de ser

usado quando um grupo de amigos

pretende se encontrar em um festi-

val de música em campo aberto, por

exemplo, sem a necessidade de se

telefonarem dezenas de vezes. Caso

o objetivo seja o oposto, basta usar o

controle Ocultar dos Seguidores.

Inovação importante é o novo

backup online de dispositivos com

iOS. Até então o responsável pelo

backup, que precisava ser feito na

máquina do usuário, conectado com

um cabo USB, era o iTunes. Apesar da

sincronização sem fio não ser um dos

serviços do iCloud, ela se encaixa per-

feitamente na estratégia da Apple de

libertar seus dispositivos móveis das

amarras com Macs e PCs. A transfe-

rência de fotos capturadas pela câ-

mera dos iGadgets fica a cargo do

Compartilhar Fotos. Para todos os ou-

tros tipos de arquivos deve-se usar o

Documentos na Nuvem.Todos a bordo!Ninguém está forçando você a mi-

grar para o iCloud. É possível conec-

tar seu novo iPhone 4S ou seu novo

Mac como da maneira tradicional,

via USB. O processo é até mais rápi-

do. Mas para usar o iCloud é preciso

O iCloud faz a sincronização de menos itens em comparação ao MobileMe, como as regras de

e-mail, por exemplo. Em compensação, agora pode-se configurar regras de e-mail na versão web,

em iCloud.com.

O iCloud faz a sincronização de m

iCloud

100

c’t e

c’t especial 02/2012

Dança da Chuva

Completando o iCloud com outros serviços

O iCloud chegou com muitas novidades para os usuários de

Mac ou iOS e custa menos (de graça!) que o MobileMe, seu

antecessor, mas alguns serviços foram removidos. Para quem já

está com saudades, alternativas não faltam no mercado.

Por Markus Stöbe

iCloud

101

c’t especial 02/2012

Q uem está começando do zero

com o iCloud não tem do que

reclamar. O pacote de entrada

é gratuito e serve para a maioria dos

casos, nem que seja apenas para testar

o serviço. Caso os 5 GB sejam insufi-

cientes para você depois de um tem-

po, pode-se aumentar o espaço dispo-

nível para até 55 GB e o preço continua

mais barato que o do MobileMe.

Para os que já usavam o serviço

antigo, é preciso aceitar algumas per-

das durante essa mudança. Os que

migraram de contas ainda ativas do

MobileMe podem manter, até mea-

dos de 2012, o seu iDisk, Galeria e

hospedagem de sites, paralelamente

ao iCloud. No entanto, o compartilha-

mento de contatos com outros mem-

bros do MobileMe, a sincronização de

chaves, senhas, preferências de apli-

cativos e itens do Dashboard serão

instantaneamente parte do passado.

Alternativamente pode-se criar

uma conta separada para usar o

iCloud até o vencimento de sua

conta anual do MobileMe e poste-

riormente migrar a sua conta antiga

ou mudar de vez para a nova. Como

não é possível mesclar duas contas,

é preciso ser cuidadoso com a esco-

lha da conta com a qual serão feitas

compras nas lojas de app e música da

Apple, caso contrário a despedida de

uma das contas será traumática.

Mas para muitos dos serviços ex-

cluídos existe substitutos à altura. Eles

não são da Apple e muitas vezes não

são gratuitos, mas por isso mesmo

alguns são até melhores que o Mo-

bileMe. Romper com o ecossistema

da empresa da maçã e contar com

outros fornecedores tem algumas

vantagens concretas. Se um dos ser-

vidores em Cupertino cair, por exem-

plo, têm-se ainda parte dos recursos

funcionando. Além disso, é possível

personalizar as ofertas de serviços

exatamente às suas necessidades.

Quem não precisa do iDisk pode

simplesmente esquecê-lo e contratar

uma empresa de hospedagem de si-

tes, podendo inclusive escolher onde

esse servidor estará. Se for no Brasil, o

acesso poderá ser até mais rápido.

Chaveiro para viagem

Uma das partes mais complicadas de

serem substituídas é a sincronização

de chaves, ou seja, das suas senhas

pessoais. O sistema da Apple é tão

profundamente integrado ao OS X

e ao iOS que ferramentas que traba-

lham de forma transparente raramen-

te conseguem ser tão confortáveis.

Elas até conseguem integrar-se aos

navegadores e armazenar as senhas

usadas na internet, mas as chaves

usadas no Finder não são suportadas

automaticamente, por exemplo.

O 1Password é um desses que con-

segue sincronizar sua base de dados

automaticamente. O programa pode

importar, se for preciso, o seu molho

de chaves e senhas do Acesso às Cha-

ves do OS X, para que você não preci-

se redigitar todos os seus registros em

sites acumulados ao longo dos anos.

Posteriormente é possível salvar a co-

leção em um arquivo local, transferí-lo

para outros dispositivos em uma rede

sem fio ou armazená-la na nuvem

com o Dropbox. A partir daqui, tudo

funciona no modo automático, inclu-

sive com apps disponíveis para iOS e

para Windows. Uma desvantagem é

que seus dados mais sigilosos estarão

sob guarda do serviço online norte-

-americano Dropbox, que no passado

já foi notícia mais de uma vez sobre

problemas com segurança. O 1Pass-

word para mac custa US 50 na App

Store e a versão para iOS sai por US 10.

O Keychain2Go custa apenas US

6 tanto na versão para OS X quanto

para iOS, mas ainda está em fase beta.

Este programa tem uma abordagem

um pouco diferente do 1Password:

ele roda em plano de fundo no Mac

O 1Password sincroniza as senhas coletadas diretamente entre os dispositivos conectados em uma

mesma rede sem fio ou pela internet, usando o Dropbox.

O Keychain2Go sincroniza seu banco de dados

com o programa Acesso às Chaves do Mac OS X e

com iGadgets.

O 1Password sincroniza as senhas coletadas diretamente entr os dispositivos conectados em uma

O Keychain2Go sincroniza seu banco de dado

Page 9: 93511895 lm-87-ce

33Linux Magazine #87 | Fevereiro de 2012

Resgate de dados

Ao resgate, homens! Que atire o primeiro pendrive, aquele que nunca perdeu um ar-

quivo precioso, seja por acidente ou descuido.

por Kemel Zaidan

Quem nunca perdeu um arquivo ou pasta importante, de certo não tem intimidadecom computadores há muito tempo. É quase

impossível não passar por alguma situação desse tipo um dia. Mas fi que tranquilo, se esse é o seu caso, certamente este momento haverá de che-gar para todos, porque como diz aquele outro ditado americano: "sh*t happens" .

Motivos para desastres não faltam: talvez você te-nha arrastado acidentalmente uma pasta para a lixeira ou quem sabe derramou café no seu HD externo; ou mais provável ainda, tenha formatado uma partição perdida em sua máquina para poder testar a última distribuição Linux do momento, sem se dar conta de que nela haviam arquivos importantes.

Independente de qualquer sentimento que possa advir dessa situação, muita coisa pode ser feita para re-cuperar os seus dados mesmo que você tenha trocado o sistema de arquivos da partição comprometida. Para não dizer adeus de vez à coleção de fotos da sua família – que você acumulou por anos – ou ainda às 15 tem-poradas completas do seu seriados favorito, é preciso estar preparado não apenas com as ferramentas certas, mas também com o conhecimento de como utilizá-las.

No campo do resgate de dados, o Linux se desta-ca, pois sua capacidade de interoperar com diversos outros sistemas operacionais e de arquivos faz dele a opção ideal para esse tipo de uso. Junte isso à pos-sibilidade de executar o sistema em modo Live-CD e você terá um kit de ferramentas básicas de recu-peração de formato simpleS e sempre acessível. Há

inclusive distribuições dedicadas a esse fi m, como o SystemRescueCD ou mesmo o bom e velho Knoppix.

Contudo, de nada adianta ter todas as ferramentas na mão se você não souber o que elas podem fazer por você. Duas das estrelas dessa edição são o PhotoRec e o Testdisk. Com eles você poderá encontrar arquivos perdidos na imensidão de seus discos, mesmo que esses já tenham sido formatados mais de uma vez.

Por isso, da próxima vez que algo do tipo aconte-cer, não deixe o desespero tomar conta da situação. Vá direto para a sua coleção de edições da Linux Magazine , lembre-se do número #87 e das páginas que vai ler agora. Boa leitura! ■

Matérias de capa

Ufffa! 34

Visualize sua rede 40

Ferramentas perigosas de teste 45

CA

PA

Page 10: 93511895 lm-87-ce

55

| TUTORIALNuvem pessoal com ownCloud

Linux Magazine #87 | Fevereiro de 2012

Construa o seu serviço pessoal na nuvem

Uma nuvem para chamar de sua Confi gure uma nuvem pessoal no

seu servidor com o ownCloud.

por Dmitri Popov

Mover seus dados e aplicati-vos para a nuvem parece ser uma ótima solução para

muitos problemas. Você pode acessar seus arquivos e documentos a partir de qualquer dispositivo conectado à Internet, sincronizar dados entre várias

máquinas, e permanecer produtivo enquanto está em movimento. Uma infi nidade de serviços baseados em nuvem de terceiros, fi cariam felizes em armazenar seus dados e oferecer--lhe acesso a seus aplicativos basea-dos na web por uma taxa mensal ou

anual, mas esta abordagem levanta um outro conjunto de questões de

Quadro 1: Experimente o OwnCloud Se você quiser experimentar o

ownCloud sem se comprometer

com uma instalação completa, há

várias opções à sua disposição. O

site do projeto mantém uma insta-

lação de demonstração do own-

Cloud, que você é livre para explo-

rar sem se registrar ou criar uma

conta. A última versão estável do

ownCloud também está dispo-

nível como um appliance virtu-

al baseado no openSUSE [3] , de

modo que você pode experimentar

o ownCloud usando um programa

de virtualização como o VirtualBox.

Finalmente, se você preferir testar

o ownCloud em sua rede sem ins-

talá-lo em uma máquina dedicada,

pode usar a solução XAMPP [4]

que vem com todas as peças ne-

cessárias (Apache, MySQL, PHP5

etc.) pré-confi guradas e prontas

para serem executadas. Figura 1 A ferramenta tasksel pode rapidamente transformar um desktop com

Ubuntu ou Debian em um servidor.

TU

TO

RIA

L

Page 11: 93511895 lm-87-ce

56 www.linuxmagazine.com.br

TUTORIAL | Nuvem pessoal com ownCloud

segurança e privacidade. Além dis-so, serviços de terceiros vêm e vão. Mesmo os serviços mais populares e bem estabelecidos na nuvem e que parecem grande demais para falhar poderiam desaparecer com o tempo. Em teoria, você deve ser capaz de re-cuperar seus dados, mas as coisas nem sempre funcionam na prática. Mes-mo que você consiga recuperar seus documentos e arquivos, a migração para outro serviço baseado na nuvem pode ser um tanto demorada e cara.

Em vez de confi ar nos serviços da nuvem de terceiros, você pode criar seu próprio servidor na nuvem. Desta forma, você não tem que pagar pelo privilégio de acessar seus próprios da-dos e pode parar de se preocupar com questões de privacidade em potencial. Claro que você tem que considerar algumas coisas antes de ir nesta rota.

Para começar, você precisa de uma máquina dedicada ou servidor virtual, bem como uma Internet confi ável e relativamente rápida. Ter o seu servidor próprio na nuvem também signifi ca que você tem que mantê-lo funcionando sem problemas. Em suma, você deve considerar todas as vantagens e desvan-tagens de hospedar seu próprio servidor na nuvem antes de fazer a sua jogada.

Implementação do ownCloud Entre as várias soluções possíveis para confi gurar um servidor pessoal na nu-vem, o ownCloud [1] é o mais pro-missor e, provavelmente, mais fácil de implementar. Mas antes de instalar o ownCloud, você precisa fazer algum trabalho preparatório. Para começar, certifi que-se se a máquina que irá

funcionar como um servidor tem os componentes necessários, incluindo o servidor web Apache, PHP5, e o servidor de banco de dados MySQL. Um grande número de fontes na web pode ajudá-lo a instalar e confi gurar esta pilha de coisas. A maneira mais fácil de transformar uma máquina em um servidor é instalar a versão servi-dor do Ubuntu. Alternativamente, você pode transformar um Ubuntu ou sistema desktop regular baseado em Debian em um servidor usando dois comandos simples. Para instalar o pacote tasksel , digite:

# sudo apt-get install tasksel

Em seguida, execute o comando sudo tasksel no terminal, selecione o pacote LAMP Server , e pressione OK ( fi gura 1 ).

Além do MySQL, o ownCloud também pode usar o SQLite como seu banco de dados, que é uma boa opção se você quiser uma instalação mais leve e compacta do ownCloud. No Ubuntu e sistemas baseados em Debian, instalar o SQLite é uma questão de executá-lo

# apt-get install sqlite php5-sqlite

como root. Uma vez que você tiver feito isso, tem que habilitar o suporte ao SQLite no Apache. Para fazer isso, abra o arquivo php.ini para edição com o nano, por exemplo:

# nano /etc/php5/apache2/php.ini

como root. Em seguida, adicione as seguintes linhas ao arquivo de texto:

extension=pdo.soextension=pdo_sqlite.soextension=sqlite.so

Enquanto você está aqui, pode querer aumentar o limite padrão do tamanho de upload para arquivo. Para fazer isso, localize as seguintes linhas e especifi que os valores desejados:

upload_max_filesize = 2Mpost_max_size= 2M

Figura 2 Instalar o ownCloud é um procedimento de apenas uma etapa.

Figura 3 O ownCloud pode lidar com vários usuários, e você pode organizá-

los em grupos.

Page 12: 93511895 lm-87-ce

57

| TUTORIALNuvem pessoal com ownCloud

Linux Magazine #87 | Fevereiro de 2012

Para salvar as alterações e reiniciar o servidor Apache, execute

# /etc/init.d/apache2 restart

como root. Por fi m, instale um pu-nhado de pacotes opcionais:

# apt-get install mp3info curl libcurl3 libcurl3-dev php5-curl zip

Com todas as peças no lugar, você está pronto para instalar o ownCloud. O site do projeto oferece versões es-táveis e de desenvolvimento. Pegue a versão que você deseja, descom-pacte o arquivo baixado, renomeie o diretório resultante para owncloud , e mova-o para a raiz de documentos do seu servidor. Conecte ao servidor via SSH e faça o diretório owncloud acessível ao Apache:

chown -R www-data:www-data owncloud/

Note que o usuário do Apache e do grupo pode ser diferente em sua distribuição Linux. Finalmente, se você planeja usar o ownCloud com o MySQL, crie um banco de dados

usando a sua ferramenta de gestão preferencial como o phpMyAdmin.

Aponte seu navegador para http://127.0.0.1/owncloud (substitua 127.0.0.1 com o endereço IP real ou nome de domínio do seu servidor) e crie uma conta administrativa. O instalador do ownCloud detec-ta automaticamente o servidor de

banco de dados disponível, e você tem que escolher o que deseja usar com o ownCloud ( figura 2 ). Se você optar por MySQL, precisa entrar com os dados de informação de co-nexão, em seguida clique no botão Finish setup para fi nalizar a insta-lação. Uma vez que o ownCloud está instalado e funcionando, você pode entrar com as credenciais es-pecifi cadas anteriormente.

Usando o ownCloud Quando você loga, o ownCloud au-tomaticamente te leva a seção Files , e você pode começar a adicionar arquivos e documentos imediata-mente. No entanto, antes de fazer isso, é uma boa ideia fazer algumas confi gurações básicas. Se você pla-neja compartilhar sua instalação ownCloud com outros usuários, deve criar contas para eles. Para fazer isso, clique no ícone Settings , no canto inferior esquerdo da janela princi-pal do ownCloud, selecione Users e adicione contas de usuários ( fi gura 3 ). Para cada conta de usuário, você pode especifi car a quota de espaço em disco para limitar a quantidade de dados que cada usuário pode car-regar e armazenar. E, para manter

Figura 4 O ownCloud vem com um punhado de aplicativos, incluindo

gerenciamento de sites favoritos.

Figura 5 A seção Pessoal contém a URL WebDAV da sua instalação do

ownCloud.

Page 13: 93511895 lm-87-ce

58 www.linuxmagazine.com.br

TUTORIAL | Nuvem pessoal com ownCloud

separados vários usuários, você pode organizá-los em grupos.

O ownCloud vem com vários aplicativos simples, que você pode desativar e ativar na seção de Apps . Atualmente, a seleção é bastante limitada, mas alguns aplicativos es-senciais e, ainda que básicos, estão disponíveis, incluindo calendário, contatos, mídia e favoritos ( fi gura 4 ).

Na seção de Apps , você também vai encontrar ferramentas mais avan-çadas, tais como o gerenciador do LDAP para autenticação de usuá-rios através de um servidor LDAP e OpenID, que permite aos usuários fazer login no ownCloud através de um provedor de OpenID. Final-mente, na página Personal da seção Settings , você pode confi gurar um idioma e o fuso horário preferido e alterar sua senha. A página também contém URLs para diferentes servi-ços prestados pelo ownCloud. Quais serviços estarão disponíveis depende de quais aplicativos você ativou. No mínimo, você deve observar a URL WebDAV: você precisará dela para acessar o armazenamento do own-Cloud remotamente ( fi gura 5 ).

Embora você possa usar os apli-cativos fornecidos para gerenciar seus contatos e compromissos, ouvir música, e manter abas em seus fa-voritos, o ownCloud é voltado para armazenamento de arquivos e docu-mentos e para torná-los acessíveis a partir de clientes remotos. A seção de Files permite fazer upload de ar-quivos e documentos e agrupá-los em pastas. Se você tiver o pacote

zip instalado no seu servidor, pode fazer upload de vários arquivos de uma só vez.

O ownCloud não suporta a fun-cionalidade de edição de documen-to, no entanto, pode exibir arqui-vos nos formatos mais populares, incluindo JPG e PNG e arquivos de texto puro. O ownCloud tam-bém inclui um marcador de sinta-xe; então, quando você visualizar scripts e arquivos de programas, o sistema convenientemente colore o código ( fi gura 6 ). O ícone Share ao lado de cada arquivo armazena-do no ownCloud permite a você

compartilhar um arquivo ou do-cumento específi co rapidamente com usuários individuais ou grupos ( fi gura 7 ). Você também pode tornar arquivos públicos, assim qualquer um pode baixá-los usando URLs públicas geradas pelo ownCloud.

Como mencionei anteriormente, o ownCloud pode ser acessado a partir de uma máquina remota usando o protocolo WebDAV. No KDE, você pode acessar rapidamente os arquivos armazenados no ownCloud digitando a URL WebDAV no gerenciador de arquivos Dolphin (é preciso substituir o prefi xo http:// por webdav:// ). Em

Figura 6 O ownCloud possui uma marcação de sintaxe embutida.

Figura 7 Você pode facilmente compartilhar arquivos com usuários individuais ou grupos.

Page 14: 93511895 lm-87-ce

59

| TUTORIALNuvem pessoal com ownCloud

Linux Magazine #87 | Fevereiro de 2012

vez de digitar a URL, cada vez que você precisar acessar seus arquivos, pode-se criar um atalho de rede no Dolphin. Para fazer isso, clique na entrada Network no painel Places do Dolphin, em seguida, clique no ícone de Add Network Folder . Dê um nome descritivo ao novo atalho no campo Name e digite seu nome de usuário do ownCloud no campo User . Em seguida, especifi que o endereço IP

ou nome de domínio (sem o prefi xo http:// ) do seu servidor ownCloud e o caminho WebDAV nos campos apropriados ( fi gura 8 ). Para terminar, basta pressionar o botão Save & Con-nect e digitar sua senha.

As coisas são ainda mais fáceis para os usuários do gerenciador de arqui-vos Nautilus. Basta digitar o URL WebDAV na barra de Localização (você pode chamá-la com o atalho de teclado [ Ctrl ]+[ L ]), substituindo o prefi xo http:// com dav:// . Isso abre o armazenamento do ownCloud e monta, automaticamente, a pasta de rede na área de trabalho.

Claro que você não está limitado ao ambiente de trabalho Linux, e pode acessar seus arquivos de qualquer plataforma e aplicativo que suportar o protocolo WebDAV. Por exemplo, se você deseja se conectar ao own-Cloud de seu dispositivo Android e recuperar documentos e arquivos, pode usar um aplicativo WebDAV como o WebDAV Navigator [2] , que permite navegar e baixar os arquivos armazenados no ownCloud, criar pastas e fazer upload de arquivos a partir do seu dispositivo Android ( fi gura 9 ). É possível até mesmo ti-rar fotos com a câmera embutida e jogá-las diretamente para o own-

Cloud. Infelizmente, o WebDAV Navigator não é gratuito, mas você pode tentar uma versão Lite do apli-cativo antes de comprá-lo.

Conclusão O ownCloud está longe de ser uma solução completa e madura. Mas, mesmo na sua forma atual, o own-Cloud pode ser uma solução interes-sante para a implementação de um servidor pessoal na nuvem, especial-mente se você estiver interessado em hospedagem e compartilhamento de arquivos e documentos. ■

Mais informações

[1] ownCloud: http://owncloud.org/

[2] Aplicativo WebDAV Navigator

para Android: https://market.android.com/details?id=com.schimera.webdavnav

[3] ownCloud na caixa: http://susegallery.com/a/TadMax/owncloud -in-a-box

[4] XAMPP: http://www.apachefriends.org/en/index.html

O autor Dmitri Popov é formado em letras

(idioma russo) e lingüística compu-

tacional; há vários anos trabalha

como tradutor técnico e colabo-

rador free-lancer. Já publicou mais

de 500 artigos sobre software de

produtividade, computação móvel,

aplicativos web e outros tópicos

relacionados à informática. Seus

artigos já apareceram em sites e

revistas da Dinamarca, Inglaterra,

EUA, Alemanha, Rússia e, agora,

do Brasil.

Gostou do artigo?Queremos ouvir sua opinião.

Fale conosco em

[email protected]

Este artigo no nosso site:

http://lnm.com.br/article/6379

so sit

artic

a op

com.b

379

go?ão.

Figura 8 Adicionar um atalho de rede no Dolphin .

Figura 9 Usando o aplicativo

WebDAV Navigator, você

pode acessar o ownCloud

de um dispositivo Android.

Page 15: 93511895 lm-87-ce

64 www.linuxmagazine.com.br

ANÁLISE | Ambiente com arquitetura orientada a serviço

Ambiente com arquitetura orientada a serviço

Ônibus corporativoÔnibus corporativo Um serviço de Bus corporativo é uma via expressa centralizada para dados em ambientes com arquitetura

orientada a servidor. Um bom ESB lida com orquestração, roteamento de mensagens e análise de eventos.

por Markus Feilner, Arne Rossmann e Christine König

Se seu negócio requer o tipo de confi guração no qual múltiplos sistemas se comunicam com

múltiplos serviços, sua rede encara o perigo de se transformar em uma arquitetura espaguete ( fi gura 1 ), onde cada serviço se comunica com outro por meio de uma série de interfaces não similares.

Ao chegar a esse estágio, faz sentido pensar na introdução de uma arquite-tura orientada a serviços (SOA) [1] e na integração de um serviço de Bus corporativo (ESB, do inglês Enterprise Service Bus ) [2] . As técnicas SOA ofe-recem um modelo para implementar um processo complexo de negócios por meio de um conjunto de softwa-res que interagem uns com os outros, trocando informações. Aplicativos de usuários e do fornecedor trocam dados em forma de mensagens SOAP. Essa arquitetura permite que uma empresa adicione e integre novos componentes da arquitetura de software de forma fácil com mudanças mínimas nos componentes existentes. O concei-to SOA também oferece um padrão de desenvolvimento que garante a interoperabilidade com serviços em conformidade com a SOA.

A tecnologia SOA é muito usada para a integração de serviços diversos usados em cenários corporativos. Um cenário típico pode ser uma solução na qual informações de clientes, pro-dutos, pedidos e entregas estão todas integradas e acessíveis por meio de um ambiente comum de aplicativos.

O termo “serviço de bus corpo-rativo” refere-se normalmente ao componente de software que passa e traduz mensagens entre vários serviços em um ambiente SOA. O ESB forma um componente essencial que geralmente é conhe-cido por um nome mais genérico, o middleware corporativo .

Os sistemas ESB sofi sticados de hoje não somente passam mensagens, mas também criam registros de even-tos de mensagens e, em alguns casos, oferecem recursos de tradução para permitir que serviços com diferentes formatos de mensagens realizem inter-conexões de forma transparente. Um ESB pode atuar como uma instância central ( fi gura 2 ) e remove a neces-sidade de interfaces independentes múltiplas entre os serviços.

Mais e mais companhias estão cien-tes da relevância de integrar serviços

distribuídos em aplicativos corpora-tivos heterogêneos, o que signifi ca que o ESB está em alta. Produtos proprietários, como o WebSphere [3] , da IBM, BizTalk [4] da Microsoft, Integration Adapters [5] da Oracle e JBoss [6] da Red Hat competem no mercado com produtos gratuitos como Mule ESB [7] , Apache ServiceMix [8] e Talend ESB [9] (antigamente conhecido como Sopera [10] ).

O Lisog, que agora é parte da Open Source Business Alliance , deu ao ESB um papel importante em sua solução de nuvem [11] ; no ní-vel do produto, Sopera e Mule são alternativas gratuitas e compatíveis.

Implementar um ESB pode ser caro e é uma decisão com consequ-ências de amplo alcance. Mesmo implementações pequenas requerem investimentos de, pelo menos, cinco dígitos, sendo os gastos alocados tan-to na programação quanto em um serviço abrangente de consultoria.

Todos os fornecedores de ESB defendem que o investimento vale a pena porque torna os sistemas mais fáceis de manter e expandir. No entanto, um gerente de TI ou administrador precisa estar ciente

AN

ÁLIS

E

Page 16: 93511895 lm-87-ce

65

| ANÁLISEAmbiente com arquitetura orientada a serviço

Linux Magazine #87 | Fevereiro de 2012

de que a escolha do ESB signifi ca estar comprometido com um pro-duto a longo prazo. A decisão por um fornecedor é difícil de reverter e a mudança futura seria muito cara.

Consultores concordam em pelo menos uma coisa: é impossível dar uma recomendação genérica para o produto ESB ideal. Cenários indivi-duais, recursos dos serviços e requi-sitos do ambiente afetam a escolha.

A tabela 1 mostra alguns dos re-cursos associados com três dos mais populares sistemas ESB de código aberto (Mule ESB, Apache Servi-ceMix e Talend ESB). Neste artigo, avaliamos de perto as três alternativas mais importantes.

Mule ESB O ESB da MuleSoft é o mais popu-lar entre os aplicativos do gênero em código aberto, com mais de 1,5 mi-lhão de downloads e 2,5 mil usuários empresariais. O software é escrito em Java e componentes de sistemas existentes como JMS, serviços web e HTTP podem ser integrados de for-ma bem simples. Ao mesmo tempo, a MuleSoft gosta de destacar o alto nível de escalonabilidade do Mule ESB, que daria aos usuários a pos-sibilidade de combinar um número maior de aplicativos.

O Mule ESB, que é adequado tanto para cenários com SOA quan-to com aplicativos embarcados em plataformas centralizadas, usa seu próprio dialeto XML para fi ns de confi guração. O exemplo exibido na listagem 1 mostra a confi guração para um aplicativo simples no Mule ESB. O aplicativo recebe um nome e uma URL e, então, exibe um resultado.

O código primeiramente confi gura um namespace para os componentes requisitados. Após um comentário curto em description ( linha 12 ), o aplicativo inicia o fl uxo. O Mule indica uma sequência na qual os módulos, como os componentes, são implementados neste fl uxo. O ESB

aceita a entrada que chega através de uma URL, como defi nido pela tag inbound-endpoint ( linha 19 ).

A entrada de dados é fornecida por meio de um serviço web JAX-WS (API do Java para serviços web XML). O Mule passa essa entrada por um componente echo ( org.mule.example.echo.Echo ), conforme pode ser visto na listagem 2 e o componente simples-mente dá como saída o nome que foi inserido. Já o Mule Studio permite a visualização do fl uxo ( fi gura 3 ).

Os usuários de uma versão comer-cial podem acessar ferramentas adi-cionais de integração, como as Native WebSphere MQ e Premium JBDC. Além disso, o console Mule Manage-ment permite o controle e gerencia-

mento de desempenho. Clusterização e implantação são compatíveis na versão 3.2. Os usuários normalmente implan-tam seu próprio analisador do fl uxo de serviços ( Service Flow Analyzer ) para verifi car confl itos. O usuário pode, ainda, requisitar suporte adicional, assim como mecanismos adicionais de segurança, como SAML e contro-les de acesso baseados em recursos de usuários.

Apache ServiceMix O Apache ServiceMix é uma so-lução ESB já utilizada em muitos produtos e organizações de TI. O ServiceMix é baseado na especifi ca-ção Java Business Integration (JBI) [12] , que defi ne um padrão de ar-

Listagem 1: Confi guração do Mule 01 <?xml version="1.0" encoding="UTF-8"?>02 <mule xmlns=" http://www.mulesoft.org/schema/mule/core "03 xmlns:cxf=" http://www.mulesoft.org/schema/mule/cxf "04 xmlns:doc=" http://www.mulesoft.org/schema/mule/documentation "05 xml ns:spring=" http://www.springframework.org/schema/beans "06 xmlns:core=" http://www.mulesoft.org/schema/mule/core "07 xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "08 xsi:schemaLocation="09 http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/ schema/mule/cxf/3.1/mule-cxf.xsd

10 http://www.springframework.org/schema/beans http://www. springframework.org/schema/beans/spring-beans-3.0.xsd

11 http://www.mulesoft.org/schema/mule/core http://www.mulesoft. org/schema/mule/core/3.1/mule.xsd ">

12 <description> Essa configuração constrói um serviço JAX-WS com CXF. Nós usamos uma "serviceClass"que é interface JAX-WS

13 que definimos. Isso permite que se garanta que o WDLS14 só é gerado para o método "echo" (em oposição a todos os outros métodos no EchoComponente).

15 Isso mantém nosso WSDL limpo e elegante, mas não é requisitado.16 Para acionar o serviço Echo vá à URL - http://localhost:65082/ services/EchoUMO/echo/text/hello

17 Para visualizar o WSDL para o serviço Echo vá para http:// localhost:65082/services/EchoUMO?wsdl </description>

18 <flow name="EchoFlow">19 <core:inbound-endpoint address=" http://localhost:65082/services/ EchoUMO "

20 exchange-pattern="request-response" doc:name="Generic"21 doc:description="Generic endpoint specified by address URI"/>22 <cxf:jaxws-service serviceClass="org.mule.example.echo. Echo"23 doc:name="SOAP"24 doc:description="Torne um serviço web disponível via CXF"/>25 <component doc:name="Component" doc:description="Invoke a Java component">

26 <singleton-object class="org.mule.example.echo.Echo"/>27 </component>28 </flow>29 </mule>

Page 17: 93511895 lm-87-ce

66 www.linuxmagazine.com.br

ANÁLISE | Ambiente com arquitetura orientada a serviço

quitetura tão útil para ferramentas Java quanto para ESB. A arquitetura abrange uma coleção de componentes para fornecer ou consumir serviços, sendo que pontos de integração são implementados como plugins.

O Apache ServiceMix implemen-ta a versão 1.0 (JSR 208) da especi-fi cação JBI e inclui uma série de componentes, sendo que os mais importantes são:

➧ servicemix-bean : utiliza POJOs ( Plain Old Java Objects )

➧ servicemix-eip : mecanismo de serviço que inclui uma implantação de roteador alinhada com o EIP ( En-terprise Integration Patterns )

➧ servicemix-file : acesso a sistema de arquivos

➧ servicemix-http : acesso a serviços SOAP e HTTP

➧ servicemix-jms : acesso a imple-mentações JMS como o Apache Active MQ

Um exemplo simples de um co-piador automático de arquivos mos-tra como administradores trabalham com o Apache ServiceMix. Se você

quer que o copiador mantenha cópias de arquivos de um diretório ( /home/servicemix/input ) para outro dire-tório ( /home/servicemix/output ), é necessário primeiro criar um novo diretório para o projeto e, depois, edi-tar o arquivo pom.xml para confi gurar o Maven [13] , uma ferramenta de gerenciamento do projeto Apache. O seguinte comando cria a unidade de serviço:

mvn archetype:create- DarchetypeArtifactId=servicemix- service-unit- DarchetypeGroupId=org.apache. servicemix.tooling- DartifactId=tutorial-file-su

Então, é necessário adicionar as dependências do Apache Service-Mix no arquivo pom.xml ( listagem 3 ). Agora só falta a confi guração para os endpoints do arquivo. Será necessário algo para enviar os arquivos e algo para criar um pool deles. A listagem 4 oferece um exemplo do arquivo obrigatório xbean.xml onde tudo o que você precisa fazer é agrupar o resultado em um serviço:

mvn archetype:create- DarchetypeArtifactId=servicemix- service-assembly- DarchetypeGroupId=org.apache. servicemix.tooling- DartifactId=tutorial-sa

Em seguida, mude o nome do pro-jeto no arquivo pom.xml e adicione as dependências na unidade de serviço ( Service Unit – listagem 5 ). Para uma implementação efi ciente, mude para o diretório com um modelo de proje-to, tutorial-sa , e emita um comando mvn install para construir o projeto. Isso gera um arquivo ZIP, que pode ser copiado para o diretório $SERVICE-MIX_HOME/hotdeploy . Para mais detalhes sobre o ServiceMix do Apache, confi ra a documentação do ServiceMix [14] .

A variante corporativa do Apache ServiceMix leva o nome de Fuse ESB e é comercializada pela FuseSource [15] . A edição corporativa oferece recursos extras e também inclui o Fuse Message Broker (baseado no Apache Active MQ), o Fuse Me-didation Router (que usa o Apache Camel [16] ) e o Fuse Service Fra-mework (com Apache CXF).

Figura 1 Se cinco serviços precisam se comunicar um com o

outro, o resultado é um tipo de arquitetura espaguete.

No pior cenário, o departamento de TI tem que

programar e manter cada conector dentro de casa.

Figura 2 Um ESB atua como um caminho central

para que as mensagens passem entre

os serviços.

Page 18: 93511895 lm-87-ce

67

| ANÁLISEAmbiente com arquitetura orientada a serviço

Linux Magazine #87 | Fevereiro de 2012

Os desenvolvedores também usam o Fuse IDE como um ambiente integrado de desenvolvimento e a interface gráfi ca Fuse HQ para ge-renciar e monitorar o ESB. Se você estiver interessado, o Fuse Soft tam-bém oferece suporte e treinamento.

Talend ESB O Sopera ASF é uma plataforma de integração orientada a serviço desen-volvida para a integração de projetos no Deutsche Post AG. O fornecedor ofe-rece o software de código aberto desde 2008. Em novembro de 2010, a Talend comprou a Sopera e, agora, continua o projeto sob o rótulo Talend ESB.

A ferramenta tem uma estrutura modular: ela integra aplicativos de terceiros, processos, dados e soluções SOA dentro de seu próprio SOA, suportando tanto padrões básicos como SOAP, WSDL e XML, assim como padrões mais abrangentes, como UDDI, WS Policy e BPEL.

Outra variante do SOA associada com o Talend ESB é o Apache Ca-mel. O framework de integração de código aberto Camel suporta EIP para negociar regras de mediação. Uma vez que o framework é baseado em URLs simples, os administradores podem trabalhar com quase qualquer modelo de transporte, como HTTP, JMS (Active MQ ou outra implemen-tação JMS) ou JBI.

Os usuários podem trabalhar em rede com Talend ESB em ambientes Java e Microsoft, e combinar os dois por meio de um framework SOA padronizado. Para essa fi nalidade, o Talend ESB suporta os padrões Java J2SE, J2EE e a API Windows Communication Foun-dation (WCF) no framework .NET 3.0.

O Talend ESB usa uma arquitetura distribuída e pode ser implementada em ambientes distribuídos e geogra-fi camente separados. Nesse contexto, distribuído também signifi ca que um Bus centralizado não é essencial. Em vez disso, as funções são executadas em bibliotecas backbone de serviços.

O exemplo a seguir mostra como um aplicativo SOA é projetado em Talend ESB. Esse exemplo usa um serviço web para simplesmente mostrar qualquer entrada de da-dos ( echo ). Um cliente alimenta o serviço com dados e o provedor oferece o serviço. Existe um tutorial detalhado sobre essa confi guração no endereço [17] .

Para criar um cliente, você pri-meiro precisa de uma nova tarefa. Então, você pode proceder com a defi nição de uma entrada de dados simulados por meio do componente FixedFlowInput e transformar isso em uma mensagem XML por meio do tXMLMap . A mensagem é, então, ali-mentada para o tESBConsumer , que dispara a chamada de serviço para

Listagem 2: Componente Echo 01 @WebService02 public class Echo03 {04 @WebResult(name="text")05 public String echo(@WebParam(name="text") String string)06 {07 return string;08 }09 }

Listagem 3: pom.xml 01 <dependencies>02 <dependency>03 <groupId>org.apache.servicemix</groupId>04 <artifactId>servicemix-file</artifactId>05 <version>${servicemix-version}</version>06 </dependency>07 </dependencies>

Listagem 4: xbean.xml 01 <beans xmlns:file=" http://servicemix.apache.org/file/1.0 "02 xmlns:tut="urn:servicemix:tutorial">03 <!-- add the sender endpoint here -->04 <!-- add the poller endpoint here -->05 </beans>06 <file:sender service="tut:file"07 endpoint="sender"08 directory="file:/home/servicemix/output" />09 <file:poller service="tut:file"10 endpoint="poller"11 file="file:/home/servicemix/input"12 targetService="tut:file"13 targetEndpoint="sender"/>

Listagem 5: pom.xml 01 <project>02 [...]03 <dependencies>04 <dependency>05 <groupId>org.apache.servicemix.tutorial</groupId>06 <artifactId>tutorial-file-su</artifactId>07 <version>1.0-SNAPSHOT</version>08 </dependency>09 </dependencies>10 [...]11 </project>

Page 19: 93511895 lm-87-ce

68 www.linuxmagazine.com.br

ANÁLISE | Ambiente com arquitetura orientada a serviço

o provedor ESB. Novamente, você pode confi gurar o arquivo de lingua-gem WSDL ( Web Service Defi nition Language ) requisitada para isso.

Tudo o que você precisa agora é de um provedor com dois compo-nentes ESB: um que aceite a requi-sição e outro que retorne a resposta. Novamente, você precisa de uma tarefa para o fornecedor. Os dois componentes são combinados por um tLogRow , de forma que o fl uxo de dados entre eles seja exibido na linha de comando.

O tESBProviderRequest tem que ser confi gurado usando o mesmo arquivo WSDL que o cliente acabou de criar. Então, é possível iniciar o provedor

para os serviços requisitados. Para tanto, vá à aba Start na parte infe-rior da área de trabalho. O cliente recebe, então, o comando para ini-ciar usando o mesmo mecanismo.

A edição corporativa do Talend ESB também suporta a integração de plugins comerciais adicionais. Pacotes opcionais permitem aos usuários imple-mentar o Sopera ESB .NET, Sopera BPM, Sopera Application, Data Inte-gration e Sopera HQ (gerenciamento de sistema e serviço). O fornecedor também suporta ambientes runtime comerciais. A versão corporativa é su-jeita a uma licença separada.

O que faz da edição corporativa do Talend ESB interessante é a coope-

ração aprimorada entre equipes ad-ministrativas por meio do repositório Talend e o console administrativo uniforme para gerenciamento cen-tralizado das atividades e localização dos serviços.

Comunidades, suporte e IDEs Os três fornecedores de ESB possuem comunidades bem ativas, embora a maior seja, sem dúvidas, a do Mule, onde membros da comunidade ofe-recem suporte útil, extensões e I-Be-ans que eles mesmo programaram. O repositório Git do Mule contém muitos plugins.

Mule ESB Apache ServiceMix

Versão atual 3.12 4.30

LicençaCommunity edition (CPAL) e Enterprise

edition com suporte comercialLicença Apache 2.0

Arquitetura Java, centralizada Java, centralizada

ComunidadeComunidade ativa Muleforte, com extensões,

I-Beans, fóruns e listas de correioFórum ativo, listas de correio

SuportePessoa de contato, atualizações de software,

suporte 8/5 ou 24/7, suporte, service packs

Fóruns de discussão, suporte

8/5 ou 24/7, service packs

Sistemas operacionais

suportadosLinux, Windows, Solares, AIX, HP-UX, Mac OS X

Windows XP e 2000, Solaris,

HP-UX, Linux, Mac OS X

Servidor de

aplicação suportado

Geronimo, Jboss, WebLogic, WebSphere,

Oracle, Sun One, Tcat, Tomcat,

Resin, Jetty, Framework Spring

Geronimo, Jboss, Jonas

Suporte de linguagens

para serviços/dispositivos

Groovy, Java, JavaScript, Jaxen,

Jython (Python), JRuby, JXPath

Java, Groovy, JRuby, Rhino,

JavaScript

Suporte de

desenvolvimento

O desenvolvimento suporta Eclipse

Mule IDE, Mule Studio, Profi ler, Japex,

Data Integrator IDE, Ant, Maven

Console web para desenvolvimento

de componentes JBI

Gerenciador de

processo de negóciosJBPM, BPEL BPEL (Apache ODE), Bpm-Script

MonitoraçãoGerenciamento e monitoração, correção do

gerenciamento, ferramentas de migraçãoJMX, Ant Tasks

Disponibilidade

Alta disponibilidade e resistência a falhas,

políticas de repetição de tentativas para

autocorreção da conectividade

Alta disponibilidade e

clusterização de contêineres

Persistência de mensagemFilas de VM persistentes (fi las internas

do SEDA forçam a persistência)JMS, JDBC

Transações

Independente de transporte (por exemplo,

JDBC, XA, JMS, reconhecimento de

mensagens, transações de múltiplos recursos)

JMS, JCA

Tabela 1 Resumo dos três fornecedores de ESB de código aberto.

Page 20: 93511895 lm-87-ce

69

| ANÁLISEAmbiente com arquitetura orientada a serviço

Linux Magazine #87 | Fevereiro de 2012

Após a aquisição da Sopera pela Talend, os usuários agora se bene-fi ciam de uma comunidade muito forte. Uma comunidade bastante ativa cresce em torno do Talend Open Studio, com comunicação intensa por fóruns e muito traba-lho de desenvolvimento oferecido pelos membros.

Embora uma comunidade exista para o Apache ServiceMix ou Fuse ESB, ela não possui o mesmo grau de movimentação das concorrentes.

Os três fornecedores oferecem ver-sões corporativas. Os clientes podem escolher entre diversos modelos com diversos recursos. Corporações ten-dem a optar pela versão Enterprise

das ferramentas com suas garantias de suporte, principalmente em se tratando de aplicativos de missão crí-tica. Nesse caso, a organização de TI da companhia não precisa depender da comunidade em casos de desastre.

Os três fornecedores também ofe-recem suporte de desenvolvimento. Além do Mule IDE, que é baseado em Eclipse, o MuleSoft tem agora o Mule Studio em seu portfólio. O Mule Studio dá aos programadores a capacidade de modelar fl uxos grafi ca-mente e confi gurar os componentes, como uma conexão JDBC.

Esse componente gráfi co torna possível a defi nição de um fl uxo ge-nérico em um curto período de tem-po. Apesar disso, os desenvolvedores podem se concentrar em integrar os componentes requisitados.

Seguindo a aquisição da Sopera pela Talend, a versão 4.2 agora tem uma ferramenta gráfi ca que permite aos administradores integrar seu SOA. Isso dá aos usuários uma interface gráfi ca, assim como fazem as ferra-mentas mais familiares Talend Open Studio e Data Profi ler, que oferecem a possibilidade de arrastar componen-tes em um tipo de quadro onde eles podem ser combinados e confi gura-dos. Programadores podem, assim, se concentrar em desenvolvimento puro de componentes Java. O Fuse também oferece uma ferramenta que dá aos usuários um espaço de traba-lho gráfi co onde eles podem arrastar, vincular e confi gurar componentes

no formato do Fuse IDE. Todas as soluções são baseadas em Eclipse.

Concorrentes: IBM, Red Hat e Microsoft Os concorrentes proprietários ser-vem a grupos muito diferentes. Os usuários sempre podem encontrar ajuda em fóruns, grupos de usuários, blogs, webcasts e wikis. O BizTalk, da Microsoft, é mais apropriado para clientes que já tem soluções da em-presa, pois está disponível somente na plataforma Windows.

A plataforma SOA da Red Hat, JBoss, cria uma API proprietária e é vendida como uma solução stand-alone sem Tomcat ou middleware similar. Suas forças estão no setor de mensagens. O WebSphere, da IBM, é uma das so-luções mais caras, mas que consegue oferecer aos clientes pagantes respos-tas para quase qualquer problema.

ESBs de código aberto: algo para todo mundo Cada uma das três soluções ESB abordadas tem seus benefícios e uma versão corporativa com suporte do for-necedor. Os clientes podem escolher entre diversos modelos com diversos níveis de disponibilidade. Os forne-cedores não oferecem suporte para as edições comunitárias, mas contam com comunidades movimentadas.

TalendESB (Sopera)

4.21

Licença pública Eclipse (Community

edition); anteriormente licença

Sopera (Enterprise edition)

Java, sob demanda, distribuída

Fórum, blog, seminários online

Telefone, help desk, atualizações

gratuitas, service packs

Windows XP, Vista e Server

2003, Solaris, Linux

Geronimo, Jboss, WebLogic,

WebSphere, SAP NetWeaver,

Tomcat, Jetty

Java, .NET

Kit de ferramentas próprio (Eclipse)

Sopera BPM (baseado em

Intalio BPM), Apache ODE,

SAG, webMethods BPMS

Eclipse, interface de gerenciamento

para o Service Registry, JMX,

arquitetura distribuída Sopera HQ

Arquitetura distribuída

JMS

JMS, JDBC

Figura 3 Um exemplo simples de um aplicativo no Mule Studio.

Page 21: 93511895 lm-87-ce

70 www.linuxmagazine.com.br

ANÁLISE | Ambiente com arquitetura orientada a serviço

O Mule ESB oferece as vanta-gens de uma grande comunidade. Além disso, conta com muitos co-nectores para serviços de nuvem, como o Salesforce, Amazon Web Services ou Twitter. Isso facilita a tarefa de desenvolver soluções ESB que acessam serviços web – algo interessante – levando em consideração que a integração dos serviços baseados em nuvem com

aplicativos legados pode se tornar mais importante no futuro.

Em contraste, a Talend oferece um IDE muito intuitivo para a pro-gramação de sua própria solução ba-seada em ESB. A Talend ampliou seu portfólio para incluir uma solução ESB e está gradualmente chegando perto do Mule. O Apache ServiceMix e Fuse ESB possui uma curva de aprendizado maior se comparado aos outros forne-

cedores, sendo assim, próprios para desenvolvedores experientes.

As principais vantagens desses programas é a excelente interope-rabilidade com outros projetos Apa-che relevantes, como o Active MQ, Camel ou CXF. Além disso, o OSGi ( Open Services Gateway Initiative [18] ) criou uma base atemporal para uma plataforma de integração base-ada em um padrão reconhecido. ■

Mais informações [1] SOA: http://en.wikipedia.org/wiki/

Service -oriented_architecture

[2] ESB: http://en.wikipedia.org/wiki/Enterprise_service_bus

[3] IBM WebSphere: http://www -01.ibm.com/software/decision-management/operational-decision-management/websphere-operational-decision-management/

[4] Microsoft BizTalk: http://www.microsoft.com/biztalk/en/us/default.aspx

[5] Adaptadores de integração da Oracle: http://www.oracle.com/technetwork/middleware/adapters/overview/index.html

[6] Plataforma SOA JBoss Enterprise: http://www.Jboss.com/

[7] MuleSoft: http://www.mulesoft.org/

[8] Apache ServiceMix: http://servicemix.apache.org/

[9] Talend: http://de.talend.com/products -application-integration/index.php

[10] Sopera: http://www.sopera.de/en/

[11] Levantamento da Forrester Research: http://www.oracle.com/us/corporate/analystreports/infrastructure/forrester -wave-esb-q2-2011-395900.pdf

[12] JBI: http://en.wikipedia.org/wiki/Java_Business_Integration

[13] Apache Maven: http://maven.apache.org/

[14] Guia de iniciantes para Apache Service-Mix: http://servicemix.apache.org/2 -beginner-using-maven-to-de-velop-jbi-applications.html

[15] FuseSource: http://fusesource.com/

[16] Apache Camel: http://camel.apache.org/

[17] Tutorial do Talend ESB tutorial: http://www.talendforge.org/tutorials/tutorial.php?language=english&idTuto=94

[18] Iniciativa Open Services Gateway: http://www.osgi.org/

Quadro 1: Análises de ESB As empresas de pesquisas de mercado Forrester e

Gartner investigaram de forma constante os ESBs em

anos recentes. Os melhores produtos são destacados

como líderes e os de desempenho mais forte também

são recomendados. Os bons fornecedores de acordo

com a Gartner são corporativos que têm soluções ou

tecnologias inovadoras no portfólio e cujo uso tem al-

guma infl uência no usuário fi nal. Dito isso, os candida-

tos podem pontuar de 0 (muito fraco) a 5 (muito forte)

para cada característica na pesquisa.

Uma visão geral dos resultados:

➧ Fuse ESB 4.0 baseado no Apache ServiceMix foi lis-

tado como líder no estudo de 2011 da Forrester. Sua

orquestração ganhou 5 pontos, a arquitetura fi cou

com 4.88 e as conexões com 4.70.

➧ O BizTalk fi cou como líder em 2010 de acordo com a

Forrester. O analista investigou o BizTalk Server 2010

e o ESB Toolkit. O BizTalk alcançou um bom valor de

5 na categoria Estratégia.

➧ A IBM também foi citada como líder em 2011 pelos

seus produtos WebSphere Enterprise Service Bus

Registry Edition (WESBRE) e WebSphere Message

Broker (WMB). O IBM WebSphere Enterprise Servi-

ce Bus (WESB) garantiu um lugar na categoria de

forte desempenho.

➧ O levantamento da Forrester vê o Mule ESB 3 como de

forte desempenho. Seus principais benefícios são cone-

xões 5.0, arquitetura (4.70) e mudança e controle (4.47).

➧ A plataforma SOA JBoss 5.0.2 foi listada como de

forte desempenho pela Forrester com notas de 3.98

para mediação, 3.37 para mudanças e controle de

3.33 para conexões.

➧ O Gartner citou o Sopera como um bom fornecedor

no quesito plataforma e integração em 2010.

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/6435

co em

Page 23: 93511895 lm-87-ce

72 www.linuxmagazine.com.br

ANÁLISE | MySQL vs. PostgreSQL

Duelo entre PostgreSQL e MySQL

Montamos uma equipe de ben-chmark (análise de desem-penho baseada em diversos

fatores), com o apoio de especialistas em banco de dados ( quadro 1 ), para desco-brir como o MySQL e o PostgreSQL seriam executados em casos de teste. Não antecipei os resultados desde o início, pois diferentes parâmetros, tais como a carga de trabalho ou o tama-nho de banco de dados provavelmente retornariam resultados diferentes.

Portanto, eu não estava interessa-do principalmente na vitória ou na derrota, mas sim no caminho que os especialistas levaram para atingir os seus objetivos: o que preciso para medir estes dois sistemas? Que ajustes posso fazer? Qual o efeito que cada ação tem? Que tipo de aumento de desempenho posso conseguir com os bancos de dados no que tange à confi guração padrão? Qual banco de dados utiliza hardware rápido de forma mais efi ciente?

Finalmente, resta dizer que a velo-cidade não é o único critério quando você precisa fazer uma escolha entre dois tipos de gerenciadores de bancos de dados (SGBDs). Em muitos casos, o fator decisivo é um aplicativo que o banco de dados precisa ser capaz

de suportar, a facilidade de gestão, aproveitando sua experiência já exis-tente em vários campos, mecanismos com falhas de segurança (e, portanto, coisas como agrupamento e replica-ção de dados), suporte ou opções de migração, ou muitas outros itens que podem facilmente ser mais impor-tantes do que alguma percentagem a mais de desempenho. Apesar de tudo isso, no entanto, o desempenho não é obviamente um fator insignifi cante na avaliação global.

Uma nota fi nal: o SQL nos proce-dimentos de benchmark é inegociável – no mundo real, e assumindo a expe-riência para avaliá-los, aí se encontra o maior potencial de ajuste, afi nal de contas, as consultas elaboradas desa-jeitadamente em um projeto de banco de dados pobre, pode lhe custar mais velocidade do que uma confi guração inteligente pode compensar.

O benchmark A ferramenta de benchmark DBT-2 [1] foi utilizada para a comparação, e foi originalmente desenvolvida pelo Open Source Development Labs (que, infelizmente, já não o mantém atual-mente). O benefício deste benchmark é que ele oferece não apenas formas

para a criação de um processo de car-ga de trabalho (OLTP) relativamente complexo e transações online com confi guração versátil, como também se baseia em um método reconhecido de análise, o mesmo sistema que o padrão da indústria, TPC-C [2] , em que é modelado, utiliza. Embora os valores resultantes do TPC-C e DBT-2 não sejam diretamente comparáveis, os bancos de dados, basicamente, passam a utilizar os mesmos proce-dimentos em ambos os casos.

Ao instalar o benchmark, algumas armadilhas, na forma de pequenos bugs, tiveram que ser resolvidas. Em um caso, a sintaxe nos scripts SQL está incorre-ta, e em outro, o Shell Bourne ocorre na linha shebang (ou hashbang), onde você precisa do Bash, além disso, há alguns caminhos nos scripts que apon-tam para diretórios inexistentes. Estas questões não são nada que um usuário bastante experiente não pudesse resolver, mas custa tempo. Uma versão futura irá remover esses bugs – pelo menos assim nos foi dito. Pouco tempo atrás, tentei convencer os ex-mantenedores a assumirem seus projetos órfãos de novo, mas não obtive qualquer sucesso.

Quando o benchmark é executado, ele simula um aplicativo comercial

Duelo de bancos de dados A competição entre MySQL e PostgreSQL

é tão antiga quanto os próprios bancos

de dados e sem um vencedor claro.

Apesar disso, é sempre emocionante e

elucidante assistir à batalha dos dois.

por Jens-Christoph Brendel e Flávia Jobstraibizer

AN

ÁLIS

E

Page 24: 93511895 lm-87-ce

73

| ANÁLISEMySQL vs. PostgreSQL

Linux Magazine #87 | Fevereiro de 2012

em que um número de empregados inicia uma série de transações em seus terminais cobrindo encomendas, entregas, assentamentos, acompanha-mento, processamento de pedidos e acompanhamento de estoque. Estas transações são lançadas em uma mis-tura predefi nida no banco de dados, com o New Order ocorrendo com mais frequência, seguido pelo Payment , Order Status , Delivery e Stock Level . A métrica central é o número de no-vos pedidos por minuto que o sistema de banco de dados pode manipular.

O ambiente no qual tudo isso acon-tece é composto por armazéns, onde cada armazém serve a 10 distritos. Cada distrito tem 3.000 clientes. Cada armazém administra 100 mil artigos. Um em cada 10 pedidos deve ser re-passado para um armazém diferente, porque nem todos os artigos estão em estoque. Dez processos terminais são lançados por armazém, por padrão.

Todas as transações de benchmark são procedimentos armazenados no banco de dados. O benchmark contri-bui com dois componentes de software em tempo de execução: o primeiro cliente abre um número defi nido de conexões de banco de dados, e os de referência aguardam a fase de adapta-ção para serem concluídos. Após isso,

sào iniciadas as transações através do cliente. O benchmark é altamente confi gurável. Em particular, você pode confi gurar o seguinte:

➧ O número de armazenamentos (o fator de escala central) ( -w )

➧ O número de conexões de ban-cos de dados paralelos ( -c )

➧ O tempo de execução ( -d )➧ Se deve ou não usar um tempo

de refl exão ( -n ) Nos resultados discutidos neste arti-

go, fi z os testes sem o tempo de refl exão, pois eu precisaria de um grande número de armazéns para atingir o limite de carga, que por sua vez implicaria em ter um grande número de processos terminais. Isso signifi caria decidir a competição no mérito destes tópicos terminais, em grande extensão.

Todos os valores medidos aqui são médias e a dispersão foi nivelada. Para cada confi guração, o benchmark fun-cionou, pelo menos, três vezes, e muito mais vezes em alguns casos. Os testa-dores tentaram acelerar cada banco de dados, sucessivamente, pelo aplicativo de uma série de ajustes. Neste artigo, não vou analisar ajustes sem sucesso, em vez disso, vou nas opções de banco de dados que aumentam a velocidade alcançada signifi cativamente, ou pelo menos que teria um efeito positivo

em outras circunstâncias. As melho-rias de desempenho são tipicamente documentadas ao longo de três séries de medições, nas quais as cargas foram aumentadas, sem tempo para pensar, de 1 a 20 armazéns e os testes de estresse eram executados por cinco minutos após a fase de adaptação em que as conexões de banco de dados foram estabelecidas.

O MySQL entra no ringue A direção inicial para qualquer ajuste em ambos os sistemas de bancos de dados certamente tem que ser a prevenção de acesso ao disco. O benchmark gera uma enorme quantidade de acessos ao disco, e este é um número de pe-didos mais lento do que as operações de RAM com a qual estas poderiam ser substituídas. Dois bancos de dados oferecem um grande número de ajus-tes, por exemplo, o MySQL, através do comando SHOW GLOBAL VARIABLES; lhe dá uma visão geral das variáveis presentes no sistema. A lista é longa, mas nunca tenha medo: apenas alguns parâme-tros são realmente relevantes para o ajuste. Em primeiro lugar, estabeleça um valor de referência; o desempe-nho foi medido com a confi guração de banco de dados inicial depois de instalados os pacotes. Então, utilizei algumas variantes diferentes no caso do MySQL. O ajuste de parâmetros começou com uma variante de baixo custo que envolvia alterar somente as confi gurações de banco de dados sem reinstalar nada.

Depois, eu queria testar uma versão mais recente do MySQL do que a oferecida pelo repositório LTS Ubuntu 10.04. Teoricamente, eu po-deria ter utilizado outra abordagem e testado os derivados principais do MySQL como o MariaDB, o servidor Percona, ou o Drizzle. No entanto, isso pode causar mais obstáculos em um ambiente de produção (por exemplo, sob a forma de custos adicio-nais) porque você pode perder todo

Figura 1 Efeitos obtidos com ajustes nas diversas confi gurações do MySQL.

Page 25: 93511895 lm-87-ce

74 www.linuxmagazine.com.br

ANÁLISE | MySQL vs. PostgreSQL

o suporte comercial que porventura tenha comprado para o MySQL.

Em terceiro lugar, a sobrecarga me obrigou a aplicar alguns limites. O benchmark foi executado cerca de 2.000 vezes no total para os dois ban-cos de dados, a um tempo de execu-ção médio entre sete e oito minutos, o que totalizou 250 horas – ou mais de 10 dias de benchmarking duran-te um único dia. Em quarto lugar, e isso foi testado fi sicamente, eu queria saber quais benefícios a substituição do disco rígido original por um SSD rápido poderia oferecer.

Todas as medidas foram toma-das no mesmo hardware: um Dell PowerEdge T110 com dois processado-res Intel Dual-Core i3 530 executados a 2,93 Ghz. O servidor tinha 8GB de memória RAM. Nosso dispositivo de armazenamento era um disco interno de 300GB da Western Digital, ou um Intel 320 séries SSD (160GB), para o qual os diretórios de dados do banco de dados foram movidos para fi ns de teste. O sistema não tinha outras tare-fas para completar naquele momen-to, além de executar os benchmarks.

Ajuste tangível A primeira ação no caso do MySQL foi a atualização da versão antiga, 5.1.41 ( fi gura 1 , linha A ) a partir do reposi-tório do Ubuntu para a versão 5.5.15 atual ( fi gura 1 , linha B ). O banco de dados mais recente era duas vezes mais rápido em suas confi gurações iniciais, sem qualquer ajuste, o que é explicado em parte por alguns valores confi gurados de forma mais genero-sa nos parâmetros padrão, do que os defi nidos nas versões mais antigas do MySQL. O ajuste irá acelerar consideravelmente a versão legada, mas a versão mais recente ainda se mantém na frente, razão pela qual todos os benchmarks seguintes foram realizados com o banco de dados mais recente. Com base nestes dados, as atualizações são defi nitivamente re-comendadas para o MySQL.

O segundo passo foi aumentar o tamanho do buffer para bancos de da-dos no formato InnoDB. Você precisa modifi car o parâmetro correspondente innodb_buffer_ pool_size para alcançar um valor de referência de 80% do tama-nho da memória RAM disponível ou, se você tiver uma grande quantidade de memória e um pequeno banco de dados, tanto a memória quanto o ban-co de dados podem possuir mais 10% desta memória disponível. O banco de dados mais antigo somente aloca escassos 8MB, enquanto a versão mais recente aloca pelo menos 128MB.

Seja qual for o caso, é importante ter memória RAM sufi cientemente poupa-da para manter o sistema operacional (tabelas de páginas, buffers de conexão etc.) e os outros consumidores MySQL felizes (cache de consultas, tabelas tem-porárias, tópicos, buffers de chaves etc.) e em funcionamento. O servidor de teste tinha 8GB de RAM e o banco de da-dos de benchmark começou em 4GB. Sendo assim, 5GB foi uma boa escolha para o valor de pool do buffer InnoDB. Este valor proporcionou um aumento de desempenho de 88%, de imediato ( fi gura 1 , linha C ), em comparação com a confi guração desafi nada da versão dos MySQLs mais novos.

A terceira ação é relacionada com o arquivo de logs do InnoDB. Se você quiser alterar o seu tamanho, é im-portante apagar os registros antigos com o banco de dados desabilitado; caso contrário, o arquivo de log não irá corresponder ao tamanho do novo arquivo recém-confi gurado e o MySQL irá se recusar a iniciar. Depois de remover o arquivo de log, o banco de dados cria um novo arquivo do tamanho necessário quando iniciar.

Além disso, é preciso considerar que um arquivo de log muito gran-de pode atrasar consideravelmente o reinício do MySQL depois de algum acidente porque em primeiro lugar, o banco de dados procura todos os logs de transações que só foram rea-lizados na memória RAM, mas não estão escritos no disco. Esta tarefa de refazer os logs é proporcional ao seu tamanho, mas também depende de tantos outros fatores que talvez seja melhor realizar um teste para esta-belecer os valores para o banco de dados que você estiver investigando. Finalmente, o tamanho de todos os arquivos de log em conjunto deve ser inferior a 4GB. Todas estas con-siderações me levaram a escolher por apontar o tamanho do arquivo de log

Figura 2 Ambas as bases de dados – ajustadas para desempenho máximo –

com e sem discos SSD para armazenamento em massa para os arqui-

vos de dados. Os valores com o disco SSD são pelo menos o dobro.

Page 26: 93511895 lm-87-ce

75

| ANÁLISEMySQL vs. PostgreSQL

Linux Magazine #87 | Fevereiro de 2012

do InnoDB em 1GB. Isso levou a um aumento de desempenho de 52% ( fi -gura 1 , linha D ) em comparação com a versão anterior da confi guração.

A quarta ação de ajuste é um caso limite porque se relaciona com a segurança do banco de dados. Por padrão, o parâmetro flush_log_at_trx_commit é defi nido como 1 , o que signifi ca que o MySQL escreve o log de transações para o disco, sempre que uma transação for confi rmada. Isto signifi ca que você nunca perderá uma transação, mesmo que o MySQL ou o sistema operacional travem.

Para cargas de trabalho OLTP ( Online Transaction Processing ou Processamento de Transações em Tempo Real) com muitas operações de escrita para armazenar, este prâme-tro pode agir como um freio de mão que é liberado quando você mudar o parâmetro. Se for defi nido o valor como 0 , você estará desativando o log depois de um gerenciamento de dados; se for defi nido o valor para 2 , os dados de registro não são escritos fora do disco imediatamente, mas sim, no cache do sistema operacional. Isto signifi ca que a transação vai sobreviver a uma potencial falha do banco de dados, mas seria perdida no caso de uma falha do sistema operacional. Op-tei por um alterar este padrão e neste

caso, o resultado foi um aumento de desempenho de mais de duas vezes a velocidade anterior ( fi gura 1 , linha E ).

A quinta ação refere-se ao parâme-tro innodb_buffer_pool_instances , que permite dividir a área de buffer em regiões separadas, o que, por sua vez, acelera o processamento de leitura e escrita de operações competitivas.

Você vai ver muitas recomendações de alteração para o valor innodb_bu-ffer_pool_instances nos manuais do MySQL. Nosso especialista recomen-da defi ní-lo com o mesmo valor que o número de núcleos da máquina. Outra recomendação para o parâmetro inno-db_buffer_pool_size é a mudança do valor em GB mais o número de CPUs/2 que teria alcançado aproximadamen-te os mesmos resultados, e uma boa dica é usar um mínimo de 1GB para cada parte do pool de buffer, o que lhe dá a mesma confi guração que o número de núcleos. Isto novamente levou a um aumento de desempenho considerável ( fi gura 1 , linha F ).

Este gráfi co começa a decair con-forme o número de bancos de dados aumenta porque, na extremidade su-perior do espectro de carga, mais ações paralelas são realizadas em até 200 threads que podem ser manipuladas para obtenção de desempenho máxi-mo. Não é coincidência que a maioria dos gráfi cos de desempenho alcançam seus picos quando de 30 a 60 threads

Figura 3 Comparação entre várias confi gurações do PostgreSQL.

Quadro 2: WAL O registro prévio da escrita (WAL,

que quer dizer Write Ahead Logging )

é uma abordagem padrão para re-

gistrar transações. Seu conceito

central é que as alterações nos ar-

quivos de dados (onde as tabelas e

os índices residem) devem ser es-

critas somente após terem sido re-

gistradas, ou seja, quando os regis-

tros que descrevem as alterações

tiverem sido descarregados em um

meio de armazenamento perma-

nente. Um dos benefícios da utiliza-

ção do WAL é a redução signifi cati-

va do número de escritas em disco,

uma vez que, no momento em que

a transação é efetivada somente

precisa ser descarregado no disco o

arquivo de registro, ao invés de to-

dos os arquivos de dados modifi ca-

dos pela transação. Outro benefício

seguinte é a consistência das pági-

nas de dados. A verdade é que an-

tes do WAL o PostgreSQL nunca foi

capaz de garantir a consistência dos

dados no caso de uma pane.

Quadro 1: Regras de conduta Para assegurar que o grande due-

lo de bases de dados, PostgreSQL

versus MySQL, seja uma luta justa

e para garantir que os combatentes

não se restrinjam e estejam em per-

feita forma, chamei alguns testado-

res experientes. Cada equipe con-

tribuiu com as melhores dicas de

ajuste fi no para suas bases de da-

dos. No lado do MySQL, sou gra-

to pelo apoio de Oli Sennhauser, um

antigo Senior Database Consul-tant para o MySQL junto à Sun, e

que hoje é um consultor autônomo

e neutro de MySQL que gerencia

sua própria empresa, a From-Du-

al. Do lado do PostgreSQL, a equi-

pe editorial recebeu o apoio de Su-

sanne Ebrecht, desenvolvedora do

PostgreSQL e co-fundadora do Eu-ropean PostgreSQL User Group ,

entre outras coisas. Hoje ela está

empregada pelos especialistas em

PostegreSQL, 2ndQuadrant.

Page 27: 93511895 lm-87-ce

76 www.linuxmagazine.com.br

ANÁLISE | MySQL vs. PostgreSQL

terminais estão sendo executados ao mesmo tempo.

Os resultados encontrados ao mover o diretório de dados para um dispo-sitivo SSD estão em uma categoria completamente diferente ( fi gura 2 ). Eles atingiram um pico de quase 20 mil novas solicitações por minuto – mais uma vez, duas vezes mais rápido que o efeito total de todas as ações de ajuste anteriores. A razão é porque o disco rígido não é mais o compo-nente mais lento. A linha inferior é uma confi guração MySQL criada para funcionar a uma velocidade 10 vezes mais rápida do que a versão legada não ajustada, e usando um disco SSD alterado a um fator de 20.

PostgreSQL entra no ringue Mais uma vez, em primeiro lugar foi testada a versão do PostgreSQL forne-cida pelo repositório do Ubuntu, que é a versão 8.4.8 ( fi gura 3 , linha A ). Mas, para manter as coisas justas, instale o PostgreSQL 9.1.0 atual ( fi gura 3 , linha B ).

Esta versão não era muito mais rápida do que sua antecessora; no entanto, ganhou o concurso da con-fi guração padrão. A confi guração padrão do PostgreSQL mais antiga é quase tão rápida quanto os MySQL atuais não ajustados, mas o último PostgreSQL é um pouco mais rápido em sua confi guração padrão e decidiu esta competição a seu favor ( fi gura 4 ).

A razão para a vantagem do PostgreS-QL padrão é que ele verifi ca ativamente os valores de alguns parâmetros, sem in-terferir no sistema operacional, quando o banco de dados é inicializado na fase de instalação. O MySQL não se incomoda com essa verifi cação e, portanto, utiliza padrões conservadores para evitar con-fl itos com o sistema operacional. Claro, isso signifi ca que o MySQL é muito mais lento sem ajuste, porque não tira proveito de suas próprias opções. Além disso, o PostgreSQL tem um trunfo na manga: seus procedimentos armazena-

dos para o benchmark são programas C compilados, enquanto o MySQL utiliza scripts SQL que são interpretados pelo servidor para o mesmo fi m. Dito isto, a diferença não é tão grande.

Acelere o PostgreSQL A próxima ação de ajuste do Post-greSQL realmente não se relacio-na com o banco de dados, mas sim com o sistema operacional. Como o PostgreSQL depende da leitura de buffer do sistema operacional, pode valer a pena aumentar seu tamanho – o Ubuntu só o defi ne a um baixo valor de 256 . Isto costumava ser feito com o comando hdparm , mas o kernel 2.6 intro-duziu um comando separado para isso:

blockdev --setra 4096 /dev/sda

onde o dispositivo e o número de blo-cos são apenas alguns exemplos. No entanto, a carga de trabalho para este benchmark é constituída, principal-mente, por operações de gravação, e a alteração não teve qualquer efeito positivo perceptível. Se este não é o caso em seu aplicativo, você deve adi-cionar o comando rc.local ou algum

outro script de inicialização para evitar perder o ajuste com a próxima inicia-lização da máquina. A ação seguinte é também muito intimamente rela-cionada com o Linux. Se você deseja alocar mais memória compartilhada para o banco de dados (principalmente na forma de buffers compartilhados), esta quantidade não deve exceder o limite defi nido pelo sistema operacio-nal – caso contrário, o banco de dados falharia ao tentar alocar mais memória do que o possível. Uma regra de ouro aqui é reservar cerca de um quarto de sua memória RAM para buffers com-partilhados – em outras palavras, 2GB, neste caso – com os seguintes passos: comece editando o arquivo /etc/sysc-tl.conf e adicione as linhas:

kernel.shmmax = 4190150656kernel.shmmall = 10229896

Em seguida, recarregue as confi -gurações através do comando sysctl -p (você precisaria fazer isso após a reinicialização da máquina também). O parâmetro SHMMAX do sistema opera-cional é defi nido em 4GB. Agora você pode confi gurar o tamanho do buffer

Figura 4 Competição entre as confi gurações padrão de várias versões dos

bancos de dados.

Page 28: 93511895 lm-87-ce

77

| ANÁLISEMySQL vs. PostgreSQL

Linux Magazine #87 | Fevereiro de 2012

pelo cache no arquivo postgresql.conf : max_connection = 25 e shared_ buffers = 2 GB (anteriormente, 32MB).

Para dizer ao PostgreSQL quanto de cache ele pode esperar do siste-ma operacional, você fi nalmente precisa defi nir o valor do tamanho do cache efi caz de RAM menos os buffers compartilhados, neste caso:

effective_cache_size = 6GB

Surpreendentemente, essa ação não teve nenhum efeito perceptível no de-sempenho do PostgreSQL. Embora o banco de dados utilize o cache, como é evidenciado pela boa taxa de acerto (94%), este provavelmente não é um fator decisivo por conta da prepon-derância das operações de gravação.

Por outro lado, o PostgreSQL parece responder mais ao tamanho cada vez maior do banco de dados durante o benchmark. Perto do fi nal do teste, também notei uma queda no desempenho com o MySQL.

Por esta razão, reiniciei o MySQL uma vez depois de cerca de 700 cargas de teste e o PostgreSQL múltiplas vezes após 350 cargas de testes após reinsta-lado o banco de dados padrão. Teria sido impossível chegar a estes valores de cada série de testes por conta da so-brecarga, e de qualquer maneira, essa não é uma abordagem muito prática em um ambiente de produção.

A próxima tentativa de ajustes é relacionada ao gerenciamento de memória. A variável work_mem permite confi gurar a quantidade de memória disponível para operações de classifi ca-ção interna e tabelas hash. O padrão é 1MB, e eu aumentei este valor para 24MB. A variável maintanance_work_mem permite que você veja a quantidade máxima de memória disponível para operações como VACUUM , CREATE INDEX ou ALTER TABLE ADD FOREIGN KEY . O valor padrão é de 16MB, mas a au-mentei para 512MB para a realização dos benchmarks. Novamente, o efeito dessas ações foi perdido na estatística de ruído branco ( fi gura 3 , linha C ).

Ajuste de log O equipe de benchmark também defi niu alguns pontos de controle (checkpoints), onde o PostgreSQL garantiu que os dados de todos os arquivos heap e index data são atuali-zados e todas as páginas de memória alteradas são escritas no disco. Após um travamento, o procedimento de recuperação iria procurar um outro ponto de controle e identifi car as ope-rações que ocorreram anteriormente e foram portanto, escritas no disco. Você pode confi gurar quantas vezes o processo de escrita em segundo plano desencadeia esses pontos de controle.

Uma boa abordagem é estipular o número de logs dos segmentos em 16MB ( checkpoint_segments ) depois que um ponto de controle foi escri-to. O padrão é 3 . Este valor é muito pequeno, especialmente se você tiver um grande número de operações de gravação, então o aumentei para 32 , o que pode aumentar o tempo de recu-peração de falhas, mas também elimi-na a necessidade de muitos pontos de controle de entrada e saída de dados.

Esta ação foi muito bem sucedida visivelmente: o aumento de desem-penho foi de até 100% ( fi gura 3 , linha D ). Mais tarde, experimentos mos-traram que os valores mais elevados de checkpoint_segments não levam a quaisquer melhorias signifi cativas.

Você pode dar mais um passo nes-sa direção, e desativar a opção padrão synchronous_commit , o servidor do ban-co de dados não irá aguardar a escrita dos logs (WALs ou registro prévio da escrita – quadro 2 ) para fazer o seu ca-minho até o disco antes de passar uma mensagem de sucesso para o cliente.

Embora seja mais rápido, isto pode lhe custar transações individuais no caso de um travamento. Em alguns casos, poderá aceitá-lo para obter maior desempenho (por exemplo, em uma aplicativo de mensagens em um fórum), mas certamente não é aceitável para transações fi nancei-ras, por exemplo. Obviamente você

precisa saber o que está fazendo. Para manter as coisas justas, também testei esta variante de ajuste. Com um ge-renciamento de dados assíncrono, o número de transações subiu para um nível máximo similar ao alcançado pelo MySQL, em mais de 15 mil tran-sações por minuto ( fi gura 3 , linha E ).

Conclusão O PostgreSQL teve um excelente co-meço, mas foi difícil melhorar depois disso. O MySQL começou a com uma confi guração padrão inferior, mas conseguiu melhorar de forma gradual. Em termos de caching, em particular, ele tocou em reservas que o PostgreSQL provavelmente nunca teve, porque foi melhor otimizado personalizadamente.

Depois de substituir o acesso ao disco tanto quanto possível, através de operações de memória RAM, os dois bancos de dados foram benefi ciados consideravelmente, reduzindo a so-brecarga causada pelo inevitável log de transações. No melhor cenário, o que implicou em um compromisso de segurança, os dois concorrentes foram bastante equilibrados.

O que deu às duas bases de dados um impulso ainda maior foi a mu-dança de gravação para discos SSD. Na melhor confi guração e com um disco SSD como meio de armaze-namento, o número de transações dobrou. Empate técnico? Os dois bancos de dados, no fi nal das con-tas, não deixam nada a desejar! ■

Mais informações: [1] DBT-2: http://is.gd/7BJTVs

[2] TPC-C: http://www.tpc.org/tpcc/

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/6432

o siteticle

.com.b

32

o?nião.

Page 29: 93511895 lm-87-ce

Institute

LinuxProfessional

R

Inscrições e mais informações:

[email protected]

Tel (11) 3675-2600

Inclua em seu currículo a principal certificação Linux no mundo – LPI.Inclua em seu currículo a principal certificação Linux no mundo – LPI.

Em tempos de crise, soluções de código aberto – como o Linux – se

destacam na adoção por empresas de todos os tamanhos, como solução ideal para aumentar

eficiência nos negócios e reduzir custos. Atualmente há no mercado

uma carência por profissionais certificados para atender a essa

demanda crescente. Aproveite essa oportunidade e inclua em seu

currículo a principal certificação Linux no mundo.

Page 30: 93511895 lm-87-ce

82 www.linuxmagazine.com.br

Linux Magazine #88

PR

EVIE

W

Admin Magazine #05

Vai dar SambaA interoperabilidade é uma constante na vida de grande parte dos usuários corporativos e até mesmo domésticos da atulidade. É comum encontrar re-des heterogêneas onde é necessário que haja convivência harmoniosa entre computadores e servidores que possuem Linux, Windows, Mac OS X e alguns outros.

E para ter tranquilidade, garantindo a harmonia em sua rede, na próxima edição da Linux Magazine, vamos falar sobre as várias formas de interoperar com os diversos sistemas, utilizando Samba e outras ferramentas que irão garantir a paz em sua rede. ■

MonitoramentoNa Admin Magazine #05, você irá conhecer as melhores opçoes em softwares para monitoramento de sistemas.

Seja em redes Linux, Windows ou mesmo em redes mistas, o moni-toramento de redes e sistemas está presente no dia a dia de nove entre dez administradores de sistemas.

Se você é um deles, não perca nossa próxima edição!