Integração Java/Perl - TomCat/Apache. (Parte I)

HAILTON DAVID LEMOS
Publicado em 01/01/2010

Integração Java/Perl - TomCat/Apache. (Parte I)

Trabalhando com Relatórios, Gráficos e Imagens.

O objetivo deste artigo é propiciar ao leitor um olhar diferenciado sobre as linguagens scripts, que por vezes são marginalizadas, e demonstrar que é perfeitamente possível haver integração entre as Linguagens Java e Perl, além do container TomCat e do servidor de aplicação Web Apache, tornando-se uma alternativa muito eficaz, eficiente e extremamente rápida.

O modelo utilizado neste artigo envolve o modelo MVC, Model View Control, figura 1, que é um modelo que separa as tarefas de acesso aos dados e lógica de negocio, da lógica de apresentação e de interação com o usuário, utilizando-se Java/TomCat. [IMAGE]

Figura 1. MVC

Por outro lado, o artigo mostrará também o uso do CGI &150; Common Gateway Interface, figura 2, que é uma tecnologia que gera paginas dinâmicas, permitindo que um navegador passe parâmetros para um programa alojado num servidor web, utilizando Apache/Perl.

Figura 2. CGI

Ao final deste artigo, espera-se que o leitor seja capaz criar relatórios em vários formatos, tais como PDF, XML, XLS, DOC, PPT, JPG, PNG bem como também trabalhar com gráficos e imagens.

Ferramentas Necessárias

Segue uma lista dos programas necessários para execução dos exemplos constantes deste artigo:

jakarta-tomcat-5.0.27
j2sdk-1_4_2_18-windows-i586-p.
ActivePerl-5.8.8.822-MSWin32-x86-280952 ou ActivePerl 5.8.7.815.
apache_2.0.55-win32-x86-no_ssl.
netbeans-5_5_1-windows-pt_BR.
txpptb473.
mysql-connector-java-5.1.5-bin.
MySQL Servers and Clients 4.0.12.
AdbeRdr709_pt_BR. (Ou superior).

Preparando o ambiente

Instalar as ferramentas na seguinte ordem:

1. j2sdk-1_4_2_18-windows-i586-p,
2. jakarta-tomcat-5.0.27
3. netbeans-5_5_1-windows-pt_BR
4. apache_2.0.55-win32-x86-no_ssl
5. txpptb473
6. MySQL Servers and Clients 4.0.12
7. ActivePerl-5.8.8.822-MSWin32-x86-280952 ou ActivePerl 5.8.7.815.

A estrutura de pastas deverá ser a seguinte após a instalação dos programas:

	C:\j2sdk1.4.2_18

	C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0

	C:\Arquivos de programas\Apache Software Foundation\Apache2.2

	C:\mysql

	C:\Perl

O próximo passo será definir os locais, figura 3, onde serão disponibilizados os arquivos fontes do PERL bem como também as pastas que receberão os arquivos que serão ser gerados pelo Sistema.

Como sugestão fica a seguinte estrutura que deverá ser criada dentro da pasta htdocs.

· PDF (Pasta que ficarão todos os pdf gerados).

· HTML (Pasta que ficarão os HTML gerados).

Dentro da pasta CGIBIN a estrutura sugerida é a seguinte:

Relatórios (todos os arquivos Perl que geram relatório).
Gráficos (todos os arquivos Perl que geram gráficos).
Rotinas (todos os arquivos Perl que executem alguma rotina de processamento).

Figura 3. Pasta htdocs e CGI-BIN.

Após a instalação de todas as ferramentas e criação das pastas necessárias para rodar os exemplos, o próximo passo é fazer a atualização de alguns objetos do Perl. Para isso façam os seguintes passos, para quem instalou a versão ActivePerl5.8.8.822:

Prompt de comando
PPM

Irá aparecer uma janela com a seguinte imagem:

Figura 4. PPM

Clicar no primeiro ícone do lado esquerdo, abaixo do File, que habilitará a opção para selecionar todos os pacotes, que estão disponíveis. Clicando no segundo, abaixo do Edit, ícone aparecerão todos os pacotes que já estão instalados.

