Você está na página 1de 35

Universidade Gama Filho

MAGSON MARTINS MAGALHAES

Modernização do Judiciário: Intranet com padrões abertos

Brasília – 2011
MAGSON MARTINS MAGALHAES

Modernização do Judiciário: Intranet com padrões abertos


MAGSON MARTINS MAGALHAES

Modernização do Judiciário: Intranet com padrões abertos

Monografia apresentada à Universidade Gama Filho como

requisito parcial para obtenção do título de especialista em

Engenharia de Software.

Orientador: Max Bianchi Godoy

Brasília, 2011.
MAGSON MARTINS MAGALHAES

Modernização do Judiciário: Intranet com padrões abertos

Monografia julgada e aprovada:

Prof Orientador: Max Bianchi Godoy


Lista de Figuras
Figura 1: ......................................................................................................................16

Figura 2........................................................................................................................26

Figura 3........................................................................................................................27

Figura 4: ......................................................................................................................27

Figura 5: ......................................................................................................................28

Figura 6: ......................................................................................................................28

Figura 7: ......................................................................................................................29

Lista de Tabelas
Tabela1........................................................................................................................31
Sumário
1 Introdução..................................................................................................................7
1.1 Apresentação do Problema de Pesquisa...........................................................7
1.2 Revisão da Literatura.........................................................................................7
1.3 Justificativa.........................................................................................................8
1.4 Objetivos............................................................................................................8
1.5 Metodologia de Pesquisa...................................................................................8
1.6 Descrição dos capítulos.....................................................................................9
2 Referencial Teórico....................................................................................................9
2.1 Intranet...............................................................................................................9
2.2 Software Livre .................................................................................................10
2.3 Framework e Reusabilidade............................................................................13
2.4 Sistema de Gerenciamento de Conteúdo........................................................13
2.4.1 Joomla!.....................................................................................................14
3 Técnicas e Ferramentas..........................................................................................14
3.1 Apresentação da metodologia de pesquisa.....................................................14
3.2 Apresentação da sua solução e das soluções que levam aos objetivos.........16
3.3 Descrição da solução.......................................................................................17
3.4 Coleta de dados...............................................................................................18
3.5 Avaliação da solução.......................................................................................26
4 Análise dos resultados............................................................................................26
4.1 Apresentação dos resultados...........................................................................26
4.2 Análise dos resultados.....................................................................................29
5 Conclusão................................................................................................................30
5.1 Apresentação dos principais objetivos atingidos e suas soluções..................30
5.1.1 Modelo Atual versus Modelo Proposto.....................................................30
5.2 Principais contribuições...................................................................................31
5.3 Aspectos positivos e negativos........................................................................31
5.4 Trabalhos futuros.............................................................................................31
6 Referências Bibliográficas ......................................................................................33
1 Introdução

Este trabalho será um estudo de caso sobre o processo de modernização

da intranet da Justiça Federal de Primeiro Grau em Mato Grosso do Sul.

O assunto está inserido em duas grandes vertentes, de extrema

importância: maior celeridade para o Poder Judiciário; e utilização de tecnologias

criadas e mantidas pela comunidade do software livre.

1.1 Apresentação do Problema de Pesquisa

Esta pesquisa tem como objeto a reestruturação do atual modelo de

intranet em funcionamento na Justiça Federal de Mato Grosso do Sul(JFMS). É um

modelo que está implementado desde 2001. Desde então sofreu pouco ou nenhum

aperfeiçoamento.

A atualização das informações é bastante centralizada, ou seja,

depende muito da equipe de TI. Os usuários tem pouco ou nenhum acesso à

inserção de informações. Dessa forma seu uso fica limitado e não atende

plenamente o fim a que se propõe, que é democratizar o acesso às informações

divulgadas pela instituição. A inserção de imagens e documentos não é uma tarefa

trivial; depende de conhecimentos em HTML e permissões de acesso ao servidor,

que pode comprometer a segurança. Não existe um mecanismo de busca. Se é

necessário buscar uma informação passada, a tarefa é atribuída à equipe de TI.

Por se tratar de um órgão público, o uso de padrões abertos se

justifica, de forma a não gerar ônus com licenças. Também pela farta documentação

existente em fóruns, sites e livros.


1.2 Revisão da Literatura

