2011 - linux magazine 80 (jul)

Upload: garcia-casimiro

Post on 06-Apr-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    1/30

    http://lnm.com.br/article/5477http://lnm.com.br/article/5486http://lnm.com.br/article/5418http://lnm.com.br/article/5475http://lnm.com.br/article/5492http://lnm.com.br/article/5490http://lnm.com.br/article/5456http://lnm.com.br/article/5416
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    2/30

    3Linux Magazine #80 | Julho de 2011

    EDITORIAL

    Burrice bem-vindaEmbora raros, h sstemas na engenhara e na booga que so to eicentesque acabam por gerar probemas estruturas e/ou operaconas. A veocdadena entrega de obras na construo cv eva empresas de engenhara a usardetermnados adtvos na cura do concreto que aceeram o seu processo deendurecmento e secagem, mas que podem resutar em porosdade do mate-

    ra. Do ado da medcna, h certas crurgas cuja reazao recomendadaaps os cnquenta anos de dade, pos antes dsso o processo de ccatrzao to cere que acaba resutando em recdva anos mas tarde. Antes da daderecomendada, o pacente deve tentar amenzar o probema usando paatvos.

    At certo tempo atrs e, na mnha dade, certo tempo sgnica peomenos umas trs dcadas, ou seja, na era pr-PC , operadores de computadorestavam habtuados a trabahar no que se convenconou chamar de term-na burro, o qua icava conectado a um computador de grande porte, ondetodo o processamento ocorra de fato. O termna, normamente conectadova porta sera ao manframe, pratcamente no faza nada am de mostrarna tea os comandos dgtados e eventuas resutados, bem como reazar a

    etura dos dados nserdos va tecado. Esse modo de operar anda utzado(com varaes) por mutas empresas at hoje, como, por exempo, a CasasBaha. A dferena que, atuamente, o termna um programa que smua ocomportamento da mquna burra de outros tempos. No servdor, que andapode ser um manframe, o sstema operacona agora em gera Lnux (emoperao vrtuazada nesses sstemas de grande porte), apesar de haver andasstemas operaconas para manframes, como o z/OS da IBM, por exempo.

    Com o advento da computao em nuvem, vamos presencar uma coni-gurao semehante chegando a uma grande parcea de usuros inas: comoa maora dos apcatvos va funconar dretamente a partr da nuvem, acapacdade de processamento da mquna oca que pode ser um PC masmodesto, um netbook, um tabet ou mesmo um ceuar poder ser muto

    menor. Isso va democratzar anda mas o acesso Internet e aos apcat-vos fornecdos como servos monetzados va pubcdade hospedados nanuvem: ponto para o Googe! E ncatvas como o anamento do Coud,reazado recentemente pea Appe, transferem a centra dgta do usuropara a nuvem, em uma traduo vre da airmao feta por Steve Jobs porocaso do anamento do novo servo. Com sso, o denomnador comumda vda dgta do usuro muda, e, assm, o PC perde a poso de destaqueque ocupou durante cerca de trnta anos. Os dspostvos mves sero os apa-rehos utzados para reazar esse acesso. Ponto para o Lnux, que j equpaa maor parte dos dspostvos embarcados no mundo tendnca que cresceexponencamente. Aina, em um mundo em que no h aprsonamento

    de pataforma operacona, onde um sstema vre, aberto, seguro e rpdoest dsponve gratutamente para quaquer empresa desenvover produtos esoues, que outra opo mas vantajosa podera ser adotada?

    Assm, exceo dos sstemas que de fato necesstam de grande ca-pacdade de processamento oca (edo de vdeo ou CAD/CAM, porexempo), os sstemas baseados em Lnux que vo equpar nossos dspo-stvos mves podero ser mas smpes e, assm, menos ntegentes, jque a ntegnca dos apcatvos estar hospedada na nuvem. O termnaburro 2.0 chegou! Sadem essa burrce bem-vnda!

    Rafael Peregrino da Silva

    Diretor de Redao

    Expediente editorialDiretor Geral

    Rafael Peregrino da [email protected]

    EditoresFlvia [email protected]

    Kemel [email protected]

    Editora de ArteLarissa Lima Zanini

    [email protected]

    EstagirioFelipe Brumatti Sentelhas

    [email protected]

    ColaboradoresAlexandre Borges, Alexandre Santos, AugustoCampos, Brice Goglin, Charly Khnast, Erik Brwaldt,Hans-Peter Merkel, Ian Dickinson, Jeff Squyres,Jon maddog Hall, Kai-Thorsten Hambrecht, KlausKnopper, Kurt Seifried, Marcel Gagn, MarkusFeilner, Markus Heller, Markus Roth, Peter Kreussel,Samuel Thibault, Thomas Pfeiffer, Zack Brown.

    Editores internacionaisUli Bantle, Andreas Bohle, Jens-Christoph Brendel,Hans-Georg Eer, Markus Feilner, Oliver Frommel,Marcel Hilzinger, Mathias Huber, Anika Kehrer,Kristian Kiling, Jan Kleinert, Daniel Kottmair,Thomas Leichtenstern, Jrg Luther, Nils Magnus.

    Anncios:

    Rafael Peregrino da Silva (Brasil) [email protected].: +55 (0)11 3675-2600

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

    Amy Phalen (Amrica do Norte) [email protected]

    Hubert Wiest (Outros pases) [email protected]

    Diretor de operaes

    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 Austrlia www.linux-magazine.es Espanha

    www.linux-magazine.pl Polnia www.linux-magazine.co.uk Reino Unido www.linuxpromagazine.com Amrica do Norte

    Apesar de todos os cuidados possveis terem sido tomadosdurante a produo desta revista, a editora no responsvelpor eventuais imprecises nela contidas ou por consequnciasque advenham de seu uso. A utilizao de qualquer material darevista ocorre por conta e risco do leitor.

    Nenhum material pode ser reproduzido em qualquer meio, emparte ou no todo, sem permisso expressa da editora. Assu-me-se que qualquer correspondncia recebida, tal como car-tas, emails, faxes, fotografias, artigos e desenhos, sejam for-necidos para publicao ou licenciamento a terceiros de formamundial no-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 So Bento, 500Conj. 802 S01010-001 So Paulo SP BrasilTel.: +55 (0)11 3675-2600

    Direitos Autorais e Marcas Registradas 2004 - 2011:Linux New Media do Brasil Editora Ltda.Impresso e Acabamento: RR DonnelleyDistribuda em todo o pas pela Dinap S.A.,Distribuidora Nacional de Publicaes, So Paulo.

    Atendimento Assinante

    www.linuxnewmedia.com.br/atendimentoSo Paulo: +55 (0)11 3675-2600Rio de Janeiro: +55 (0)21 3512 0888Belo Horizonte: +55 (0)31 3516 1280

    ISSN 1806-9428 Impresso no Brasil

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    3/30

    4 www.linuxmagazine.com.br

    NDI

    CE

    CAPA

    Novas tecnologias 27

    Como possvel manter-se atualizado diante darevoluo de lanamentos no mercado de tecnologia,com o qual somos bombardeados todos os dias?

    Um novo comeo para o HTML 28

    Em 1999, quando o padro HTML 4.01 apareceu pela primeira vez,ningum era capaz de prever o surgimento de blogs de video,redes sociais e ferramentas de produtividade web. O padro HTML5transformar a Internet em uma nova gerao de tecnologia e servios.

    Acelere ao mximo 34

    O OpenCL permite ao programador acelerar um aplicativo transferindoalguns clculos para o processador de grficos do computador.

    Face a face 41Softwares de reconhecimento facial esto se tornando cada vez maispopulares, alm de mais sofisticados. Mostramos como usar o softwarede cdigo livre libface para identificar pessoas em suas fotos.

    ZFS sob o sol 46

    O formato ZFS, da Sun, geralmente reverenciado como o maismoderno sistema de arquivos disponvel atualmente. O kernel Linux noproporciona suporte direto para o ZFS, mas o usurio pode encontraralternativas para us-lo tanto no espao do kernel quanto do usurio.

    http://lnm.com.br/article/5475http://lnm.com.br/article/5475http://lnm.com.br/article/5475http://lnm.com.br/article/5475http://lnm.com.br/article/5475http://lnm.com.br/article/5475http://lnm.com.br/article/5486http://lnm.com.br/article/5486http://lnm.com.br/article/5486http://lnm.com.br/article/5477http://lnm.com.br/article/5477http://lnm.com.br/article/5477http://lnm.com.br/article/5477http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5418http://lnm.com.br/article/5477http://lnm.com.br/article/5486http://lnm.com.br/article/5475
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    4/30

    5

    REDESAlternativa de peso 58

    O iSCSI oferece uma alternativa rpida e flexvel paraarmazenamento de arquivos em rede. A ferramentaiSCSI permite que voc configure o armazenamento dearquivos em sua prpria rede, sem a necessidade deuso de equipamento ou cabeamento especializado.

    TUTORIALElo perdido 63

    Conhea um novo mtodo para processar, combinar,analisar e apresentar informaes ocultas em dadosbrutos usando a plataforma Jena: web semnticae dados vinculados (linked data) para Java.

    VoIP com Asterisk parte IX 70

    O sistema telefnico ultrapassado, presente at poucotempo atrs nas empresas, prolfico em cobranas: cadanovo recurso ativado requer uma nova ativao de servio,com o preo adicionado ao pagamento mensal. horade mudar. hora de criar sua prpria central VoIP

    PROGRAMAOBusca com qualidade 72

    Analisamos a ferramenta de indexao OpenSearch Server e mostramos como integrar o recursode busca ao seu website utilizando PHP.

    SERVIOSEditorial 03

    Emails 06

    Linux.local 78

    Preview 82

    Linux Magazine #80 | Julho de 2011

    | NDICELinux Magazine 80

    COLUNASKlaus Knopper 08

    Charly Khnast 10

    Zack Brown 12

    Augusto Campos 13

    Kurt Seifried 16

    Alexandre Borges 20

    NOTCIASGeral 20

    Fim do Adobe AIR para Linux

    Xen completamente integrado ao Linux

    CORPORATENotcias 22

    Cisco apresenta novo sistema ASR9000

    Red Hat lana solues para gesto e desenvolvimento de nuvem

    eBay adquire Magento

    Oracle exige bilhes do GoogleOpen Virtualization Alliance ganha 65 novos membros

    Coluna: Jon maddog Hall 24

    Coluna: Alexandre Santos 26

    ANLISELies sobre localizao 50

    A topologia do servidor interno est se tornando cadavez mais complexa. Entender onde os processos estosendo executados no servidor pode ter um grandeimpacto no desempenho geral do sistema.

    Pequeno soldado 55

    O Sentinella automatiza a forma com que o computador monitora

    problemas com recursos e outros estados de sistema.

    http://lnm.com.br/article/5492http://lnm.com.br/article/5492http://lnm.com.br/article/5492http://lnm.com.br/article/5492http://lnm.com.br/article/5492http://lnm.com.br/article/5492http://lnm.com.br/article/5403http://lnm.com.br/article/5401http://lnm.com.br/article/5413http://lnm.com.br/article/5414http://lnm.com.br/article/5462http://lnm.com.br/article/5462http://lnm.com.br/article/5462http://lnm.com.br/article/5462http://lnm.com.br/article/5462http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5463http://lnm.com.br/article/5416http://lnm.com.br/article/5456http://lnm.com.br/article/5490http://lnm.com.br/article/5490http://lnm.com.br/article/5490http://lnm.com.br/article/5490http://lnm.com.br/article/5490http://lnm.com.br/article/5490http://lnm.com.br/article/5403http://lnm.com.br/article/5401http://lnm.com.br/article/5413http://lnm.com.br/article/5414http://lnm.com.br/article/5490http://lnm.com.br/article/5492http://lnm.com.br/article/5462http://lnm.com.br/article/5463http://lnm.com.br/article/5416http://lnm.com.br/article/5456
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    5/30

    6 www.linuxmagazine.com.br

    Emails para o editor

    Permissode escrita

    sanjagjen

    ero

    www

    .sxc

    .hu

    Escreva para ns! Sempre queremos sua opinio sobre a Linux Magazine e nossos artigos. Envie seus emails para

    [email protected] e compartilhe suas dvidas, opinies, sugestes e crticas. Infelizmente, devido ao

    volume de emails, no podemos garantir que seu email seja publicado, mas certo que ele ser lido e analisado.

    Aplicativo personalizadoO pessoa, cre uma cacuadora utzando ngua-gem C com GTK e compacte o programa em umpacote .deb.Gostara de saber como fao para que o programa sejaexbdo na aba acessros da mnha dstrbuo Lnux.Joo Vieira

    RespostaCaro Joo, para que o ataho seja exbdo no menu

    Acessros do Gnome ou do KDE basta que vocncua no seu pacote um arquvo do tpo .desktopcom os dados do apcatvo, como: nome, coman-do de execuo, cone, e seo do menu onde oapcatvo deve ser exbdo.

    No Gnome este arquvo deve icar no dretro /usr/share/applications/seu_programa.desktop.

    Como exempo, copo abaxo o contedo de um ar-quvo /usr/share/applications/gnome-terminal.desktop :

    [Desktop Entry]Name=TerminalComment=Use the command lineTryExec=gnome-terminalExec=gnome-terminalIcon=utilities-terminalType=ApplicationX-GNOME-DocPath=gnome-terminal/index.html

    X-GNOME-Bugzilla-Bugzilla=GNOMEX-GNOME-Bugzilla-Product=gnome-terminal

    X-GNOME-Bugzilla-Component=BugBuddyBugs

    X-GNOME-Bugzilla-Version=2.32.0Categories=GNOME;GTK;Utility;TerminalEmulator;

    StartupNotify=trueOnlyShowIn=GNOME;X-Ubuntu-Gettext-Domain=gnome-terminal

    Mas nformaes podem ser encontradas na documentaodo Gnome no endereo http://live.gnome.org/GnomeLove .

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    6/30

    13Linux Magazine #XX | Ms de 200X

    CO

    LUNA

    Coluna do Augusto

    Bons ventos sopramsobre o AndroidNovas iniciativas e alternativas esto surgindo no

    universo do desenvolvimento Android.

    Quem chega ao unverso Androd nteressado

    no fato de ee ser (em grande parte) um ss-tema de cdgo aberto (e por ncur o kerneLnux) acaba tendo grande nteresse pea possbdadede modicar o sstema e nteragr com ee em nvesmas avanados, assm como usuamente possve fazerem dstrbues Lnux no desktop. Mesmo quando essapossbdade no coocada em prtca, nteressan-te saber que ea est e que pode ser aprovetada poroutros, de forma que possamos coher os frutos, aina,sempre h agum desenvovedor nteressado em adaptaros recursos do sstema, agregar acessros e r am dasAPIs oicas, trocando a compatbdade por utdades

    adconas e mehor desempenho.No caso do Androd, essa stuao podera ser smbo-

    zada peo CyanogenMod [1], um irmware aternatvopara smartphones, e-readers e tabets, que mantdopor uma comundade de fs do Androd e compatvecom dezenas de modeos de aparehos. Ee oferece aseus usuros recursos que frequentemente icam defora nas verses de Androd embarcadas nos aparehospor seus fabrcantes e operadoras.

    Normamente, o desenvovmento deste tpo de a-

    ternatva se d sem quaquer apoo dos fabrcantes edesenvovedores orgnas ou, em determnados casos,tendo de dar com a resstnca e obstruo atvas pra-tcadas por ees, ncusve com travamentos fetos nohardware para evtar a execuo de sstemas aternatvos.

    Isso j fo tendnca quase gera, e va contnuara acontecer. Porm, no ina do prmero semestre,tvemos duas notcas muto postvas a respeto, n-dcando uma possve mudana de mar entre os fa-brcantes de aparehos.

    A prmera fo da HTC, cujo CEO veo a pbcoagradecer a pacnca dos seus usuros e airmar que

    va cessar com a prtca de travar o boot dos seusaparehos equpados com Androd acabando assmcom a medda antptca cujo objetvo era dicutar anstaao de sstemas aternatvos.

    Logo em seguda, fo notcado ago anda mas ex-tremo na aproxmao entre fabrcantes e hackers: aSamsung doou um apareho Gaaxy S II para um dosdesenvovedores do CyanogenMod, com o objetvoexpresso de factar a portabdade deste software a-ternatvo para o novo smartphone da empresa.

    Nada dsso garante aproxmaes ou aberturas dei-

    ntvas, mas so exceentes notcas que podem ajudar aampar o nve de abertura das pataformas mves, aomesmo tempo em que certamente consttuem crtrosadconas a consderar na hora de escoher o fabrcantede nossos prxmos produtos!

    Augusto Campos administrador de TI e, desde 1996, mantm o site BR-

    linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

    Mais informaes

    [1] CyanogenMod: http://www.cyanogenmod.com/

    O CyanogenMod umirmware alternatvo parasmartphones, e-readers

    e tablets, que mantdopor uma comundade

    de fs do Androd ecompatvel com dezenas

    de modelos de aparelhos.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    7/30

    18 www.linuxmagazine.com.br

    Coluna do Alexandre

    Introduo aoudev: controleseus dispositivosRelembre o uso do framework udev.

    Nesta couna (e possvemente nas prxmas),vou reembrar um assunto bastante nteres-sante do Lnux, mas que, no entanto, por

    mutas vezes esquecdo peos admnstradores: o fra-mework udev. Antgamente, os sstemas Unx (e aqutambm ncumos o Lnux), que referencam todoe quaquer hardware atravs de arquvos no sstema(ou anda devce nodes, se preferr), possuam umamanera bastante rudmentar de crar referncas paratas dspostvos, pos, como nunca se conheca de an-temo qua hardware estara presente na mquna, a

    nstaao do sstema operacona crava prevamen-te dezenas ou centenas de entradas (block devce ileou character devce ile) no dretro /dev, tentando,assm, se antecpar ao admnstrador e garantr queaquee dspostvo tera um arquvo representatvovdo daquee hardware.

    Estes arquvos crados no dretro /dev possuem a-guns atrbutos especas como major numbere mnornumber, sendo que o prmero expcta qua o drverusado para acessar aquee dspostvo e o segundo dzqua nstnca deste drver utzada para acessar de-

    termnado dspostvo. Expco: arquvos de dspostvosde boco (block devce ile) que referencam 4 dscos

    SCSI/SATA dntcos (sda, sdb, sdc...) tm o mesmomajor number(pos o Lnux faz uso do mesmo drverpara acess-os), mas mnor numbers dferentes, j que usada uma cpa dferente do drver para acessar cadaum dos dscos rgdos. A mesma gca se apca paraum nco dsco com mtpas partes, loop devce

    iles, usado para montar ISOs ou que tenha characterdevces para acesso a termnas (ttys). Note a sadade aguns arquvos de dspostvo do dretro /dev nalistagem 1, onde b block devce e c character dev-ce; o prmero nmero aps o tpo do dspostvo omajor numbere o segundo nmero o mnor number.

    Toda esta prestatvdade em crar este enormeconjunto de entradas em /dev muto nobre, pormtraz dversos probemas, j que, como a crao des-tas entradas antecpada, mutos dspostvos jamasexstro na mquna. Isso dexa pratcamente todosestes arquvos sem funo aguma e anda compcama sua vda quando voc tver de examnar o dretroem questo, pos ica dfc saber quas hardwaresexstem reamente na sua mquna. Por: magneque voc deseja utzar seu tablet (com Androd,

    espero), sua cmera dgta e seu pendrve. Cada vezque voc conectar estes dspostvos, ees sero atre-ados a um arquvo de dspostvo dferente (sda, sdb,sdc...), dependendo da ordem em que voc executaresta operao ou da ordem em que os seus drversforem carregados.

    Depos de dversas evoues, passando peo DevFSque fo excudo da rvore do kerne, os desenvove-dores do Lnux chegaram ao udev, que possu fun-es de gerencamento do dretro /dev para resoverestes probemas e tornar o manuseo de dspostvos

    muto mas smpes, com o bnus de dsponbzar

    Listagem 1: ls -l /dev

    01 brw-rw- 1 root disk 8, 1 2011-06-12 12:48 sda102 brw-rw- 1 root disk 8, 2 2011-06-12 12:48 sda203 brw-rw- 1 root disk 8, 5 2011-06-12 12:48 sda504 brw-rw- 1 root disk 7, 0 2011-06-12 12:48 loop005 brw-rw- 1 root disk 7, 1 2011-06-12 12:48 loop106 crw--w- 1 root tty 4, 10 2011-06-12 12:48 tty1007 crw--w- 1 root tty 4, 11 2011-06-12 12:48 tty11

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    8/30

    19Linux Magazine #80 | Julho de 2011

    estes hardwares e as suas propredades no arquvode sstema (ilesystem) montado no dretro /sys.

    Agumas vantagens do udev so:Crao dnmca de entradas para dspostvos

    em /dev; Controe na crao dos nomes dos dspostvos

    em /dev atravs de regras; Incazao dos dspostvos de hardware de

    manera dnmca (hotpug); Possbdade de renomeao de nterfaces

    de rede; Vncuao de scrpts para serem executados

    na ado ou remoo de um hardware; Mudana da propredade e permsso de

    um dspostvo.O etor pode utzar quaquer dstrbuo, como

    Ubuntu, Red Hat ou Suse, para fazer testes com o

    udev. Estou usando Ubuntu 11.04, pos aquea queest nstaada no meu netbook, embora no escon-da de nngum que preiro Red Hat ou Suse paraambentes crtcos. Caso o etor anda quera, podereazar o downoad do cdgo do udev e comp-o.Para fazer sso (no seu sstema podem ser exgdosoutros pacotes adconas), a partr da raz e comousuro root, dgte:

    # git clone git://git.kernel.org/pub/scm/linux/hotplug/udev.git udev-lm# apt-get install libacl1-dev# apt-get install glib-2.0# apt-get install gobject-*# apt-get install gperf# apt-get install gtk-doc-tools# cd /udev-lm# ./autogen.sh without-selinux disable--introspection# make

    # make udev/test-udev

    Agora voc pode executar o scrpt Per de testeque vem junto com o udev, o qua smua a ncusoe a remoo de dspostvos no sstema, de modo avericar se est tudo funconando bem:

    # perl test/udev-test.pl

    No ms que vem contnuamos a reembrar o usoe funconamento do udev. At a prxma.

    Alexandre Borges ([email protected], twitter: @ale_sp_brazil) Es-

    pecialista Snior em Solaris, OpenSolaris e Linux. Trabalha com desen-

    volvimento, segurana, administrao e anlise de desempenho desses

    sistemas operacionais, atuando como instrutor e consultor. pesquisa-

    dor de novas tecnologias e assuntos relacionados ao kernel.

    http://www.impacta.com.br/http://www.impacta.com.br/http://www.impacta.com.br/http://www.impacta.com.br/http://www.impacta.com.br/
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    9/30

    27Linux Magazine #80 | Julho de 2011

    C

    APA

    As novidades do mercado de tecnologia

    Novas tecnologiasComo possvel manter-se atualizado diante da revoluo de lanamentos no

    mercado de tecnologia, com o qual somos bombardeados todos os dias?

    por Flvia Jobstraibizer

    Acada da descobrmos uma nova forma de reazartarefas corrqueras, seja atravs de um novo dspo-stvo anado ou mesmo atravs de uma nova tec-nooga que surge. Os beneicos sessas novas tecnoogas,so nmeros: todos os das so anados dspostvos quefactam a vda do usuro de teefona ceuar, o prois-

    sona que desenvove sstemas conta com computadorescada vez menores, o gestor que necessta de conexo atodo momento, pode montar um ponto de acesso semio de onde estver, a escoa que deve fornecer recursospara seus aunos e pode utzar uma nova pataforma deaprendzagem onne, o departamento de uma empre-sa que atravs da mpementao de uma nova formade armazenamento de arquvos, economzou ao evtara compra de outro servdor etc., so mutas as vertentesque precsam da tecnooga e caro, se movmentamem torno dea e de suas novdades.

    Agumas novas tecnoogas tem um nve de obsoes-

    cnca to grande, que j nascem desatuazadas. ocaso dos tabets, dspostvos mves com ceuares e atmesmo notebooks. Lanado um hoje, amanh j exs-tem outros mehores ou com mas recursos. No raro,quando sequer descobrmos que uma nova tecnooga foanada, exstem outras vras ncatvas em torno dea,mehoradas e mas tes. Como acompanh-as? estaa pergunta que nos izemos quando decdmos agruparagumas dessas novdades nesta edo da Linux Ma-gazine, uma vez que, assm como a vda, a tecnoogase renventa e se renova todos os das.

    Vamos abordar agumas novdades tecnogcas queesto acendendo o mercado, como o caso do HTML5,

    que promete ser prncpa ator para o desenvovmentoweb da nova era da Internet.

    Apresentamos anda a tecnooga por trs das pacas devdeo. Seus processadores, como obter mehor desempe-nho e veocdade atravs de ccuos e scrpts especicosque as tornam mas eicentes e eicazes, com o openCL.

    Na rea de armazenamento e sstemas de arquvos, fa-aremos sobre o SCSI, que oferece uma aternatva rpdae lexve para armazenamento de arquvos em rede. Aferramenta permte que voc conigure o armazenamentode arquvos em sua prpra rede, sem a necessdade deuso de equpamento ou cabeamento especazado. Outraopo o ZFS, da Sun, que tdo como o mas moder-no sstema de arquvos dsponve atuamente. O kerneLnux no proporcona suporte dreto para o ZFS, masmostaremos as aternatvas para us-o tanto no espaodo kerne quanto do usuro.

    E para fechar esta edo, demonstraremos comofunconam os softwares de reconhecmento faca, queesto se tornando cada vez mas popuares, am demas soistcados. Aprenda como denticar pessoasem fotos e montar uma base para automatzao dereconhecmento faca em otes de magens.

    A nova era tecnogca j comeou, mantenha-se atu-azado e boa etura!

    Um novo comeo para o HTML 28

    Acelere ao mximo 34

    Face a face 41

    ZFS sob o sol 46

    Matrias de capa

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    10/30

    55

    | ANLISEMonitoramento de redes e sistemas

    Linux Magazine #80 | Julho de 2011

    Monitoramento de redes e sistemas

    PequenosoldadoO Sentinella automatiza a forma

    com que o computador monitora

    problemas com recursos e

    outros estados de sistema.

    Erik Brwaldt

    F

    erramentas de montoramen-to de rede como o Nagosobservam toda a sua rede e

    mandam um aerta caso aconteaagum probema. Isso se voc tvertempo e energa para conigurar anfraestrutura competa de aertasno programa. Se voc opera emmenor escaa, tavez seja mehorusar um pequeno sodado, emvez de um exrcto competo. OSentnella um desses apcatvosprtcos que supervsonam o seuprocessador, espao em dsco ou

    nterface de rede e mandam umaarme ou executam um determ-nado comando quando um pro-bema ocorre.

    A ferramenta de montoramen-to Sentnea j conqustou o seuespao nos repostros de mutasdstrbues, e possve que vocpossa nsta-o convenentementecom o Synaptc, YaST ou outro ge-rencador de pacotes. Se os pacotes

    bnros no estverem dsponves

    para a sua dstrbuo, voc podebaxar o arquvo do ste do proje-to [1] e reazar uma nstaao

    manua. O ste tem nformaesdetahadas sobre como conigurara ferramenta.

    Caso voc no use o desktopKDE, para o qua o Sentnea estotmzado, nstaar os arquvos b-nros normamente r nstaaro que necessro para executaro Sentnea no Gnome, Xfce ouLXDE sem sacricar recursos daferramenta.

    Executar o SentinellaDependendo da sua dstrbuoLnux, o processo de nstaao dopacote cra um tem no menu darea de trabaho. No Ubuntu 10.10,o Sentnea ica no menuAplcat-vos/Ferramentas de sstema.

    Quando aberto, o Sentnea exbdo em uma janea smpes. Nose ncomode em procurar por uma

    barra de botes ou menus, pos um

    grupo de opes no topo e no meoda janea j abrangem as prncpasfunes. Outros botes na metade

    nferor da tea oferecem aes quedependem das condes seecona-das (figura 1).

    As condes que dsparam umaao podem ser deindas de formagranuar, graas a provdencas caxasde seeo e mportao. Em vez demanter coniguraes padro, vocpode adconar entradas persona-zadas. Dependendo das condesque voc acona, as coniguraes

    mudaro para reletr o contexto. Ascategoras bscas ncuem: carga daCPU, utzao de memra, trfe-go de rede, am de da e hora. possve tambm seeconar aes aserem dsparadas de acordo com ocomportamento de outros progra-mas. Nesse caso, o Sentnea exbeuma janea stando todos os proces-sos correntes e oferecendo escohaspara a vsuazao. Por exempo, se

    voc tem um grande nmero de pro-

    AN

    LISE

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    11/30

    56 www.linuxmagazine.com.br

    ANLISE | Monitoramento de redes

    cessos atvos, pode querer destacarsomente os de usuros.

    Na parte nferor da janea, vocencontra ses aes que pode atrburs condes seeconadas. Quandoo evento seeconado ocorre, vocpode rencar ou desgar a mqu-na, cooc-a para dormr (sleep) outocar um aarme de aerta. Trs d-

    ferentes aarmes esto dsponves.Um modo muto mas lexve executar um comando quando umevento especico ocorre. Comoaternatva, voc pode inazar oprograma. Nesse caso, voc vernovamente uma sta de processospara escoha (figura 2).

    Aps inazar as coniguraes,voc pode comear a montorar osstema ccando em Start, no centro

    nferor da tea. A janea se tornar

    acnzentada e voc no poder verentradas adconas. O Sentneaexbe um cone de mensagem nopane para que voc possa fechar ajanea. Quando voc cca no cone,a janea do programa exbda nodesktop. Para inazar o programa,voc deve ccar com o boto dretodo mouse no cone no pane e ccar

    e seeconar a opo Qut.

    RiscoO Sentnea capaz de desgar ocomputador quando a carga da CPU menor do que 5% se voc assmescoher; contudo, voc precsa to-mar cudado com esse tpo de ao.Efetos ndesejados podem ocorrer,ncundo perda de dados, caso oSentnea feche o sstema durante

    uma rotna de backup, por exempo.

    No se preocupe, pos mesmo maconigurado o Sentnea no dan-icar seu hardware.

    Cenrios deaplicativosO Sentnea poder ajud-o aeconomzar energa se voc usa o

    software no aptop ou notebook. Aps seeconar CPU load comocondo, entre com o mnmo decarga dreta do sna de percen-tua. Para evtar que o seu compu-tador execute uma ao deindaantes que ocorra a condo, dei-na o perodo de tempo no qua acarga icar abaxo do mte espe-cicado para que o desgamentoocorra. necessro entrar com

    um perodo vdo de tempo para

    Figura 1: O programa fcil de usar, graas suainterface amigvel.

    Figura 2: Escolha de um programa ativo na janela deprocessos.

    Figura 3: O Sentinella pode ajud-lo a economizar energia. Figura 4: Monitoramento preventivo.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    12/30

    57

    | ANLISEMonitoramento de redes e sistemas

    Linux Magazine #80 | Julho de 2011

    que a conigurao seja concudacom sucesso. Abaxo, na janea doprograma, habte a ao Sleep eescoha Suspend ou Hibernate dreta. Certique-se de ter espaoem dsco suicente ou a ao pode

    provocar perda de dados (figura 3).Em outro cenro, o Sentnea

    pode ser t para admnstradoresde rede. Uma vez que o programa capaz de montorar trfego de rede,ee pode denticar e reportar ano-maas em tempo rea. Voc podemontorar a entrada e a sada de da-dos por meo das nterfaces atvas derede. Se os voumes estverem aba-xo de mtes determnados por um

    perodo de tempo, voc pode pedrpara dsparar um aarme.Um cenro como esse podera

    prevenr que transferncas de da-dos ndesejados e em arga escaaocorressem no ambente de serv-

    dor. Em ambentes heterogneos,em partcuar, essa uma formaeicente de denticar a nlun-ca de um maware. Para esse tpode montoramento, smpesmentemarque a opo Network trafic, de-

    ina as nterfaces de rede do sstemae voumes de dados e programe oaarme na seo de aes h trsmeodas para escoher no ado d-reto da janea (figura 4).

    ConclusoO software Sentnea assume a res-ponsabdade de montorar vrastarefas em um sstema e respondecom aes predeindas quando cer-

    tos estados de sstema ocorrem. Aferramenta fc e ntutva paranstaar; no entanto, os usuroscorrem rscos. Por exempo, o sof-tware no mostra uma mensagemde aerta quando um estado de

    sstema deindo ocorre antes dodesgamento ou da execuo daao deinda. O rsco de perda dedados rea. Antes de mpantaro programa, voc deve consderarcudadosamente quas aes so

    sgnicatvas no contexto de estadosespecicos do sstema.

    Mais informaes

    [1] Sentinella:http://sourceforge.net/projects/sentinella

    Gostou do artigo?

    Queremos ouvir sua opinio.Fale conosco em

    [email protected]

    Este artigo no nosso site:

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

    o

    a

    m.

    ?

    http://www.konsultex.com.br/http://www.konsultex.com.br/http://www.konsultex.com.br/http://www.konsultex.com.br/http://www.konsultex.com.br/
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    13/30

    63

    | TUTORIALApache Jena

    Linux Magazine #80 | Julho de 2011

    Apache Jena

    Elo perdidoConhea um novo mtodo para processar,

    combinar, analisar e apresentar informaes

    ocultas em dados brutos usando a

    plataforma Jena: web semntica e dados

    vinculados (linked data) para Java.por Ian Dickinson

    Ocomparthamento de dados um dos tpcos mas quentesatuamente na computao.

    As fontes podem ser desde APIs do Fa-cebook, dados centicos abertos e atdados pbcos gerados peo governoe dsponbzados gratutamente. Portodos os ados, h agum berandonovos dados para serem exporadospor desenvovedores e centstas dedados [1]. Nesse cenro, espera-seque projetstas, exporadores de dados

    e desenvovedores crem apcatvosde vaor para usuros inas, com re-cursos novos e nteressantes.

    Sendo um desenvovedor, comoabordar essa montanha de nforma-es? Que ferramentas e tcncassero tes? Mutas abordagens estodsponves, varando desde de sm-pes anse de arquvos com vaoresseparados por vrguas (CSV) em pa-nhas de dados, consuta em bancos

    de dados reaconas, chegando a fer-ramentas de arga escaa e dstrbudasde anse de nformaes na nuvem.

    Como cada tcnca possu vanta-gens e desvantagens, e ao nvs de

    fazer um evantamento competo detodas eas, vamos focar apenas emdados semntcos vncuados, masespecicamente na pataforma Jena.

    A web semnticaNo por acaso, as tcncas e deas daweb semntca acabaram ganhandouma reputao de compexdade edicudade. O modeo de XML pa-dro do RDF (Resource DescriptionFramework) grossero, razo pea qua

    modear o mundo rea pode revear nu-ances conltuosas. No entanto, em seunceo esto duas deas mportantes.

    A prmera a de que estruturas rcase expressvas de dados, descrevendo n-formaes sobre determnado assunto,podem ser construdas a partr de umconjunto de nformaes smpes so-bre o reaconamento entre pares deeementos: duas entdades nomeadasou uma entdade nomeada e um vaor,

    como um nmero.Um exempo smpes: suponhamosque o denticador para o artgo quevoc est endo artigo123 (votaremosa sso em breve); ento, a sentena Ian

    autor do artgo123, sobre Jena po-dera ser escrto com a segunte nhade cdgo, podendo ser representadograicamente como na figura 1.

    . Jena.

    Matematcamente, a estrutura exem-picada na igura umgrico dre-conado, que rotua os dos ns e suasextremdades. Para ser smpes, re mereferr a ee apenas como umgrico.Uma vez que cada decarao contmtpcamente trs eementos o assunto,o objeto e o nome do predcado queos ga , o termo trple usado paradenotar ta decarao. Isso eva a outrasexpresses como trplestore, para umbanco de dados consttudo de trpes.

    A segunda das duas deas mpor-tantes o nome das cosas que noso vaores, que representado porURIs. Um URI (Uniform Resource

    Identier, ou Identicador de RecursosUnforme) refere-se a um conjuntode denticadores deindos pea RFC2396. O mas mportante desse con-junto que ee ncu denticadoreshttp://para webstes famares. O usode URIs por denticadores tem duasconsequncas mportantes: prme-ro, todos os denticadores formameicazmente um grande namespace,mnmzando as chances de usar ac-

    dentamente um mesmo nome paraFigura 1: Uma representao grfica da sentena.

    TUT

    ORIAL

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    14/30

    64 www.linuxmagazine.com.br

    TUTORIAL | Apache Jena

    se referr a cosas dferentes. Segun-do, a maora dos URIs podem serresovdos ou procurados com umnavegador de Internet, de forma qued nformaes sobre o termo queest sendo denticado.

    Am das consequncas bvasde ter o sgnicado, ou a semntca,decarado expctamente, sso sgn-ica tambm que o responsve peamanuteno do domno web quehospeda o denticador tem agumaautordade sobre o uso ou sgnica-do pretenddo do termo. Am ds-so, quaquer um pode reutzar umtermo pubcado em um domno.

    As, a web semntca acaba enco-

    rajando esse tpo de ao. No entan-to, somente pessoas com dretos de

    escrta dreta sobre aquee domnopodem atuazar o sgnicado masdretamente assocado aos termos.

    Ento, para atuazar o exempo como uso de URIs, precsamos consderarquas denticadores usar. Sempre

    que possve, deve-se tentar reutzarvocaburos exstentes. O vocaburoDubln Core Metadata Intatve[2]possu um conjunto bem estabeecdode vocbuos para metadados conhe-cdos, como o autor de uma matra.O prpro artgo, as, eventuamenteganhar uma dentdade no espaoweb de quem pubca.

    Por enquanto, sso um rascu-nho. Imagne portanto o URI padro

    http://epimorphics.com/documents/draft#jena-1. O URI para dar cr-

    dtos ao autor deve ser tratado comcudado, porque uma pessoa no um recurso de nformao na web.Essa questo, ampamente debatda,tem uma sre de soues que voam do escopo deste artgo. Um

    URI eaborado com a casse Persondo vocaburo Friend of a Friend(FOAF, ou amgo do amgo) [3], sersuicente. Com essas mudanas, oexempo ica assm:

    rdf:type foaf:Person.

    dcterms:creator.

    .

    dcterms:subjectJena.

    rdf:typefoaf:Document.

    Caro que poderamos entrar emmutos detahes sobre as vras tecno-ogas de web semntca: nguagensde consuta, armazenamento perss-tente, vocaburos especicos e assmpor dante. Para focar na prtca, noentanto, faareremos apenas sobre

    como os trpes podem ser manpu-ados com cdgo Java usando o Jena.

    Apache JenaO Jena umframeworkJava de cdgoaberto para crar, armazenar, manpuare consutar dados semntcos na web.Fo desenvovdo orgnamente por pes-qusadores dos aboratros da HP noReno Undo e tem sdo ampamenteutzado desde seu prmero anamento

    em 2001. Em 2008, o tme do Jena de-xou a HP e, em 2009, o Jena se tornouum projeto ncubado na Apache [4].

    Ao nvs de star os recursos tc-ncos do Jena, vamos ntroduzr aabordagem de agumas partes doframework enquanto trabahamospor meo de exempos. Agumasnhas de termnooga bsca, noentanto, ajudaro.

    O grico descrto prevamente

    gerencado no cdgo Jena como um

    Listagem 1: Cdigo gerado pelo Schemagen no Doap.Java

    01 /** URL de uma homepage de um projeto, associada com exatamenteum projeto. */

    02 public static final Property homepage =m_model.createProperty( "http://usefulinc.com/ns/doap#homepage" )

    Listagem 2: O ncleo do Init.java

    01 public void run() {

    02 if (noTDB() || hasOption( "f" )) {03 // (re)criar a imagem TDB04 FileUtils.deleteQuietly( getTDBFile() );05 FileUtils.forceMkdir( getTDBFile() );06 Dataset dataset = TDBFactory.createDataset( getTdbLocation() );0708 // o nome do projeto um argumento requisitado09 String projectName = getArgs()[0];10 String projectURI = projectNamespace() + projectName;11 Resource project = dataset.getDefaultModel().

    createResource( projectURI );1213 project.addProperty( RDF.type, DOAP.Project );14 project.addProperty( DOAP.name, projectName );1516 // adicione descries a partir de opes de linhas de

    comando17 addOptionalProperty( project, DOAP.shortdesc, "s" );18 addOptionalProperty( project, DOAP.description, "d" );1920 System.out.println( String.format( "Criada nova descrio

    DOAP para %s projetos com %s triples", projectName,dataset.getDefaultModel().size() ) );

    21 }22 else {23 System.out.println( "Logbook j existe, nenhuma ao sendo

    tomada" );24 }25 }

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    15/30

    65

    | TUTORIALApache Jena

    Linux Magazine #80 | Julho de 2011

    objeto Model. O objeto , nos termos doJava, uma nterface ou especicao abs-trata que permte ao Jena fornecer vrostpos de objetos Model (armazenado namemra, no dsco, sem nterferncade dsco etc.) com uma API comum.

    O Model uma das abstraes chavesdo Jena para dar com RDF.Um recurso no modeo, denotado

    por uma URI, representado por umobjeto Resource, enquanto um vaor,como um nmero, um Literal. Opredcado que ga os ns do gricoso objetos Property, e Property umasubcasse de Resource. Fnamente,um objeto Statement representa umtrpe. Um determnado Statement ter

    um assunto Resource, um predcadoProperty e um objeto, que pode sertanto um Resourcequanto um Literal.

    Chega de teora. Vamos ver umpouco de cdgo.

    Exemplo de aplicativoSuponhamos que voc quera compar-thar detahes com outros desenvo-vedores de cdgo aberto, como, por

    exempo, o nome do projeto, a oca-zao do repostro fonte, quem esttrabahando nee e assm por dante.Fezmente, um vocaburo j exstepara gravar esse tpo de nformao:DOAP (Descrpton of a Project, ou

    descro de um projeto) [5][6].Concdentemente, os projetos daApache so encorajados a usar arqu-vos DOAP. Embora o DOAP forme onceo de um caderno de notas de umapcatvo, voc deve ter a possbdadede adconar outras nformaes quepaream reevantes sem ser restrngdopor esquemas rgdos de dados.

    Projetar uma ferramenta vsua rcaem recursos para crar e edtar arqu-

    vos DOAP est am do escopo desteartgo. Em vez dsso, tenho a meta decrar um conjunto de ferramentas denhas de comando e atuazar um d-ro de bordo, mprmr um reatro eenrquec-o ao mescar nformaesa partr de uma fonte externa.

    O objetvo deste mnprojeto gerare manter dados DOAP para um proje-to em partcuar; assm, eu presumre

    que os dados DOAP esto armazenadosno dretro do prpro projeto. Como tempo, meu objetvo poder ser ode desenvover a ferramenta para ar-mazenar mas do que smpes dadosDOAP, tavez at ncur controe de

    tempo, entre outras nformaes. Poressa razo, vou generazar o nome echam-o smpesmente de ProjetoDro de Bordo, representado peotermo plb. Para brncar com o cdgo,veja o quadro 1.

    Uma escoha razove para o projetosera armazenar os dados em um sm-pes arquvo RDF. No entanto, comomeu o objetvo ustrar os vros recur-sos do Jena, vamos armazenar o RDF

    gerado em um trpestore persstente.O Jena tem uma sre de soues dearmazenamento RDF persstentes.Vamos usar o TDB, customzado paratrpestore, com a capacdade de arma-zenar um grande nmeros de trpescom eicnca sem requerer um bancode dados reacona adcona, como oMySQL, por exempo.

    O TDB pode suportar ordens demagntude muto maor que aqueasque eu vou gerar agora, mas ee tor-

    na bem dreta a tarefa de atuazar obanco de dados persstente.

    Listagem 3: Consultar o ref:type

    01 /** O recurso com URI tem rdf:type t? */02 public boolean hasType( String u, Resource t ) {03 return getModel().getResource( u ).hasProperty( RDF.type, t );04 }

    Listagem 4: Acumular documentos RDF descobertos pormeio do sindice.com

    01 // fase de leitura: adicione os documentos em um modelo combinado02 Model m = ModelFactory.createDefaultModel();03 for (ResIterator i = sIndex.listSubjectsWithProperty( RDF.type,Sindice.Result ); i.hasNext(); ) {

    04 String docURL = i.next().getPropertyResourceValue(Sindice.link ).getURI();

    0506 // poderamos ser mais sofisticados sobre a provenincia dos recursos07 try {08 m.read( docURL );09 }10 catch (RuntimeException e) {11 // alerte sobre falha de leitura, mas siga na leitura de

    outros documentos12 log.warn( String.format( Failed to retrieve from %s

    because: %s, docURL, e.getMessage() ) );13 }14 }

    Quadro 1: Teste o cdigo

    Para o projeto, voc precisar de

    um compilador Java que suporte

    Java 1.6. Eu estou usando tam-

    bm o Maven para gerenciar o

    Jena e outras bibliotecas depen-

    dentes. Ento, voc precisar da

    verso mais recente do mvn. Final-mente, o cdigo est no reposit-

    rio Git e o exemplo tambm lidacom metadata Git, de modo que

    voc precisar do Git instalado. O

    pom.xml, no diretrio raiz do proje-to, lista as dependncias de soft-

    ware. O Maven instalar todos au-

    tomaticamente como necessrio.

    Para clonar o projeto do repositrio

    Git, use o seguinte comando:

    git clone [email protected]:epimorphics/epimorphics-open/jena-plb-tutorial.git

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    16/30

    66 www.linuxmagazine.com.br

    TUTORIAL | Apache Jena

    Incio do projetoO probema tem quatro componen-tes: ncazar o projeto, atuazar adescro DOAP manuamente, au-mentar a descro automatcamen-te e reportar o peri DOAP. Cada

    componente chamado pea nhade comando (quadro 2).Incazar o projeto ago dreto:

    voc precsar crar o eemento dearmazenamento TDB (ou recrar seo usuro quser forar a crao deum novo eemento de armazenamen-to) e adconar um recurso root pararepresentar o projeto DOAP que es-tou descrevendo. Crar um eemen-to de armazenamento TDB requer

    um dretro para os dados vamosusar o ./.plb/tdb por padro e umchamado Java. O chamado umanha getTdbLocation(), mtodo queretorna uma strng especicamenteno dretro TDB.

    Dataset dataset = TDBFactory.createDataset( getTdbLocation() );

    Crar o recurso root para o projeto concetuamente smpes: precso so-mente um URI para denotar o projeto e

    esse deve ser atrbudo ao doap:Project.Aqu,doap: o componentenamespacedo URI e se expande parahttp://usefu-linc.com/ns/doap#, enquantoProject onome de uma casse RDFS. Matemat-camente, casses RDFS (RDF Schemaou Esquema RDF) correspondem aconjuntos de cosas que comparthamcaracterstcas semehantes o conjuntode todas as cosas que so descres deprojetos, por exempo.

    Para desenvovedores, nteres-sante pensar nas casses RDFS comoanogas aos types na nguagem Javaou outras nguagens de programa-o. Tenha em mente, no entanto,que as casses Java e as casses RDFStm dferenas mportantes. Em par-tcuar, medda que voc descobremas nformaes sobre um recurso,voc poder achar que se trata de ummembro de uma casse que voc no

    saba de que faza parte. Am dsso,

    um recurso pode ser membro de mu-tas casses ao mesmo tempo.

    Obter o cdgo Java para fazer comque o recm crado projeto seja membroda cassedoap:Project va requerer umnovo trpe, com o projeto como assun-

    to, o predcado especa rdf:typecomopropredade e um recurso denotandoa casse doap:Projectcomo um objeto.O URI doap:Project no muda (a noser que o esquema mude), ento esteser deindo como constante. Emboraseja possve escrever manuamente adecarao de uma constante no cd-go, correramos o rsco de fazer erros detranscro e crar probemas de manu-teno com a mudana de esquema.

    Fezmente, o Jena oferece umaferramenta que gera um cdgo Javaautomatcamente a partr de um ar-quvo RDFS, oschemagen. A casse Javagerada deine constantes para cada umadas casses, propredades e recursos n-

    dvduas deindos no arquvo. A ferra-menta Schemagen pode ser executadaa partr da nha de comando ou comoum pugn Maven [7]. Uma amostrado cdgo gerado aparece na listagem1. Os vocaburos competos esto

    ncudos no projeto para downoad.Consderando que eu tenho acesso spropredades e casses DOAP por meoda casse DOAP.java, o nco do projeto dreto, como mostrado na listagem 2.

    Incluso manual nodirio de bordoMutos bts de nformao t sobreum projeto devem ser capturados,

    ncusve as vras propredades dfe-rentes utzadas peo DOAP. Assm,eu quero que meus usuros possamadconar nformaes de forma n-crementa. No entanto, necessroatngr um baano na nterface apre-

    Listagem 4: Acumular documentos RDF descobertos pormeio do sindice.com

    01 // fase de leitura: adicione os documentos em um modelo combinado02 Model m = ModelFactory.createDefaultModel();03 for (ResIterator i = sIndex.listSubjectsWithProperty(

    RDF.type, Sindice.Result ); i.hasNext(); ) {04 String docURL = i.next().getPropertyResourceValue(

    Sindice.link ).getURI();0506 // poderamos ser mais sofisticados sobre a provenincia dos recursos07 try {08 m.read( docURL );09 }10 catch (RuntimeException e) {11 // alerte sobre falha de leitura, mas siga na leitura de

    outros documentos12 log.warn( String.format( "Failed to retrieve from %s

    because: %s", docURL, e.getMessage() ) );13 }

    14 }

    Listagem 5: Modelo de consulta

    01 String queryString = String.format( "describe ?s where{?s \"%s\"}", FOAF.mbox_sha1sum.getURI(), mboxSha1 );

    02 // analise a consulta03 Query query = QueryFactory.create( queryString ) ;04 // vincule ao modelo05 QueryExecution qexec = QueryExecutionFactory.create(

    query, collected );06 // faa a consulta07 dev.getModel().add( qexec.execDescribe() );

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    17/30

    67

    | TUTORIALApache Jena

    Linux Magazine #80 | Julho de 2011

    sentada aos usuros. Como no hmodeo de dados ixo, o RDF permteque quaquer predcado seja anexadoa quaquer recurso, agumas vezes de-carado como quaquer um pode dzerquaquer cosa sobre quaquer cosa.

    Esse modeo pode ser muto pode-roso, mas tanta abertura pode dicu-tar as cosas. Por exempo, h agumasrestres na estruturao da nteraodo usuro. Nesse caso, no espero queos usuros dgtem uma propredadeURI competa ou nha de comando spara adconar um trpe para a descr-o do projeto; ento, permtre quequaquer propredade no vocaburodo DOAP seja abrevada somente com

    seu nome de oca, menos o namespa-ce. Os usuros dgtaro ago como:

    $> plb set language Java$> plb set -r release 1.0.1

    Esses dos comandos adco-nam vaores para doap:language edoap:release; a bandera -r subst-tu um vaor exstente armazenado.

    O cdgo RDF especico na cassede ao Set pequeno: a maor partedo cdgo ocupada com checagem

    de rotna e manpuao de argumen-

    tos. A deino da casse competapode ser encontrada no downoad.

    Com Jena, toda nformao deestado mantda no objeto Model.No entanto, um objeto Resourcecontm refernca para o Model que

    o contm. Ento, eu posso pergun-tar ao Resource peos seus trpes re-aconados, ou seja, pergunto se umdetermnado URI corresponde aorecurso com um rdf:type em part-cuar (aqu atrbudo ao parmetrotype; listagem 3).

    Dado um Resource denotando oprojeto, posso adconar um novotrpe com esse recurso como umassunto, usando o mtodo addPro-

    perty. J que eu opte por usar ummodeo baseado em TDB persstente,eu no precso fazer uma chamadaseparada para savar os trpes atua-zados no dsco.

    Dados automticosno dirio de bordo

    At ento, eu cre um novo drode bordo usando TDB e uma arma-zenagem trpe, dein um recurso

    para representar o projeto e permt

    que os usuros anexassem agumaspropredades nha de comando. um comeo sdo, mas no fezmuto anda pea web semntca eos prncpos de dados gados.

    Meu projeto tem aguns desenvo-

    vedores. Deste modo, vamos assumrque eu quero anotar no meu drode bordo quasquer nformaes quepossam ser coetadas sobre ees parater a vso mas ie possve sobreo projeto. Para evtar questes deprvacdade, vamos usar somentenformaes pbcas.

    Qua sera a estratga? Se o projetoest usando um sstema de gerenca-mento de recursos, posso star todos

    ees facmente. Nesse tutora, voupresumr que o cdgo gerencadopor um repostro Gt. Agum pro-cessamento smpes do og do Gtstar os desenvovedores por nomee e-ma e podemos usar o endere-o de e-ma como uma chave parareunr mas dados.

    Amgo do amgo (Friend of aFrend ou FOAF [8]) outro vo-caburo RDF usado ampamen-te. As pessoas utzam FOAF para

    pubcar dados pessoas, como

    Listagem 6: Listar todos os desenvolvedores do projeto

    01 $ sp="prefix foaf: prefix doap: prefixplb: prefix rdf:

    02 $ tdbquery --loc=.plb/tdb "$sp select ?p ?e ?w {?p a doap:Project . ?p doap:developer ?d. optional{?d foaf:mbox ?e ; foaf:homepage ?w}}"

    03 --------------------------------------------------------------------------------04 | p | e | w |05 ================================================================================06 | plb:plb | "mailto:[email protected]" | |07 | plb:plb | "mailto:[email protected]" | |

    08 --------------------------------------------------------------------------------

    Listagem 7: Listar todas as propriedades do projeto

    01 $ tdbquery --loc=.plb/tdb "$sp select ?p ?o where {?proj a plb:root . ?proj ?p ?o} order by ?p"02 ----------------------------------------------------------------------------------------03 | p | o |04 ========================================================================================05 | doap:description | "A Jena tutorial showing how to create DOAP project descriptions" |06 | doap:developer | |07 | doap:name | "plb" |08 | doap:shortdesc | "Jena PLB tutorial" |09 | rdf:type | doap:Project |10 ----------------------------------------------------------------------------------------

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    18/30

    68 www.linuxmagazine.com.br

    TUTORIAL | Apache Jena

    webstes, detahes de contato, n-teresses e amgos que conhecempor refernca de peris de outrosamgos. A prncpo, eu poderausar esses detahes do og ncapara procurar nformaes pbcas

    dos membros e adconar automa-tcamente ao dro de bordo. Nahstra nca do FOAF, a prtcade dsfarar endereos de e-mapara evtar spams era uma meddacomum contra estes; assm, prec-samos buscar pea soma SHA1 dosendereos de e-ma dos meus de-senvovedores. Um agortmo deapara obter essa nformao sera:

    for each unique committer C

    let m be the email address of Clet s be sha1( m )run the sparql query:describe ?person where

    {?person foaf:mbox_sha1sumvalue of s}

    A nguagem SPARQL a padropara fazer consutas em armazena-gens trpe RDF e totamente su-portada peo Jena. Ea tem quatroverbos de consuta:

    select: entrega nha de vaorescorrespondentes, semehante s ar-mazenagens reaconas SQL;

    ask: conirma se um padro deconsuta pode ser corresponddo;

    construct: cra um novo grico

    com o uso de tempates e padres econsutas;describe: transfere a responsa-

    bdade de retornar uma descrot de um recurso para um servdor,suportando especicamente o casono qua o cente no sabe a estrutu-ra do grico contendo um recursoem partcuar.

    Tpcamente, o servdor retornaagum tpo de descro vncuada [9].

    O ponto chave, aqu, que o cen-te meu programa no sabe os es-quemas que podem ser usados paraanotar um recurso partcuar, razopea qua os verbos descrtos so tespara obter um conjunto de dados quepodem ser processados ocamente.

    O nco probema com meu ago-rtmo, que, no momento da escrta,um servo dsponve pubcamenteque agregava dados FOAF de m-tpos pontos de pubcao icou

    ndsponve. No entanto, o projetode servo de pesqusa Sndce [10]proporcona um ndce navegvepara todos os documentos RDF quepossam ser detectados. Posso emendarmeu agortmo da segunte manera:

    for each unique committer Clet m be the email address of C

    let s be sha1( m )query sindice.com for docs

    mentioning sfor each found document

    accumulate the docinto local model L

    run the sparql query against model L:describe ?person where

    {?person foaf:mbox_sha1sumvalor do s}

    A prncpo, o programa poderaobter uma sta de desenvovedores dequaquer fonte de sstema de gerenca-mento, no entanto o tutora somenteda com o repostro Gt. O retorno

    daquea parte de cdgo um Modeldo

    Jena, contendo recursos denotando osdesenvovedores no projeto, cada umcom um foaf:mbox denotando seu en-dereo de e-ma como dado ao Gt.O que so esses recursos, no entanto?Uma vez que eu no se as reas dent-

    dades dos desenvovedores, apenas umdos endereos de e-ma, que recursoURI deve ser usado para denotar cadadesenvovedor? Eu podera crar umdenticador, porm o RDF tambmpermte um tpo especa de recursochamado recurso annmo (anonymousresource). Esse recurso age como qua-quer outro, exceto peo fato de no terdentdade conhecda. Por razes hs-trcas, normamente chamado de

    bNode, que pode ser usado como umaocador de recurso, sobre o qua co-nheo a exstnca e propredades, masno conheo a dentdade. No exempoplb, eu cro bNodes para denotar osdesenvovedores antes de reunr nfor-maes sobre ees de fontes pbcas.

    A API Sndce muto fc: schamar http://sindice.com/search?q=com o termo de busca depos do s-na de gua (=). Esse endereo usanegocao de contedo HTTP

    para determnar o formato no quadeve retornar resutados, o que fazda busca ago muto natura para oJena, uma vez que o mtodo Model.read() faz com que o tpo favorto decontedo v ao RDF. Para procurarpor todos os documentos que men-conam uma caxa de correo SHA1em partcuar, mboxSha1, tudo o queeu tenho de fazer dgtar:

    Model sIndex = ModelFactory.createDefaultModel();

    sIndex.read( http://api.sindice.com/v2/search?q= + mboxSha1 );

    O Model resutante contm umconjunto de recursos sindice:Resultdenotando as buscas. Para cada umadas buscas, eu tento executar o nkpara o documento orgna, tendoem mente que sso pode fahar se odocumento fo ndexado h agum

    tempo. Alistagem 4

    mostra o processo.

    Quadro 2: Empacotador delinhas de comando

    Uma variedade de comandos pode

    ser executada de um shell. Em vez

    de um script Bash para cada um

    deles, um script empacotado, plb,pode chamar um conjunto de co-

    mandos diferentes. Veja o exemplo:

    plb init test-project

    O script Bash plb chama um pro-grama Java para desempenhar o

    comando predefinido no primeiroargumento, com a conveno de

    que um comando cmd correspondea classe Java com.epimorphics.plb.Cmd. Para ter dependncias no cami-nho da classe, o script empacotador

    executa o programa com mvn:exec,que, por sua vez, executa um pro-

    grama Java arbitrrio com todas as

    dependncias do pom.xml, baixandoas dependncias que faltam antes,

    se necessrio. O script Bash est no

    diretrio bin do projeto plb.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    19/30

    69

    | TUTORIALApache Jena

    Linux Magazine #80 | Julho de 2011

    Dado um modeo que contenhatrpes potencamente reevantese acumuadas, eu posso executara consuta descrta (listagem 5).Aqu, collected (linha 5) o modeocontendo os trpes dos documen-

    tos que foram coetados da web edev (linha 7) so os recursos para odesenvovedor sendo adconados descro do projeto.

    Resta um passo. Eu utze mu-tas nformaes da web. O modeoncu uma sre de fontes denotan-do a mesma pessoa, aguma deassendo bNodes; e eu gostara de sm-picar o grico, mescando essasfontes redundantes.

    O Jena no tem uma ferramentanterna para fazer sso, mas no dfc com a propredade foaf:mbox_sha1sum, que uma boa chave dedesambguao. Em gera, essetpo de mescagem de nforma-o pode ser bem compexo, masno com essa smpes abordagem.Fnamente, adcone os resuta-dos da consuta describe para meumodeo TDB persstente.

    RelatriosA SPARQL t tambm quandoquero produzr reatros smpes apartr do dro de bordo. O coman-do tdbquery est dsponve na nsta-ao competa do Jena e executauma consuta contra um modeoTDB da nha de comando. Porexempo, eu podera star todos osdesenvovedores no projeto com osseus stes, se conhecdos (listagem

    6), ou star cada propredade doprojeto (listagem 7). Obvamente,eu podera escrever reatros mutomas abrangentes, mas precsara detutoras separados para sso.

    ConclusoMeu objetvo com este artgo fo ntro-duzr os recursos Jena para uma tarefaprtca. No pretendo, com sso, ofe-recer a mehor forma de gerar peris

    DOAP. Na verdade, o pugn Maven

    faz esse trabaho. No entanto, a comb-nao de um formato lexve de dadose a habdade de mescar nformaesde mtpas fontes na web mostra aspossbdades tanto do Jena em rea-o abordagem de web semntca e

    dados vncuados em gera.O Jena est, atuamente, ncubadona Apache, e contrbues so bemvndas: bugs, sugestes, correes etc.Mas nformaes esto dsponvesno ste do Jena.

    Mais informaes

    [1] What is Data Science?por Mike Loukides,OReilly Radar, junho de2010: http://radar.oreilly.com/2010/06/what-is-data-science.html

    [2] Dublin Core MetadataInitiative: http://dublincore.org/

    [3] Vocabulrio FOAF: http://xmlns.com/foaf/spec/

    [4] Projeto Apache Jena: http://incubator.apache.org/jena

    [5] Vocabulrio DOAP: http://usefulinc.com/ns/doap#

    [6] Pgina DOAP: http://trac.usefulinc.com/doap

    [7] Cdigo-fonte Jena: http://jena.sourceforge.net/downloads.html

    [8] Projeto Friend of aFriend: http://www.foaf-project.org/

    [9] Descrio vinculada:http://goo.gl/rOjmt

    [10] Servio Sindice: http://www.sindice.com/

    Gostou do artigo?

    Queremos ouvir sua opinio.

    Fale conosco em

    [email protected]

    Este artigo no nosso site:http://lnm.com.br/article/5494r/art

    ine.c

    :4

    inio.

    r

    http://www.f13.com.br/http://www.f13.com.br/http://www.f13.com.br/http://www.f13.com.br/
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    20/30

    70 www.linuxmagazine.com.br

    TUTORIAL | VoIP com Asterisk - parte IX

    Asterisk descomplicado

    VoIP comAsterisk parte IX

    O sistema telefnico ultrapassado, presente at pouco tempo atrs nas empresas, prolfico

    em cobranas: cada novo recurso ativado requer uma nova ativao de servio, com o preo

    adicionado ao pagamento mensal. hora de mudar. hora de criar sua prpria central VoIP.

    por Stefan Wintermeyer

    Na edo 79 da Linux Maga-zine

    , voc aprendeu sobrecomo provsonar suas exten-ses atravs de DHCP, recursos de stateefnca e redreconamento de cha-madas. Nesta edo, vamos abordar oprovsonamento de ramas va DHCP,para mpantao em massa de ramascom um nco arquvo de conigura-o. Vamos ver anda como trabaharcom agenda teefnca. Mos a obra!

    Provisionamentopor DHCP

    A mpantao de ramas em massa, deinda como um processo ondevros teefones equpados com umanca conigurao passam a funconarautomatcamente. O softwareAmoo-ma Gemenschaft, (Comundade) [1]abordado na edo anteror, usa parao provsonamento coetvo de ramas,um mtodo que podera ser apcado

    em nstaaes de outros procesostecnogcos: um servdor DHCPbusca todos os teefones e confere acada um uma URL que correspondeao seu respectvo arquvo de conigu-rao. Um exempo de coniguraode ramas em massa va DHCP podeser conferdo na listagem 1.

    Comumente utzados na teefonaVoIP, os teefones Snom [2] em osogs do servdor DHCP, sendo assm,

    o apareho reconhece os trs prmeros

    bytes do endereo MAC do dspostvo

    e cra uma sequnca de ramas. Ento,para o servdor DHCP, o teefone no apenas uma conigurao de rede,mas tambm o nome de um servdorTFTP e um arquvo de ncazaodo rama com seu respectvo nome.

    O teefone Snom converte o en-

    dereo MAC do apareho de boo-tie-name por um endereo {}mac (para outros teefones podeser necessro nstaar o mduoMod_rewrite do Apache). Isto garanteao servdor de provsonamento que

    Listagem 1: dhcpd.conf01 ;-02 ; Chamar o ramal 123456703 ;-04 exten => 1234567,1,Verbose(${CALLERID(num)})05 exten => 1234567,n,GOToIf($[${CALLINGPRES}=35]?abuse1|1)

    06 exten => 1234567,n,Dial(SIP/1001,30)07 exten => 1234567,n,Playback(local/ed-greeting)08 exten => 1234567,n,VoiceMail(1001@default)09 exten => 1234567,n,Hangup()10 ;-11 ; Tratamento de chamadas annimas12 ; Local dos arquivos de udio abaixo13 ; /var/lib/asterisk/sounds/local14 ;-15 exten => abuse1,1,Answer16 exten => abuse1,n,Wait(1)17 exten => abuse1,n,Monitor()18 exten => abuse1,n,Playback(local/ed-greeting_offenders)19 exten => abuse1,n,WaitForSilence(500)20 exten => abuse1,n,Playback(local/ed-ola)21 exten => abuse1,n,WaitForSilence(500)22 exten => abuse1,n,Playback(local/ed-assinatura_nao_reconhecida)23 exten => abuse1,n,WaitForSilence(1200)24 exten =>25 abuse1,n,Playback(local/ed-entao_o_que_posso_fazer_por_voces)26 exten => abuse1,n,WaitForSilence(1000)27 exten =>28 abuse1,n,Playback(local/ed-o_que_especificamente)29 exten => abuse1,n,WaitForSilence(2000)30 exten => abuse1,n,Wait(1)31 exten => abuse1,n,Playback(local/ed-numero_restrito)32 exten =>33 abuse1,n,Playback(local/ed-infelizmente_sou_apenas_um_computador)34 exten => abuse1,n,StopMonitor()35 exten => abuse1,n,VoiceMail(1001@default)36 exten => abuse1,n,Hangup

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    21/30

    71

    | TUTORIALVoIP com Asterisk - parte IX

    Linux Magazine #80 | Julho de 2011

    o dspostvo MAC r receber umcabeaho HTTP com um nome,

    como por exempo, Snom 370.Um scrpt PHP chamado gera aconigurao ao ncar. A conigura-o para cada fabrcante dferente,com um teefone Snom em um casosmpes como na listagem 2 voc podetransformar quaquer extenso e per-sonazar as tecas do teefone. Como Comunidade tambm possveconigurar os botes em uma nterfaceweb (figura 1). J os teefones Aastrapermtem que voc seecone uma va-

    redade de coniguraes do servdor deprovsonamento os teefones Snomtem muto a mehorar neste questo.

    Releitura daconfigurao

    A manera mas fc de conigurarum teefone Snom novo, reazan-do um reboot neste, chamando emconjunto o scrpt:

    wget -q -O /dev/null -o/dev/null http://UIP_do_

    telefone/confirm.htm?REBOOT=yes

    No entanto, assume-se que o serv-dor Snom oca (o do prpro apareho)est habtado e que no h nenhu-ma proteo por senha. Mas, se umasenha estver conigurada, nforme-ano comando wget. Aps a rencaza-o do apareho, a nova coniguraodo servdor de provsonamento do

    apareho ser da. Aternatvamente,

    voc pode envar a conigurao eefetuar o renco do apareho atravs

    de um dspostvo SIP Notfy persona-zado, como o arquvo /etc/asterisk/sip_notify.conf ustrado a segur:[snom-check-cfg]Event=>check-sync;reboot=falseContent-Length=>0[snom-reboot]Event=>rebootContent-Length=>0

    Agora dgte o comando sip notifysnom-check-cfg 1234 no termna, paracarregar a nova conigurao no teefone.O comando no She uma chamada

    equvaente ao comando asterisk -rx\sip notify snom-check-cfg 1234\.

    Agenda eencaminhamentoEm uma empresa, no pode fatar umaagenda teefnca centrazada, com aqua todos os teefones se comunqueme todos os seus usuros tenham acesso.Todos os kts de ferramentas do Astersk

    fornecem uma agenda de teefones emuma nterface web nteratva, e quepode ser personazada de acordo coma necessdade do usuro, conforto quedepende do teefone conectado (agunsteefones no nteragem bem com oComunidade). O software tambmpermte que a agenda de teefones sejaexbda no vsor do apareho (figura 2),atravs de um navegador XML. Outrosrecursos presentes no vsor do teefone

    ncuem funo de busca e ordenao.

    Mutos usuros usam o recurso deencamnhamento de chamadas para os

    teefones, e o Comundadeas efetua deforma centrazada no servdor, gravandoogs de cada uma deas. Eas podem serconiguradas atravs da nterface webou um cdgo de servo no teefone.

    Na prxma edo da Linux Ma-gazine, na tma parte deste tutora,voc r aprender como trabaharcom scrpts automatzados. At !

    Listagem 2: Configurao

    do telefone Snom01 language: English02 time_24_format: on03 date_us_format: off04 user_host1: 192.168.1.13005 user_name1: 123406 user_pname1: 123407 user_pass1: Sippasswort08 user_realname1: Paula Plauder09 active_line: 1

    Mais informaes[1] Amooma Gemeinschaft ou

    Comunidade: http://www.amooma.de/gemeinschaft/

    [2] Srie de telefones Snom:http://www.snom.com/de/products.html

    Gostou do artigo?Queremos ouvir sua opinio.Fale conosco [email protected]

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

    sr/art

    .co

    :51

    igoo.

    Figura 1:Agenda de telefones do software Comunidade.

    Figura 2: O Snom 370 mostra a agenda de contatosusando o navegador XML do servidor Asterisk.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    22/30

    72 www.linuxmagazine.com.br

    PROGRAMAO | Open Search Server

    Servidor de busca aberto

    Busca comqualidade

    Analisamos a ferramenta de indexao

    Open Search Server e mostramos

    como integrar o recurso de busca

    ao seu website utilizando PHP.

    por Markus Feilner, Thomas

    Pfeiffer e Markus Heller

    Astartup (empresa de tecnoogarecm crada) francesa Jaeksoftfo crada em feverero de 2010.Apenas um anos depos, o fabrcanteanou a verso 1.2 de sua ferramentade busca e ndexao, o Open SearchServer[1]. Sua reatva maturdade evdente, assm como aguns aborrec-mentos. Mas tambm h uma quantdede recursos mpressonantes.

    Indexao livreDe acordo com seu fornecedor, oOpen Search Server (OSS) va vas-cuhar sstemas de arquvos, bancos dedados e stes para crar rapdamentendces conives e dar suporte a umprocesso precso de nvestgao. Emoutras paavras, voc pode usar o OSS

    para adconar funes de busca a umwebste ou outro banco de dados epode at construr uma mquna debusca agregada para ndexar e buscardados de mtpas fontes na Internet.O ndexador OSS suporta uma ongasta de formatos de arquvos. Uma APIest dsponve para acesso rpdo e semcompcao a resutados e a maorade seus mutos recursos (figura 1).

    O acerce da ferramenta o Javaem um servdor Tomcat[2]. O meca-nsmo de busca Lucene [3] permteque admnstradores e desenvovedoresusem sua sntaxe de nterpretador deconsutas e funes de cassicao forado gerencamento da nterface (qua-dro 1). O OSS depende do Quartz [4]como agendador. A nterface, rpda e

    lexve, mpementada em Zkoss [5]e funcona com quaquer navegadorcompatve com Ajax.

    Suporte corporativoAm da varante vre, anada sob mu-tas cenas (ncundo AGPL e GPLv3)por conta de sua estrutura moduar, ofornecedor, a Jaeksoft, tambm ofereceuma verso corporatva, com suporte

    opcona, acordo de nve de servo(Servce Leve Agreement - SLA) e re-curso avanado na forma de mduosnstaves. O fornecedor tambm ofe-rece desenvovmento, mpementaoe otmzao dos mduos adconas.

    A verso Community fac denstaar: faa o downoad do arquvotar.gz do ste, abra-o em um serv-dor web e execute start.sh no she(start.bat no Wndows). So neces-

    sros um servdor de web em fun-conamento com PHP5, php5-curl eJava Runtme Envronment.

    O pacote no ncu um scrpt nt;se voc deseja executar o servdor per-manentemente, mportante prestarateno no manua. Infezmente, owk do OSS [6]no oferece mas doque detahes sobre o procedmento denstaao. Para esse artgo, usamos aversoopen-search-server-1.2.1-r987.

    tar.gz de 30 de maro de 2011.Figura 1 Lucene, Tomcat e uma API flexvel combinados no Open Research Server.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    23/30

    73

    | PROGRAMAOOpen Search Server

    Linux Magazine #80 | Julho de 2011

    Primeiro contatoA pasta apache-tomcat-6.0.32no pacotecompactado contm aguns caracte-res famares: o apcatvo do servdorTomcat vem pr-conigurado comseus bnros, arquvos de og e de

    conigurao. Se ago no funcona,cheque o arquvo de og catalina.out.O Tomcat oferece dcas tes casoago no funcone em sua nstaao.Os ndces icam no dretro data,onde voc tambm encontrar umsubdretro com a conigurao emarquvos HTML. Voc pode usar umscrpt ou adconar URLs e padresaqu, mas va precsar rencar o OSSdepos de fazer sso.

    A interface webDepos de ncar, o Tomcat escuta aporta padro 8080. Voc deve manteressa porta atrs do irewa para evtaracessos no autorzados e dex-a ds-ponve apenas para servos ocas. Sevoc usar seu nvegador para acessara URL http://localhost:8080//, serevado nterface de gerencamen-to, que ncamente apenas mostraas abas Index e Prvleges. Voc pode

    comear crando um novo ndceou usuro com prvgos. Modeosesto dsponves para ndces (ndcevazo, buscador de arquvo e buscadorweb). Depos, voc pode seeconarum ndce para edtar. Uma vez car-regado o ndce, marcaes de temposo adconadas ao menu do OSS,como na figura 2.

    A fata de documentao pode fazercom que as abas, opes de conigura-

    o e tens secundros sejam um pou-co confusos. Entretanto, os modeos(templates) e funes autoexpcatvasso fces de serem ncados. O atrbutoSchema permte a edo de detahesnas funes de busca; Query permtea formuao de buscas ou coordenao formato do resutado de sada. OOSS pode confrontar os resutados(Query > Collapsing) caso crtrosespecicos permtam a concuso de

    que stes dntcos exstem.

    Os modos dsponves aqu so full,cluster e optimized. Por causa da fatade documentao, a nca forma dedescobrr qua modo mehor para

    o seu projeto expermentando.Snppet ields (tambm presente naQuery tab) deine o formato de sada.

    Voc pode deinr os campos e seus

    Quadro 1: Lucene

    O corao de qualquer mecanismo de busca moderno o indexador. O in-dexador escalonvel criado usando a biblioteca livre do Lucene Java traba-

    lha bem se comparado com mecanismos de busca comerciais.

    Analisador, Indexador e FieldsO princpio fundamental simples: um analisador separa um documento e dis-

    tribui os metadados deste e componentes de texto por campos predefinidos.

    Ento, o criador de ndice cria o ndice em si. O criador de ndice tipicamente

    um transdutor automtico, que leva voc a uma lista de links quando intro-

    duzido um termo. Especialistas referem-se a isto como arquivos invertidos,

    porque um ndice corresponde mais ou menos ao trabalho original. Entretanto,

    os trabalhos no so mais armazenados na sua ordem natural, mas sim em

    ordem alfabtica com um apontador para suas posies originais.

    Criar e manter a mquina em funcionamento e garantir armazenamentocompacto dos link no arquivo do sistema normalmente uma tarefa arrisca-

    da que o Lucene realiza de uma forma muito elegante. Ele facilmente alcana

    um desempenho de indexao de 30MBps em uma mquina moderna, en-

    quanto reduz o texto original em torno de 20% no ndice. Obviamente, esse

    processo depende da extenso para a qual o mecanismo de busca acessa

    o documento e o distribui pelos campos.

    Boost e Page RankUm programador pode usar os campos oferecidos para dar, por exemplo,

    uma ateno especial aos ttulos, dando mais peso a esse elemento, ou

    usando metadados externos, como nome ou autor do arquivo. Se o termo

    de busca ocorre nestes campos, o elemento indexado recebe um valor de

    ranking mais alto do que se apenas ocorresse em algum lugar no corpo dotexto. O levantamento correto destes campos vai levar ao tipo de ranking

    que os usurios querem encontrar. O Lucene pode tambm analisar campos

    individuais de uma forma focada ou us-los para busca de resultados.

    Alm das anlises booleanas relativamente entediantes, voc pode tambm re-

    alizar buscas com coringas ou tolerantes a erros. O objetivo aqui no apenas

    encontrar resultados com prefixo idntico (como em SQL com Linux Mag%),

    mas tambm com grafias diferentes. Graas ao mtodo Levenshten Dstance,voc pode definir sua prpria sintaxe para descobrir todas as variveis ortogrfi-

    cas do Schmie?[dt]+ (Schmid/Schmit/Schmidt, com ou sem um edepois do i)ou M[ae][iy]e?r (Meyer/Mayer/Maier/etc.) sem comprometer o desempenho.

    Mantenha distncia!

    Qualquer tipo de anlise a distncia recebe suporte do operador de proxi-midade (~) em anlises com mltiplas palavras. Ele encontra todos os tiposde sees de textos nos quais vrias palavras ocorrem at a distncia m-

    xima de uma para a outra. Em contraste com documentos estticos ou le-

    vantamento de campos, isso significa que voc pode levantar mais termos

    que os outros durante o tempo de execuo. O termo operador de boost (^)tambm permite que voc interprete chaves de busca individuais como mais

    importantes do que outras com consultas de mltiplas palavras.

    Resumindo, usurios tpicos no precisaro se preocupar com estas coisas em

    um mecanismo de busca ideal, porque os resultados mais relevantes estaro no

    topo da lista de qualquer forma mesmo que no seja utilizado operadores. O in-

    dexador do Lucene inclui um grande nmero de ferramentas para lidar com isso.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    24/30

    74 www.linuxmagazine.com.br

    PROGRAMAO | Open Search Server

    tamanhos aqu e, ento, conigurara sta de resutados.

    A aba Crawler onde voc es-pecica o avo de sua busca: web-stes, bancos de dados ou sstemasde arquvos. Vros itros esto ds-

    ponves para aux-o a modicarsso. A figura 2 mostra a subjaneado Crawl process para uma mqunaque est ndexando o ste ntero daLinux Magazine.

    Uma das coniguraes pode serma nterpretada: se voc for evado aachar que precsa aumentar ao mxmoo nmero de stes porhost para um ser-vdor web com grande quantdade decontedo, va provavemente car em

    uma armadha. O vaor somente dzao OSS quantas pgnas recuperar nasesso antes de adcon-as em seu nd-ce. Se voc conigurar este vaor mutoato, usar memra RAM demas ou

    possvemente ver a mensagem de erroustrada na figura 3. Em mutos casos,o OSS ou Java congea quando no temmas memra.

    Se voc quer crar um ndce deum ste grande, certique-se de que

    tenha memra suicente em seu ss-tema. Para aocar 2 GB de RAM noJava Vrtua Machne, voc smpes-mente precsa adconar as duas nhasseguntes ao seu scrpt de ncazao:

    CATALINA_OPTS=-Xms2G -Xmx2G-server

    export CATALINA_OPTS

    possve usar mas do que 2 GBem um sstema operacona de 64

    bts com Java de 64 bts. Neste caso,as opes a segur permtem 6 GB dememra RAM para o Java:

    CATALINA_OPTS=-d64 -Xms6G -Xmx6G-server

    export CATALINA_OPTS

    Ferramentas de montoramento,tas como Darkstat [7], nos repost-ros Deban, montoram o trfego quesso cra ao mesmo tempo (figura 4).

    Aguns irewas ou servdoresweb cassicam ondas de consutasmuto frequentes como um ataquede negao de servo (DoS) e bo-queam o cente.

    De acordo com o fornecedor, oOSS capaz de ndexar 16 ngua-gens; pode denticar paavas nte-ras, fragmentos, ou varantes de umaforma bsca (radca [8]). A sta dosformatos de documentos ncu XML,HTML/XHTML, PDF, Mcrosoft

    Word, PowerPont, OpenOfice.org,RTF, texto puro (pantext), Torrent,arquvos de udo (MP3/MP4, OGG,FLAC, WMA) e mutos outros. Parauma competa sta da nstaaoatua, veja em Schema/Parser lst.

    Consulta e lemaConsutas podem ser mpementadascomo consutas HTTP va nterfaceXML e ntegradas ao seu webste por

    meo de uma bboteca de cente

    Listagem 1: Consulta OSS01 title:($$)^10 OR title:("$$")^1002 OR03 titleExact:($$)^10 OR titleExact:("$$") 1004 OR url:($$)^5 OR05 url:("$$")^506 OR urlSplit:($$)^5 OR urlSplit:("$$")^507 OR08 urlExact:($$)^509 OR urlExact:("$$")^510 OR content:($$) OR11 content:("$$")12 OR13 contentExact:($$) OR contentExact:("$$")

    Figura 2 OSS pesquisando o website da Linux Magazine. O nmero mximo deURLs por campo de host completamente equivocado. Se voc entrar

    com um valor mais alto aqui, a memria se esgotar rapidamente.

    Figura 3 Zkoss apontando um aviso do Java heap space essa mensagemtipicamente refere-se falta de memria RAM para o JVM.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    25/30

    75

    | PROGRAMAOOpen Search Server

    Linux Magazine #80 | Julho de 2011

    PHP. A nterface de gerencamentotambm oferece uma tea de entra-da em Query/Edt/Query, que podeser usada para buscas no ndce. Alistagem 1 mostra as especicaespadro para a verso anteror, mas

    que tambm funcona na 1.2 e fac-mente extensve. A chave de busca representada por $$; segudo deum nmero que deine o peso; paa-vras-chave como title ou urlSplitdeinem onde e como exatamente otermo de busca pode ocorrer.

    O probema est frequentementenos detahes: enquanto o urlSplitreduz a URL http://www.open-sear-ch-server.compara a forma norma-

    zada http, www, ope, search e serv, ourlExact nterpreta a mesma URLcomo os eementos http, www, open,search e server. De acordo com os de-senvovedores, o OSS usa dferentesanasadores para ta: o anasadorde texto dentica graias smares,enquanto o urlExact, titleExact econtentExactusam o anasador padro.

    Na aba Scheduler, voc pode crarcronjobs para controar o OSS porexempo, para as reconstrues dos

    ndces (Optimize). A opo Runtmeoferece mportantes opnes e comen-tros a respeto do ndce, do cachee dos estgos do sstema. O OSS tambm bem equpado para conigu-raes de ata dsponbdade: a abaReplcaton ncu caxas de entradapara as URLs e ndexa nomes paranstncas de OSS mas detahadas.

    API e PHPOs subdretros open-search-server/examples/php/OSSquery e open-sear-ch-server/php/example contem agunsexempos de scrpts PHP smpes quevoc pode smpesmente ntegrar sua prpra pgna web, retrando,assm, funes de busca da nterfacede gerencamento para o navegadordo cente.

    Em webSearch.php, por exempo,voc pode adconar seu prpro

    ndce como padro, o que propor-

    cona uma busca funcona de pontaa ponta, peo menos parcamente.Isso porque houve um ado negat-

    vo: a nterface tem probemas comacentuao em aguns domas e no competamente capaz de mpe-mentar os parmetros da nguagemde buscas Lucene. Reazar consu-ta na nterface grica mehor namaora das vezes, mas no em todosos casos (figura5).

    Recomenda-se a API XML. De-senvovedores podem us-a parabuscas no ndce em quase qua-

    quer nguagem de programao e mostrar os resutados. Tudoo que voc precsa fazer ad-conar os parmetros necessrosnos requermentos corresponden-tes de HTTP na forma de umrequermento GET:

    http://localhost:8080/select?use=Index&qt=Query&q=Keyword

    Quando v este tpo de consuta,

    o servdor retorna um arquvo XML

    contendo as combnaes junto coma prva do texto correspondente (ousnppets). Em outras paavra, comoum programador, voc somente pre-

    csa do segunte:

    Figura 4 O Open Search Server local est analisando o servidor de web local amenos de 100KBps porque o administrador restringiu ao mximo o n-

    mero de linhas de execuo e frequncia de consultas na configurao.

    Figura 5 Se voc tentar usarparmetros mais

    exticos para o Lucene

    diretamente na consulta

    (por exemplo, a busca

    com ~), voc podefalhar por causa da

    implementao do OSS.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    26/30

    76 www.linuxmagazine.com.br

    PROGRAMAO | Open Search Server

    itrar e vadar o user nput (tome

    cudado, a API tambm pode deetaros documentos do ndce!).agrupar a strng para consutar

    a API.anasar o documento XML re-

    tornado e formatar a sada.A listagem 2 mostra um resumo

    de um smpes scrpt de API. Aslinhas 4 e 20 mpementam umaproteo mnma contra cdgosmacosos. A linha 4 proporconaproteo contra scrpts de cross ste

    (tcnca de programao maco-

    sa), enquanto a linha 20 remove

    um delete se um ataque for bemsuceddo. A matrz assocatva paramscoeta todos os parmetros para aanse de API, sendo que os par-metros use, qt e q so obrgatrose todos os outros so opconas. Otempate de busca est dsponvena dstrbuo e oferece uma an-se bem smpes do ndce.

    O prxmo passo defnr quascampos voc quer retornar naresposta XML; sso feto naaba Query/Returned Felds. Neste

    exempo, os campos so url e host(listagem 3).

    Os trs parmetros de coapsoespecfcam se o OSS deve agruparos resutados. O campo autortat-vo vremente seeconve; este

    podera ser o host ou o ttuo dapgna. Usando esta abordagem,voc pode ter assocaes seme-hantes nos resutados at o usu-ro ccar novamente, mehorandoassm a egbdade.

    Na listagem 2, este processo acon-tece da linha 9 11. No modo clus-ter, a conta mxma apenas 1; en-tretanto, voc no pode omtr esteparmetro. A linha 21 inamente

    concatena os parmetros da buscacom a URL do host e codica osresutados. Um smpes chamado aosimplexml_load_file($this->query) o bastante para executar quaquerpeddo API formuado deste modo.

    Voc obter, como retorno, um do-cumento XML como o mostradona listagem 3.

    Os resutados inas esto dspo-nves como doc in result, que n-terage com um oop foreach ($hits->result->doc as $doc) para cadatem. Os dos arquvos modeo PHPda Lnux Magazne Onne [9] tam-bm suportam as caracterstcas doLucene, ncundo a apcao debuscas com corngas como como caractere ~, o que antes causavaprobemas (figura 5).

    Novidades na verso1.2 e previses

    A verso 1.2 apresenta dversas ca-racterstcas dgnas de apausos.O buscador web agora dz a vocquando ee atuazou a pgna nondce, usa chaves ncas para em-brar pgnas dntcas e permteque voc gnore arquvos robots.txt. O banco de dados do craw-er tambm entende buscas SQL;voc pode desabtar tanto stas

    de padres como de excuso, e as

    Listagem 2: build-query.php

    01 function build_query($q){02 $params=array(); // todos os parmetros so adicionados aqui e03 // so removidas as tags04 $this->q=substr(trim(strip_tags($q),0,80));05 // basic parameters06 $params[use']='myIndex'; // ndice utilizado07 $params[qt']='search'; // Query Template08 // Collapsing09 $params[collapse.mode']='cluster';

    10 $params[collapse.field']='host';11 $params[collapse.max']=1;12 // Pagination13 if (isset($_GET[page'])) $params[start']=((int)

    $_GET[page']*10)-9;14 else $params[start']=1;15 $params[rows']=$this->rpp;16 $params[query']=trim($q); // chave de busca17 $params[sort']='score';18 $host= http://127.0.0.1:8080/select'; // URL do host OSS19 // In case somebody injected a "Delete" parameter:20 unset($params[delete']);21 $this->query=$host.'?'.http_build_query($params);22 }

    Figura 6 Verses futuras incluem a funo screenshot.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    27/30

    77

    | PROGRAMAOOpen Search Server

    Linux Magazine #80 | Julho de 2011

    anses denticam documentossmares com mas coniabdade.

    A tag modified anda um pro-bema bastante substanca. No mo-mento, ea detecta se a pgna fomodicada, mas no detecta se so-

    mente a pubcdade da pgna fosubsttuda ou se o contedo ems fo modicado porque a pgna,por exempo, contm um feed RSS.Voc pode usar o CSS para mehoraresta caracterstca em seus prprosservdores de web usando a tag divpara esconder menus, propagandase feeds do ndexador:

    O desenvovmento est em pro-gresso em reao a mutas caracte-rstcas: de acordo com o desenvo-vedor Emmanue Keer, um tpode page rank (baseado na funoscore do Lucene) fo parcamentempementado. As funes score, ord,rord, byte, float, int, e short estocompetas. Um exempo vdo deconsuta, ento, sera assm: score()+ rord(modified_date). A prxmaverso ncur tambm uma funoscreenshot e uma extenso de rende-rzao. (figuras 6 e 7)

    O OSS anda no perfeto, masdeintvamente est no camnhocerto. E rpdo: quando execu-tado em um desktop, respondeu auma consuta de 25.000 pgnas dondce do ste da Linux Magazinesurpreendentemente rpdo. Pou-qussmas vezes evou mas de meo

    segundo, como conirmado peosnossos testes com centenas de URLsescohdas aeatoramente.

    Gostou do artigo?

    Queremos ouvir sua opinio.

    Fale conosco em

    [email protected]

    Este artigo no nosso site:

    http://lnm.com.br/article/5499r/art

    azine.

    :

    4

    a opin

    r

    Listagem 3: bResposta XML

    01 02 03 04 005 Query_Name06 07 08 09 http://www.myserver.com/path/file.html

    10 www.myserver.com11 Page title12 brief preview of

    matches and neighborhood ...13 14

    Mais informaes

    [1] Servidor Open Search: http://www.open-search-server.com/

    [2] Tomcat: http://tomcat.apache.org/

    [3] Lucene no Apache: http://lucene.apache.org/java/docs/index.html

    [4] Agendador Quartz: http://www.quartz-scheduler.org

    [5] Zkoss: http://www.zkoss.org/product/zk.dsp

    [6] Wiki OSS: http://www.open-search-server.com/wiki/en/index.php/Main_Page

    [7] Darkstat: http://dmr.ath.cx/net/darkstat/

    [8] Lemma: http://en.wikipedia.org/wiki/Lemma_(linguistics)

    [9] Scripts PHP: http://www.linuxmagazine.com.br/issues/80/OSS.zip

    Figura 7 Futuras verses incluem uma extenso de renderizao.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    28/30

    http://sodic.com.br/canais
  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    29/30

    82 www.linuxmagazine.com.br

    Linux Magazine #81

    Ubuntu User #22

    Admin Magazine #3

    IPv6

    Na prxma edo, voc r conhecer mas sobre asvantagens e facdades da mpementao da novaverso do protocoo IP, o Ipv6. Esta nova verso,promete resover os j presentes --- e os futuros, du-rante um bom tempo, esperamos --- probemas deendereamento IP da Internet.A verso 6 do protocoo IP no somente uma meraatuazao da verso atua; pode ser consderada comoum protocoo pratcamente novo, desenhado parafazer todo o sentdo no mundo em que vvemos hoje.O que va mudar? Como mpementar a nova verso?

    Ubuntu 11.04

    O novo Ubuntu 11.04, codnome Natty Narwha,est sando do forno. Mutas mudanas so espe-radas e prevstas para este anamento. Entre eas,

    podemos destacar o novo modo de organzaoda rea de trabaho, que agora utza o Unty, apomca nterface de usuro da verso netbook,que fo totamente reescrta para a verso 11.04. Osrecursos muttouch tambm vm aperfeoados ecom mutas novdades. No perca!

    Conexo Segura

    Quem precisa conectar computadores com sis-temas operacionais diferentes frequentementeprecisa procurar por solues adequadas. O temade capa da prxima edio da Admin apresentasoftwares propiciam uma estreita relao entreWindows e Linux e que tambm servem paraconexes com roteadores e firewall como os da

    Cisco, Juniper ou Checkpoint.

  • 8/3/2019 2011 - Linux Magazine 80 (Jul)

    30/30

    http://www.bull.com/