No Prompt, perto da lupa escolher os seguintes pacotes que deverão ser instalados caso não estejam.

DBI
DBD
MySQL
PDF
IMAGEINFO
XML
Open Office
WIN32
Spreadsheet
ExcelTemplate
OODoc
OODocTemplate
imagesize
Open OfficeOODoc

Feito isso o Perl estará pronto para funcionar atendendo os requisitos necessários.

Para quem optar por instalar a versão ActivePerl 5.8.7.815, deverá entrar no prompt de comando e digitar ppm. Os mesmos pacotes da versão ActivePerl5.8.8.822, deverão ser instalados nesta versão.

Para pesquisar os pacotes digite:

	s nomedopacote

Para instalar um determinado pacote digite:

	i nomedopacote

Exemplo para pesquisar os pacotes:

	s oodoc

	Searching in Active Repositories

	1. OODoc [0.93] OODoc

	2. OODocTemplate [0.01] OODocTemplate

	3. OpenOfficeOODoc [2.029] OpenOfficeOODoc

Exemplo para instalar o pacote:

	i OODocTemplateB<>

Conclusão> (Parte I)

Nesta primeira parte do artigo foi feita a apresentação do trabalho que será desenvolvido, bem como fazer as configurações básicas necessárias do ambiente que será utilizado para o desenvolvimento, das ferramentas que serão utilizadas no decorrer do trabalho que será desenvolvido com os leitores.

Na próxima etapa iniciaremos os primeiros programas feitos em Perl, que serão a base dos modelos dos relatórios.

Integração Java/Perl - TomCat/Apache. (Parte II)

Trabalhando com Relatórios, Gráficos e Imagens.

Dando continuidade à parte I do artigo, após montada toda a estrutura de pastas o próximo passo é definir um padrão para os relatórios, ou seja, fazer o layout de como os relatórios será apresentado. Após esta definição deverá ser criado todos os arquivos com extensão pdf e jpg que serão inseridos em todos os relatórios em tempo de execução.

Será apresentado a seguir um modelo padrão, que será utilizado no decorrer do artigo, e para tanto serão definidos a logomarca da empresa bem como todos os dados cadastrais da mesma, Figura 01. Esta imagem devera ser salva no formato JPG, que é o formato padrão que será utilizado pelo programa gerador do cabeçalho padrão dos relatórios. Todas estas imagens criadas deverão ser salvas numa pasta chamada padrão.

Figura 1. Logo Marca e dados cadastrais.

Para isso, você devera utilizar algum utilitário de para fazer desenho ou trabalhar com imagem, neste artigo será utilizado o Paint, figura 02, do Windows.

Figura 2. Acessar o Paint.

Após definido o cabeçalho, o próximo passo será criar um arquivo que conterá o rodapé do relatório, figura 3, e que ficará ao final do relatório.

Figura 3. Rodape.jpg

Feito isso todos os arquivos com as imagens necessárias e sugeridos para se criar um relatório estarão prontos, e poderão ser reutilizados sempre que necessário. Estes arquivos fazendo uma analogia são objetos.

Editando e executando os programas

Agora chegou à hora de colocar a mão na massa, vamos começar a programar, para tanto utilize o editor de textpad para fazer estes programas, os mesmos deverão ser salvos na pasta padrão, a mesma pasta que contem as imagens salvas anteriormente.

O dois primeiro programa que faremos irá fazer uso das imagens criadas anteriormente e seguem abaixo:

Programa para criar subcabecalho. (subheader.pl)

	#!/perl/bin/perl
	#Autor: Hailton David Lemos

	use PDF::Reuse;
	use Image::Info qw(image_info dim);

	use strict;

	prFile('subheader.pdf');
	my $file = 'cabecalho.jpg';
	my $info = image_info($file);
	my ($width, $height) = dim($info);
	my $intName = prJpeg("$file", $width, $height);
	$width = $width * 0.55;
	$height = $height * 0.45;
	my $yImage = 760;
	my $xImage = 15;

	my $string = "q\n";
	$string .= "$width 0 0 $height $xImage $yImage cm\n";
	$string .= "/$intName Do\n";
	$string .= "Q\n";

	prAdd($string);
	prEnd();