Esta pesquisa basear-se-á em Sistemas de Gerenciamento de Conteúdo

de padrões abertos. Dentre os autores que serão citados nessa pesquisa, tem-se

Jakob Nielsen, que tem importantes contribuições no que tange usabilidade de sites

e como criá-los focados nos anseios dos usuarios. Outro autores, Ricardo Lima

Caratti e Leonardo Mafra Silva, em seu livro Joomla! Avançado, demonstram como

desenvolver componentes para Joomla! usando PHP.

1.3 Justificativa

Muito se fala a respeito da morosidade do Poder Judiciário no nosso país.

Deve-se, em parte, à sistemas de informação de difícil manutenibilidade, difíceis de

operar, e muitas vezes deficientes em funcionalidades. Além da deficiência em

recursos humanos, principalmente, no aspecto quantitativo. Esta pesquisa pode

servir de modelo para que outros órgãos, de todos os poderes, possam criar e

manter seus sites de internet e intranet de maneira simplificada e funcional.

1.4 Objetivos

1.4.1 Objetivos Gerais

O objetivo principal desta pesquisa é apresentar uma nova intranet,

baseada no framework Joomla!, com novas funcionalidades e que seja fácil de

atualizar.

1.4.2 Objetivos Específicos

Para isso, será implantado um mecanismo de busca, um módulo que

servirá para repositório de documentos, e um módulo destinado à inserção de

notícias pertinentes a cada setor do órgão.


1.5 Metodologia de Pesquisa

Este trabalho será um estudo de caso do processo de inovação da atual

intranet da JFMS. Os dados serão obtidos diretamente dos servidores da JFMS, e

exportados para o novo modelo, utilizando-se as respectivas ferramentas de banco

de dados. Todas as etapas do processo serão explicadas.

1.6 Descrição dos capítulos

No primeiro capítulo, é apresentado o problema e sua importância no

contexto em que se insere. Neste capítulo será explicado como é o ambiente

computacional e pessoal da instituição. Serão explicadas quais tecnologias foram

utilizadas no modelo atual.

No segundo capítulo, como forma de elucidar alguns conceitos, serão

mostrados o que já existe na literatura e na internet a respeito do assunto.

O terceiro e quarto capítulos, descreverão a solução adotada para o

problema em questão.

Finalmente, as conclusões sobre o trabalho, se os objetivos foram

alcançados ou não e projeções para futuros trabalhos.

2 Referencial Teórico

Neste capítulo, alguns conceitos serão apresentados, bem como a opinião

de alguns autores sobre o que existe na literatura a respeito do tema desta

monografia.

2.1 Intranet
Conceitualmente, segundo Thing(2003,p.446) “Uma intranet é

uma rede privada que está contida dentro de uma empresa”.

O termo intranet comumente é confundido com internet e até

mesmo com extranet. Tal confusão justifica-se pela similaridade dos termos e

também de tecnologias sobre as quais estão suportadas.

Uma intranet utiliza TCP/IP, HTTP e outros

protocolos da internet, e, de maneira geral, se

parece com uma versão privada da internet.

[...]Quando parte de uma intranet é tornada

acessível a clientes, sócios, fornecedores de fora

da empresa, esta parte torna-se parte de uma

extranet.(THING, 2003, p.446)

O principal intuito de uma intranet é o compartilhamento de informações e

recursos computacionais no ambiente interno da instituição.

2.2 Software Livre

O uso de software livre tem sido uma tendência e recomendado

fortemente para ser usado no governo, em todas as esferas. Documentos oficiais,

produzidos pelo próprio governo federal, a seguir discriminados, que sinalizam essa

tendência do uso do software livre.

Conceitua-se então:

Software Livre é o software disponibilizado,

gratuitamente ou comercializado, com as

premissas de liberdade de instalação; plena

utilização; acesso ao código fonte; possibilidade


de modificações/aperfeiçoamentos para

necessidades específicas; distribuição da forma

original ou modificada,com ou sem custos.

(RIBEIRO, 20041)

Como pode-se observar, quando se fala que um software é

livre não quer dizer que não possa ser vendido. Portanto

[...]não confundir software livre com software

grátis porque a liberdade associada ao software

livre de copiar, modificar e redistribuir, independe

de gratuidade. Existem programas que podem ser

