Case PUCSPGUI e WEB no ambiente LINUX
Jose Luis dos Santos
Analista de SistemasAdministrador de redes
Porque usar Linux?
● Padrão aberto● Maturidade do sistema. Desde 1991● Estabilidade● Poucos vírus conhecidos● Portabilidade● Customização do kernel● Licença Pública Geral GNU (Não paga para se
usar).● Rapidez em criar patchs
Como executar programas escritos para Windows no Linux?
● Wine www.winehq.com(Opensource)
● CrossOver www.codeweavers.com (Proprietário)
WINE
Wine (acrônimo recursivo para WINE Is Not an Emulator) é um projeto para sistemas operacionais UNIX que permite a execução nesse ambiente software especificamente criados para o Microsoft Windows. O WINE funciona como uma camada (semelhante a um emulador) que oferece uma API compatível com a do Windows; ao serem executadas as diferentes funções, o Wine irá traduzilas para rotinas em UNIX cujo resultado seja idêntico.
WINE
● Roda em Linux, FreeBSD, Mac OS X e Solaris● O Wine é desenvolvido basicamente na observação do com
portamento dos programas, pois os programas proprietários, geralmente não oferecem o código fonte
● Possi 100% de funcionalidade com os principais aplicativos de mercado tais como: Microsoft Office, Adobe Photoshop, Internet Explorer
● Programas não suportados talvez não funcionem corretamente
WINE Instalação
● No site há binários para todas as distribuições Linux e também o código fonte para outras plataformas.
● Exemplos:– Debian, Kurumin, Ubuntu
● aptget install wine wineutils winesetuptk– Suse, RedHat, Mandriva
● rpm ivh wine0.9.26SuSELinux100.i586.rpm
WINE Configuração
● Existe uma ferramenta chamada winetools que pode ser obtida em http://www.vonthadden.de/Joachim/WineTools
● Com ela é possível configurar, baixar programas e fontes para melhorar a compatibilidade do Wine
● Geralmente toda a configuração do Wine fica armazenada em $HOME/.wine
● Uma versão testada e utilizada na PUC foi a de 20050310 rodando num Slackware 10.0
CrossOver
● Roda em Linux e Mac● Utilizam o “expertise” do Wine para prover
serviços profissionais● Depois de um certo tempo eles repassam as
implementações para o Wine● Podese baixar uma versão para testar durante
60 dias● Existe uma versão para Servidor, onde vários
“thinclients” podem compartilhar recursos
CrossOver Instalação
● os binarios ficam em $HOME/cxofficebeta/bin● os arquivos de configuração ficam em
$HOME/.cxofficebeta
Outras aplicações GUI
● Para impressão de etiquetas: lombada, ficha de bolso, cartão de usuários
● Foi desenvolvido um sistema em PHPGTK que pode conversar com o Oracle através de um ODBC ou através de um scriptphp do servidor acessado pelo lynx (servidor web em modo texto)
Outras aplicações GUI
● Para que isso funcione são necessários:
● Cliente– PHP e PHPGTK: www.phpgtk.org.br
● Servidor Aleph– Configuração do php com suporte a Oracle
http://br2.php.net/manual/en/ref.oracle.php
Serviços WEB
● Para o funcionamento do serviços WEB foi necessário a configuração dos seguintes serviços:– Apache GPL– PHP GPL
Apache
● É um dos principais software para servir páginas WEB
● Numa pesquisa realizada em dezembro de 2005, foi constatado que a utilização do Apache supera 60% nos servidores ativos no mundo.
● Também é multiplataforma
PHP
● PHP (um acrónimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web. Apesar de ser uma linguagem de fácil aprendizado e de uso para pequenos scripts dinâmicos e simples, o PHP é uma linguagem poderosa orientada a objetos.
Linux + Apache + PHP + Oracle = resolução de vários problemas
● Prerequisito: ambiente de desenvolvimento instalado
● Configuração do ambiente computacional – Apache
● tar xvzf fontedoapache● cd diretorio● ./configure –prefix=/usr/local/apache –enableso● make ● make install
Linux + Apache + PHP + Oracle = resolução de vários problemas
● Configuração do ambiente computacional – PHP
● tar xvzf fontedophp● cd diretorio● /configure –prefix=/usr/local/php4.4.2 –with
apxs2=/usr/local/apache/bin/apxs –withoci8=/exlibris/app/oracle/product/920 enablesigchild
● make● make install● Adicionar no final de /usr/local/apache/conf/httpd.conf
AddType application/xhttpdphp .php .phtmlAddType application/xhttpdphpsource .phps
Linux + Apache + PHP + Oracle = Cuidados
● Agora esse ambiente pode ter acesso as todas as tabelas do Aleph
● Use com responsabilidade, pois seu mal uso pode acarretar em graves consequências como deleção de registros ou tabelas, queda de performance (selects muito grandes em campos não indexados)
● Proteja seus scripts, principalmente o responsável pelo autenticação no banco
Linux + Apache + PHP + Oracle = Exemplo de script
● Alguns scripts de exemplo:– conexão no banco:
<?phpputenv("ORACLE_HOME=/exlibris/app/oracle/product/920");putenv("ORACLE_SID=aleph0");$db="(description= (SDU=8192) (TDU=8192) (address= (protocol=ipc) (key=aleph0)) (address= (protocol=tcp) (host=localhost) (port=1521)) (connect_data=(sid=aleph0)))";$ora_conecta = ociplogon("usuario","senha",$db);?>
Linux + Apache + PHP + Oracle = Exemplo de script
– dado barcode retorna localização e tombo<?phpinclude("conecta_ora.php");
$sql = " select z30_call_no || '|' || Z30_INVENTORY_NUMBER as LINHAfrom z30where Z30_BARCODE='$barcode' "; //echo $sql; $stmt = ociparse($ora_conecta,$sql) or die("ERRO"); ociexecute($stmt,OCI_DEFAULT); while(ocifetch($stmt)) { $linha = ociresult($stmt,"LINHA"); } ocifreestatement($stmt); echo $linha;?>
Linux + Apache + PHP + Oracle = Exemplo de aplicação
● Aproveitamento dos dados dos alunos (mysql) para inserção/atualização nas tabelas z303,z304,z305 e z308 do Oracle
● Os dados são passados via url e processados no Oracle. Assim o funcionário não tem o retrabalho de digitar cada aluno novamente
● Maior rapidez no atendimento ao aluno
Linux + Apache + PHP + Oracle = Captura de dados do oracle com o lynx
●lynx –dump http://servidoraleph/lynx/etq1.php?barcode=100010004
DM 340 S556a Ex.3|151061|Shimura, Sergio Seiji|Arresto cautelar
●lynx –dump http://servidoraleph/lynx/usuario.php?dados=180000015BNGK
ADM05118 |20070215|FB|JOSE LUIS DOS SANTOS|
Com isso facilmente qualquer aplicação consegue transformar a linha impressa em dado
Terminais leves para WEBOPAC
● Utilizamos o protocolo XDMCP e o sistema LTSP para gerenciar os 40 terminais leves existentes na biblioteca
● Ambos são livres e rodam num servidor com Linux● Todo o software fica no servidor● Nos terminais apenas um diskless ou boot pxe da placa de rede● É necessário uma rede de pelo menos 100 Mbits● E um bom computador para atuar como servidor● Para se ter uma idéia um PIV com 2 GB de RAM e clock de
3Ghz aguenta uns 40 terminais leves pendurados
Terminais leves para WEBOPAC
● LTSP www.ltsp.org– O Linux Terminal Server Project (LTSP) é um projeto para o
Linux em software livre que possibilita o uso de um computador por vários terminais de acesso. Há um servidor principal (geralmente um micro de melhor performance, no qual está instalado o LTSP) e vários clientes conectados via rede a este servidor. Estes clientes somente são a saída do processamento do servidor, por isso, não necessitam do uso de discos rígidos, uma imagem do sistema operacional é carregado via rede.
Terminais leves para WEBOPAC
● XDMCP– O XDMCP é um protocolo que permite o uso de aplicações
remotamente no X (inteface gráfica do Linux). Para habilitar, depende de qual gerenciador de login você escolheu. Os 3 principais, senão os únicos, para gnu/linux são o KDM, GDM e XDM. Todos os 3 têm suporte à XDMCP
● No site http://www.guiadohardware.net/artigos/239/ existe um tutorial para configurar o XDMCP