Programa para criar subcabecalho. (header.pl)

	#! /perl/bin/perl
	#Autor: Hailton David Lemos

	use PDF::Reuse;
	use strict;

	prFile('header.pdf');
	prForm("subheader.pdf");
	prFontSize(9);

	my $string = "10 740 582 15 re\n";
	$string .= "0.95 g \n";
	$string .= "b\n";

	prAdd($string);
	prEnd();

Estes programas, Programa 1 e Programa 2, serão os responsáveis pela criação do cabeçalho dos relatórios.

Uma vez feita esta operação vá ao prompt de comando, e digite: cd\padrao, logo após iremos executar nossos programas escritos em Perl, para tanto basta agora digitar perl subheader.pl e depois perl header.pl, nesta ordem, feito isso teremos dois arquivos pdf criados na pasta, o header.pdf e o subheader.pdf.

O relatório deverá ser envolto por uma moldura, Programa 1, e também devera ter uma marca d&146;água, Programa 2, o que ira garantir a autenticidade do mesmo, e para tanto agora iremos fazer nossos primeiros programa escrito em Perl, não fiquem ansiosos já, já estaremos trabalhando com Java.

Programa para criar retângulo que irá circundar pagina pdf. (mascara.pl)




	#! /perl/bin/perl
	#Autor: Hailton David Lemos

	use PDF::Reuse;
	use PDF::Reuse::Barcode;

	use strict;

	prFile('mascara.pdf');
	my $string = "10 70 582 780 re\n";
	$string .= "1 g \n";
	$string .= "b\n";

	prAdd($string);
	prEnd();

Programa para criar marca d&146;água. (marcaDagua.pl)

	#!/perl/bin/perl
	#Autor: Hailton David Lemos

	use PDF::Reuse;
	use PDF::Reuse::Barcode;

	use strict;

	prFile('watermark.pdf');
	prAdd('0.95 g');
	prFontSize(100);
	prText(70, 210, "PORTAL JAVA", 'left', 45);
	my $string = "10 720 582 20 re\n";
	$string .= "0.95 g \n";
	$string .= "b\n";

	prAdd($string);
	prEnd();

Uma vez feita esta operação vá ao prompt de comando novamente, e digite: cd\padrao, logo após iremos executar nossos programas escritos em Perl, para tanto basta agora digitar perl mascara.pl e depois perl marcaDagua.pl, feito isso teremos dois arquivos pdf criados na pasta, o mascara.pdf e o watermark.pdf.

Feitos todos os passos corretamente, teremos já a base para iniciarmos a criação de relatórios, sua pasta padrão devera estar como a figura 4.

Figura 4. Pasta padrão.

Conclusão

No próximo artigo daremos continuidade ao nosso framework, com a criação de outros modelos sem a utilização de imagens, como foi feito até agora.

Nesta primeira etapa estamos utilizando apenas a execução do Perl através da linha de comando, mas assim que aprofundarmos mais no assunto iremos começar a utilizar o Java, aguardem.

AUTHOR

HAILTON DAVID LEMOS <hailton.david@gmail.com>

Tecnólogo em Internet e Redes, Bacharel em Administração de Empresas, Licenciando em Ciências Biológicas, Especialista em: Tecnologia da Informação, Planejamento e Gestão Estratégica, Matemática e Estatística, Técnica em Analise e Desenvolvimento de Software, Educação para Diversidade e Cidadania. Trabalha com desenvolvimento de Sistema há mais de 25 anos, atualmente desenvolve sistemas especialistas voltados à Bioinformática, Normas e Padrões de qualidade, Planejamento Estratégico e Tomada de Decisão.

Tecnologias que estou utilizando atualmente: Java, Perl, Ruby, Plataforma .NT, Natural, ImageMagick, Javascript, Jscript, Vbscript, Ajax, VBA, SQL, HTML, ASP, Xml, OWC, OWL, CML, BioPolymer, Mysql, DB2, Adabas, Postgresql, Access, Windows, Linux.

blog comments powered by Disqus