obtidos gratuitamente mas que não podem ser

modificados, nem redistribuídos. (HEXSEL,2002)

O governo federal sinalizou que é favorável quando através do

Decreto nº 3294 de 15 de dezembro de 1999, criou o Programa Sociedade

da Informação (Socinfo), subordinado ao Ministério da Ciência e

Tecnologia(MCT), cujo objetivo é

[...] integrar, coordenar e fomentar ações para a

utilização de tecnologias de informação e

comunicação, de forma a contribuir para que a

economia do país tenha condições de competir no

mercado global e, ao mesmo tempo, contribuir

para a inclusão social de todos os brasileiros na

1Definição adaptada de RIBEIRO, Daniel Darlen Corrêa. Software Livre na

Administração Pública. Estudo de caso sobre adoção do SAMBA na Auditoria Geral do Estado de

Minas Gerais. Lavras, UFLA, 2004. Monografia de conclusão do curso de Especialização em

Administração de Redes Linux.


nova sociedade

O acesso ao código-fonte dos programas garante

a todos, inclusive à Administração Pública,

liberdade para se aperfeiçoar e adequar às suas

necessidades. Para tanto, é necessário

conhecimento. Pois de acordo com

Takahashi(2000):

O conhecimento tornou-se, hoje mais do que no

passado, um dos principais fatores de superação

de desigualdades, de agregação de valor, criação

de emprego qualificado e de propagação do bem-

estar. A nova situação tem reflexos no sistema

econômico e político. A soberania e a autonomia

dos países passam mundialmente por uma nova

leitura, e sua manutenção – que é essencial –

depende nitidamente do conhecimento, da

educação e do conhecimento científico e

tecnológico.

Com o intuito de estabelecer condições de interação com os

demais poderes e esferas de governo e com a sociedade em geral, o

governo federal estabeleceu um conjunto de políticas, premissas e

especificações técnicas denominada “Arquitetura e-PING – Padrões de

Interoperabilidade2 de Governo Eletrônico”. Dentre suas especificações,

preconiza sua preferência pelo uso de padrões abertos conforme

2 Os conceitos de interoperabilidade adotados nesta arquitetura estão evidenciados no Documento


de Referência, disponível em http://www.eping.e.gov.br
especificado:

[...] a e-PING define que, sempre que possível,

serão adotados padrões abertos nas

especificações técnicas. Padrões proprietários são

aceitos, de forma transitória, mantendo-se as

perspectivas de substituição assim que houver

condições de migração. Sem prejuízo dessas

metas, serão respeitadas as situações em que

haja necessidade de consideração de requisitos de

segurança e integridade de informações. Quando

disponíveis, soluções em Software Livre serão

consideradas preferenciais. (Documento de Referência

– Versão 4 – p.9)

2.3 Framework e Reusabilidade

Framework e reusabilidade são conceitos que estão fortemente ligados.

Conceitua-se então framework como:

uma estrutura genérica que pode ser ampliada

para criar um subsistema ou uma aplicação mais

específica”. Essas estruturas são constituídas de

um conjunto de classes abstratas e concretas e

interface entre elas. (SOMMERVILLE 2007, p.282)

Sommerville(2007), explica ainda que as aplicações que são construídas

com o uso de frameworks podem ser a base para outras oportunidades de reuso.

2.4 Sistema de Gerenciamento de Conteúdo


Sistema de Gerenciamento de Conteúdo vem do termo em inglês Content

Management System(CMS). Em seu Dicionário de Tecnologia, Thing(2003,p.178)

define que é “um sistema utilizado para gerenciar o conteúdo de um website.”

Um sistema de gerenciamento de conteúdo provê o ambiente e os

elementos necessários para que os administradores ou autores de conteúdo criem

modifiquem, e removam o conteúdo de um website sem a necessidade de

conhecimento programação em HTML(Hypertext Markup Language) ou da ajuda de

um webmaster. Esse conteúdo podem ser: texto, música, vídeo, fotos, documentos

ou quaisquer outras coisa que se queiram publicar.

2.4.1 Joomla!

Joomla! é um sistema de gerenciamento de conteúdo, baseado em

software livre, essencialmente PHP e MySQL. Tem sido largamente difundido no

mundo, devido à sua facilidade de utilização e instalação, e também pelo fato de ter

