case pucsp gui e web no ambiente linux - … · proteja seus scripts, principalmente o

47
Case PUC-SP GUI e WEB no ambiente LINUX Jose Luis dos Santos Analista de Sistemas Administrador de redes [email protected]

Upload: phungdan

Post on 08-Oct-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Case PUC­SPGUI e WEB no ambiente LINUX

Jose Luis dos Santos

Analista de SistemasAdministrador de redes

[email protected]

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á traduzi­las 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 correta­mente

WINE ­ Instalação

● No site há binários para todas as distribuições Linux e tam­bém o código fonte para outras plataformas.

● Exemplos:– Debian, Kurumin, Ubuntu

● apt­get install wine wine­utils wine­setuptk– Suse, RedHat, Mandriva

● rpm ­ivh  wine­0.9.26­SuSELinux100.i586.rpm

WINE ­ Configuração

● Existe uma ferramenta chamada wine­tools que pode ser ob­tida em http://www.von­thadden.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

WINE – Exemplo de Instalação

WINE – Exemplo de Instalação

WINE – Exemplo de Configuração

WINE – Exemplo de Configuração

Wine – Instalação do GUI

Wine – Instalação do GUI

Wine – Catalogação

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● Pode­se baixar uma versão para testar durante 

60 dias● Existe uma versão para Servidor, onde vários 

“thin­clients” podem compartilhar recursos

CrossOver ­ Instalação

● sh install­crossover­standard­prerelease­6.0.0beta3a.sh

CrossOver ­ Instalação

● Clique em Install Windows Software

CrossOver ­ Instalação

● Clique em install unsupported software

CrossOver ­ Instalação

● Escolha o caminho do instalador

CrossOver ­ Instalação

● os binarios ficam em $HOME/cxofficebeta/bin● os arquivos de configuração ficam em 

$HOME/.cxofficebeta

Sugestões para o GUI rodar em multiplas plataformas

● Java ● Levar todo GUI para WEB ­ AJAX

Outras aplicações ­ GUI

● Para impressão de etiquetas: lombada, ficha de bolso, cartão de usuários

● Foi desenvolvido um sistema em PHP­GTK que pode conversar com o Oracle através de um ODBC ou através de um script­php 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 PHP­GTK: www.php­gtk.org.br

● Servidor Aleph– Configuração do php com suporte a Oracle 

http://br2.php.net/manual/en/ref.oracle.php

Outras aplicações – GUIExemplos

  

Outras aplicações – GUIExemplos

  

Outras aplicações – GUIExemplos

  

Outras aplicações – GUIExemplos

  

Outras aplicações – GUIExemplos

  Impressão de etiquetas para a confecção do cartão de biblioteca

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

● Pre­requisito: ambiente de desenvolvimento instalado

● Configuração do ambiente computacional – Apache

● tar xvzf fontedoapache● cd diretorio● ./configure –prefix=/usr/local/apache –enable­so● 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/php­4.4.2 –with­

apxs2=/usr/local/apache/bin/apxs –with­oci8=/exlibris/app/oracle/product/920 ­­enable­sigchild

● make● make install● Adicionar no final de /usr/local/apache/conf/httpd.conf  

AddType application/x­httpd­php .php .phtmlAddType application/x­httpd­php­source .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 = Exemplo de aplicação

 

Linux + Apache + PHP + Oracle = Exemplo de aplicação

 

Linux + Apache + PHP + Oracle = Exemplo de aplicação

 

Linux + Apache + PHP + Oracle = Exemplo de aplicação

 

Linux + Apache + PHP + Oracle = Exemplo de aplicação

 

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 im­pressa  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

Terminais leves para WEBOPAC

● Vantagens– Economia de energia elétrica– Aproveitamento do hardware antigo– Manutenção centralizada no servidor– Escalabilidade (para crescer basta atualizar o servidor)– Baixo impacto na rede