uma grande comunidade que contribui para o seu desenvolvimento, mais de

200.000 usuários, conforme consultado no site do projeto(www.joomla.org).

Além de ser um Sistema de gerenciamento de conteúdo, é também um

framework baseado em MVC(Modelo-Visão-Controle), que permite extender suas

funcionalidades conforme a necessidade de cada negócio.

3 Técnicas e Ferramentas

Neste capítulo, serão mostrados os procedimentos e técnicas utilizados

no processo de migração da intranet.


3.1 Apresentação da metodologia de pesquisa

Neste estudo de caso, os métodos utilizados para a migração serão os

seguintes:

• Extração dos dados a serem migrados da intranet atual. Para

isso serão utilizados códigos escritos em PHP.

• Transformação dos dados extraídos para uma estrutura em

arquivo XML. Para a transformação serão utilizados modelos

XSLT versão 1.0.

• Geração de um script SQL para importação na nova base de

dados.

• Importação do arquivo SQL gerado no formato da estrutura de

dados do Joomla.

• Servidores com sistema operacional Linux, rodando

apache2(servidor http) com suporte a PHP5.

• FireBird e MySql como servidores de Gerenciamento de Banco

de Dados(SGBD)

• Joomla 1.5 como Sistema de Gerenciamento de Conteúdo

• O componente Jdownloads, que é uma extensão instalada no

Joomla para gerenciamento de arquivos para downloads.


A figura 1 ilustra como será esse processo

Figura 1:

3.2 Apresentação da sua solução e das soluções que levam aos

objetivos
Seguindo a premissa “dividir para conquistar”, a solução proposta consiste

em transformações sucessivas de arquivos no formato XML. Embora pareçam

redundantes em suas fases, esse particionamento foi proposto visando a facilitar a

documentação, facilitar a detecção de erros durante o processo de migração de

dados e facilitar o entendimento das pessoas que possam participar do projeto.

3.3 Descrição da solução

Numa primeira etapa, definir quais dados serão migrados e em que

tabelas e diretórios estão armazenados. No caso em questão, serão migrados as

notícias, seus dados de dependência relacional e os respectivos documentos de

cada seção da intranet. Tais informações encontram-se nas tabelas SECAO,

NOTICIAS e DOCUMENTOS do SGBD Interbase.

Na etapa seguinte, exportar os dados das tabelas para uma arquivo no

formato XML mantendo a estrutura dos seus relacionamentos. Para extrair os dados

cada tabela será escrito um código em PHP.

Após as tabelas estarem devidamente exportadas, aplicam-se os arquivos

de transformação (XSLT). A importância desta etapa está em tratar os dados para

adequá-los à estrutura das tabelas que o Joomla utiliza.

Para aplicar os arquivos de transformação utilizou-se o programa

xsltproc da biblioteca libxslt para linguagem C. Esta ferramenta permite executar

as transformações através da linha de comando de um terminal Linux. A sintaxe de

sua utilização é:

xsltproc [opções] arquivo_stylesheet_xsl arquivo_a_ser_transformado


[arquivo_de_saida ...]

A última etapa consiste em importar os dados migrados para as tabelas

do MySql já na estrutura no Joomla e copiar os documentos para o diretório de

instalação do componente JDownloads mantendo a mesma estrutura de diretórios.

3.4 Coleta de dados

Os dados utilizados neste caso de uso foram extraídos diretamente dos

servidores da Justiça Federal em sua rede local.

Abaixo, seguem as transcrições dos códigos utilizados na coleta de

dados, resguardados usuários e senhas de acesso:

Arquivo geraXml.php

<?

require("ibasedb.php");
require("classe.php");
require("migracao.php");
require("intranet.conf");
$db = new intranet();

$db->mostraSecao(); //gera XML da tabela SECAO


$db->mostraNoticia(); // gera XML da tabela NOTICIA
$db->mostraDocumento(); //gera XML da tabela DOCUMENTO
?>

As funções chamadas encontram-se no arquivo migração.php. Os demais

arquivos requeridos no cabeçalho são arquivos de configuração e conexão ao SGBD

Interbase e não serão explicitados. Abaixo, a funções que foram instanciadas no

arquivo geraXml.php

Arquivo migracao.php

<?php
function mostraNoticia(){//$codigo){
$fp = fopen('noticias.xml', 'a+');

$campo="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><noticias>";


//adiciona ao arquivo xml
fwrite($fp,$campo);

$sqltmp = "SELECT * FROM NOTICIA ORDER BY DATA DESC";

if ($this->query($sqltmp)){

while ($array = ibase_fetch_object($this->result))


{
$dados = $array;

$campo = "<registro>\n<codnoticia>".$dados-
>COD_NOTICIA."</codnoticia>\n";
fwrite($fp,$campo);

//abre campo titulo


$campo = "<titulo><![CDATA[".$dados-
>TITULO."]]></titulo>\n";

//adiciona ao arquivo xml


fwrite($fp,$campo);
//abre campo data
$campo = "<data>".$dados->DATA."</data>\n";

//adiciona ao arquivo xml


fwrite($fp,$campo);
$campo = "<servidor>".$dados-
>SERVIDOR."</servidor>\n";

//adiciona ao arquivo xml


fwrite($fp,$campo);

$campo = "<email>".$dados->EMAIL."</email>\n";
fwrite($fp,$campo);

//$campo = "<registro>\n<cod_secao>".$dados-
>COD_SECAO."</cod_secao>\n";
//fwrite($fp,$campo);
//abre campo data
$campo = "<codsecao>".$dados-
>COD_SECAO."</codsecao>\n";
fwrite($fp,$campo);

//mostrando
$campo = "<conteudo><![CDATA[".$this-
>retornaConteudo($dados->CONTEUDO,'1')."]]></conteudo>\n</registro>\n";
fwrite($fp,$campo);
}//FECHA WHILE
}//FECHA IF

$campo="</noticias>"; //FINALIZA O ARQUIVO XML


fwrite($fp,$campo);
fclose($fp);
}

function mostraSecao(){ //$codigo){


$sqltmp = "SELECT * FROM SECAO ORDER BY COD_SECAO";// WHERE CODIGO =
$codigo ORDER BY CODIGO";
$fp = fopen('secao.xml', 'a+');
$campo="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><tabela-
secao>"; //adiciona ao arquivo xml
fwrite($fp,$campo);
if ($this->query($sqltmp)){

while ($array = ibase_fetch_object($this->result)){


$dados = $array;

//abre campo titulo


$campo = "<registro>\n<cod_secao>".$dados-
>COD_SECAO."</cod_secao>\n";
fwrite($fp,$campo);

$campo = "<cod_pai>".$dados->COD_PAI."</cod_pai>\n";
fwrite($fp,$campo);

//abre campo data


$campo = "<nome><![CDATA[".$dados->NOME."]]></nome>\n";
fwrite($fp,$campo);

//mostrando
$campo = "<conteudo><![CDATA[".$this->retornaConteudo($dados-
>CONTEUDO,'1')."]]></conteudo>\n</registro>\n";
fwrite($fp,$campo); //adiciona ao arquivo xml
}//fim while
} //fim if
$campo="</tabela-secao>"; //adiciona ao arquivo xml
fwrite($fp,$campo);
fclose($fp);

//**** exporta tabela documento

function mostraDocumento(){//$codigo){

$fp = fopen('documento.xml', 'a+');

$campo="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><tabela-


documento>"; //adiciona ao arquivo xml
fwrite($fp,$campo);

$sqltmp = "SELECT * FROM DOCUMENTO ORDER BY DATA DESC";

if ($this->query($sqltmp)){

while ($array = ibase_fetch_object($this->result))


{
$dados = $array;
//abre campo titulo
$campo = "<registro>\n<titulo><![CDATA[".$dados-
>TITULO."]]></titulo>\n";
fwrite($fp,$campo);
//abre campo data
$campo = "<data>".$dados->DATA."</data>\n";
fwrite($fp,$campo);

$campo = "<codsecao>".$dados-
>COD_SECAO."</codsecao>\n";
fwrite($fp,$campo);

//mostrando
$campo = "<caminho><![CDATA[".$dados-
>CAMINHO."]]></caminho>\n</registro>\n";
fwrite($fp,$campo);
}//FECHA WHILE
}//FECHA IF

$campo="</tabela-documento>"; //FINALIZA O ARQUIVO XML


fwrite($fp,$campo);
fclose($fp);
}
?>

Como resultado da chamada dessas funções, obteve-se três arquivos que

posteriormente foram unidos dentro um arquivo único chamado tabelas.xml sob o nó

<tabelas>.

Aplicam-se os arquivos de transformação(XSL). No caso em questão

utilizou-se a seguinte seqüência comandos executado em um terminal Linux:

xsltproc –o passo1.xsl tabelas.xml passo1.xml

xsltproc –o passo2.xsl passo1.xml passo2.xml

xsltproc –o passo3.xsl passo2.xml joomla.sql

Abaixo seguem o conteúdo dos arquivos passo1.xsl, que transforma a

estrutura extraída das tabelas do Interbase para uma estrutura intermediária que

organiza os dados de forma hierárquica:

Arquivo passo1.xsl

<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Trans-
form">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" in-
dent="yes" cdata-section-elements="conteudo caminho titulo" />

<xsl:template match="/">
<intranet>
<!--secoes-->
<xsl:for-each select="/tabelas/tabela-secao/registro">

<secao>

<codigo><xsl:value-of se-
lect="./cod_secao/text()"/></codigo>
<codigo_pai><xsl:value-of select="./cod_pai/text()"/></co-
digo_pai>
<nome><xsl:value-of select="./nome/text()"/></nome>
<conteudo>
<xsl:value-of select="./conteudo/text()" dis-
able-output-escaping="yes"/>
</conteudo>

<!--documentos-->
<xsl:variable name="codigoSecaoAtual" se-
lect="./cod_secao/text()"></xsl:variable>

<xsl:for-each select="/tabelas/tabela-
documento/registro">

<xsl:if test="/tabelas/tabela-
documento/registro/codsecao/text()=$codigoSecaoAtual">
<documento>
<titulo><xsl:value-of se-
lect="./titulo/text()"/></titulo>
<data><xsl:value-of se-
lect="./data/text()"/></data>
<caminho><xsl:value-of select="./cami-
nho/text()"/></caminho>
</documento>
</xsl:if>
</xsl:for-each>
<!--/documentos-->

<!--noticias-->
<xsl:for-each select="/tabelas/noticias/registro">
<xsl:if
test="/tabelas/noticias/registro/codsecao/text()=$codigoSecaoAtual">
<noticia>
<titulo><xsl:value-of select="./titulo/text()"/></titulo>
<data><xsl:value-of se-
lect="./data/text()"/></data>
<servidor><xsl:value-of select="./servidor/text()"/></ser-
vidor>
<email><xsl:value-of select="./email/text()"/></email>
<secao><xsl:value-of select="./secao/text()"/></secao>
<conteudo>
<xsl:value-of select="./conteudo/text()" disable-output-es-
caping="yes"/>
</conteudo>
</noticia>
</xsl:if>
</xsl:for-each>

<!--/noticias-->
</secao>
</xsl:for-each>
<!--/secoes-->
</intranet>
</xsl:template>
</xsl:stylesheet>

No arquivo XSL seguinte, os dados são transformados para a estrutura

de dados que é utilizada no Joomla.

Arquivo passo2.xsl

<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Trans-
form">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" in-
dent="yes" cdata-section-elements="fulltext title description caminho con-
teudo" />

<xsl:template match="/">
<intranet>
<componente>

<conteudo>
<xsl:for-each select="/intranet/secao">
<secao>
<id><xsl:value-of select="./codigo/text()"/></id>
<title><xsl:value-of select="./nome/text()"/></title>
<description><xsl:value-of select="./conteudo/text()"/></descrip-
tion>
<categoria>
<id><xsl:value-of select="./cod_secao/text()"/></id>
<title>NOTICIAS</title>
<alias>noticias</alias>
<section><xsl:value-of select="./cod_secao/text()"/></sec-
tion>
<description>Notícias Relacionadas à Seção</description>
<xsl:for-each select="./noticia">
<artigo>
<!--<id/>-->
<title><xsl:value-of select="./titulo/text()"/></title>
<created_by_alias><xsl:value-of se-
lect="./servidor/text()"/></created_by_alias>
<fulltext><xsl:value-of se-
lect="./conteudo/text()"/></fulltext>
<created><xsl:value-of select="./data/text()"/></created>
</artigo>
</xsl:for-each>
</categoria>
</secao>
</xsl:for-each>
</conteudo>
<downloads>
<xsl:for-each select="/intranet/secao">
<secao>
<categoria>
<xsl:for-each select="./documento">
<arquivo>
<titulo><xsl:value-of select="./titulo/text()"/></titulo>
<data><xsl:value-of select="./data/text()"/></data>
<caminho><xsl:value-of select="./caminho/text()"/></caminho>
</arquivo>
</xsl:for-each>
</categoria>
</secao>
</xsl:for-each>
</downloads>
</componente>
</intranet>

</xsl:template>
</xsl:stylesheet>

Arquivo passo3.xsl

<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Trans-
form">
<xsl:output method="text" version="1.0" encoding="ISO-8859-1" />

<xsl:template match="/" >

<xsl:for-each select="/intranet/componente/conteudo/secao" >


<xsl:variable name="codSecao"><xsl:value-of se-
lect="./id/text()"/></xsl:variable>
<xsl:variable name="apos">'</xsl:variable>
<xsl:variable name="apos2">\'</xsl:variable>
<xsl:variable name="description"><xsl:value-of select="./descrip-
tion/text()"/></xsl:variable>

<xsl:variable name="description2">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="$description"/>
<xsl:with-param name="replace" select="$apos"/>
<xsl:with-param name="with" select="$apos2"/>
</xsl:call-template>
</xsl:variable>

<xsl:text>INSERT INTO JOS_SECTIONS


(id,title,description,alias,scope,published) VALUES
('</xsl:text><xsl:value-of select="$codSecao" />','<xsl:value-of se-
lect="./title/text()"/>','<xsl:value-of select="$descrip-
tion2"/>','<xsl:value-of select="$codSecao"/><xsl:text
>','content','1');</xsl:text>

<xsl:for-each select="./categoria">

<xsl:text> INSERT INTO JOS_CATEGORIES (parent_id, title, name,


alias, section, image_position, description, published) VALUES ('0',
'Notícias', '', 'noticias', '</xsl:text><xsl:value-of select="$codSe-
cao"/>', 'left', '<xsl:value-of select="./conteudo/text()"/><xsl:text>',
'1'); </xsl:text>
<xsl:for-each select="./artigo">

<xsl:variable name="fulltext"><xsl:value-of se-


lect="./fulltext/text()"/></xsl:variable>
<xsl:variable name="fulltext2">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="$fulltext"/>
<xsl:with-param name="replace" select="$apos"/>
<xsl:with-param name="with" select="$apos2"/>
</xsl:call-template>
</xsl:variable>

<xsl:text> INSERT INTO JOS_CONTENT ( title, alias,`fulltext`,


state, sectionid, mask, catid, created, created_by, created_by_alias )
VALUES ( '</xsl:text><xsl:value-of select="./title/text()"/>', 'noticia-
<xsl:value-of select="$codSecao"/>', '<xsl:value-of select="$fulltext2"/>',
'1', '<xsl:value-of select="$codSecao"/>', '0','<xsl:value-of select="$cod-
Secao"/>', '<xsl:value-of select="./created/text()"/>', '62', '<xsl:value-
of select="./created_by_alias/text()"/><xsl:text>');</xsl:text>
</xsl:for-each>

</xsl:for-each>

</xsl:for-each>
<!--

<downloads>
<xsl:for-each select="/intranet/secao">
<secao>
<categoria>
<xsl:for-each select="./documento">
<arquivo>
<titulo><xsl:value-of select="./titulo/text()"/></titulo>
<data><xsl:value-of select="./data/text()"/></data>
<caminho><xsl:value-of select="./caminho/text()"/></caminho>
</arquivo>
</xsl:for-each>
</categoria>
</secao>
</xsl:for-each>
</downloads>
-->
</xsl:template>

<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

</xsl:stylesheet>

3.5 Avaliação da solução

Esta solução foi buscada, visando a ser a mais simples e menos

traumática possível. O uso de tecnologias de padrão aberto facilita a busca por

documentações e troca de experiências com outros usuários, através de fóruns e

listas de discussões. Além disso muitas dessas tecnologias já estão maduras e

estáveis o suficiente para garantir a segurança e a integridade das informações por

elas tratadas.

4 Análise dos resultados

Neste capítulos depois de os dados terem sido coletados e migrados para

a nova estrutura, apresentam-se os resultados.

4.1 Apresentação dos resultados

As figura 2 e 3 mostram um print de tela da intranet antiga e seu

respectivo editor para inserção de notícias e artigos.

Figura 2
Figura 3

As figuras 4, 5 e 6 mostram a página inicial da nova intranet, a

página administrativa e o editor de artigos e notícias.


Figura 4:

Figura 5:
Figura 6:

Na figura 7, é apresentada um exemplo de uma notícia com a inserção de

imagens em seu conteúdo.


Figura 7:

4.2 Análise dos resultados

Ao compararmos as duas estruturas, percebe-se que a migração ocorreu

da maneira esperada. Os métodos utilizados atenderam a todas etapas do processo

de migração. Porém, algumas dificuldades foram encontradas. Dentre elas, alguns

caracteres não textuais que apareceram como “sujeira” durante a transformação dos

arquivos intermediários. Essas “sujeiras” foram resultaram do fato de o conteúdo das

notícias estarem armazenados no formato BLOB (do inglês: Binary Large OBject,

que significa grande objeto binário na tradução literal). Outro impasse surgiu de

textos que coincidiam com palavras reservadas da linguagem SQL e acabaram

gerando um conflito na importação da consulta. Esses caracteres precisaram ser

tratados ou removidos para não comprometer o processo de migração.


5 Conclusão

Este trabalho mostrou o processo de migração de dados de uma intranet

com uma estrutura tecnológica arcaica e de certa forma obsoleta para uma nova

estrutura mais otimizada e funcional.

5.1 Apresentação dos principais objetivos atingidos e suas soluções

O objetivo geral que era a implantação de um intranet utilizando-se o

framework Joomla como sistema de gerenciamento de conteúdo foi alcançado.

Para os objetivos específicos, todos os itens propostos também foram

contemplados neste caso de uso: o mecanismo de busca, o repositório de

documentos e o módulo de notícias. O mecanismo de busca, representa neste

estudo de caso o item mais importante, pois era uma funcionalidade que não existia

na estrutura anterior. Com tal funcionalidade, a busca por informações torna-se uma

tarefa simples e representa um avanço no gerenciamento da informação que é o

item mais valioso numa instituição do gênero.

5.1.1 Modelo Atual versus Modelo Proposto

Como forma de tornar clara a diferença entre os modelos, uma tabela

comparativa das funcionalidades é apresentada:


Modelo

Modelo Atual Proposto


Pesquisa de
Não Sim
conteúdo
Utilização de Sim, restrito a 1 Sim, sem

imagens por artigo ou notícia restrições


Interface de
Não Sim
gerenciamento amigável
Manutenibilidad
Difícil Fácil
e

Tabela 1

5.2 Principais contribuições

Dentre as principais contribuições pode-se citar a apresentação de um

método para a atualização tecnológica de sites dinâmicos para um sistema que tem

sido largamente utilizado que é o Joomla.

5.3 Aspectos positivos e negativos

O método utilizado neste estudo de caso pode ser usado como referência

para um processo de migração. As dificuldades encontradas neste trabalho muito

provavelmente não serão as mesmas mas a experiência obtida com este estudo

servirá de base para nortear um novo trabalho.

5.4 Trabalhos futuros


Um projeto que será executado com brevidade será a atualização

tecnológica da página de Internet da Justiça Federal de Mato Grosso do Sul. A

página atual segue a mesma estrutura da intranet, logo, o mesmo método poderá

ser aplicado.
6 Referências Bibliográficas

HEXSEL, Roberto André. Propostas de Ações de Governo para Incentivar

o Uso de Software Livre. Curitiba,UFPR 2002. Relatório Técnico RT-DINF 004/2002.

Disponível em http://www.inf.ufpr.br/~roberto.

TAKAHASHI, Tadao (Org.). Sociedade da Informação no Brasil. Livro

Verde. Brasília, Ministério da Ciência e Tecnologia. 2000.

e-PING. Padrões de interoperabilidade de Governo Eletrônico.

Documento de Referência – Versão 4 – pág. 9

http://www.joomla.org/about-joomla.html Consultado em 09/11/2010.

Você também pode gostar