Thiago Monografia 06-12-2010

53

Click here to load reader

Transcript of Thiago Monografia 06-12-2010

Page 1: Thiago Monografia 06-12-2010

Thiago Mendes Borges

O CMS JOOMLA COMO AMBIENTE DE DESENVOLVIMENTO WEB:

ANÁLISE DO SISTEMA WEBGIZ DA UNIMONTES

Monografia apresentada ao curso de Sistemas

de Informação da Universidade Estadual de

Montes Claros, como exigência para obtenção

do grau de Bacharel em Sistemas de

Informação.

Orientador: Professor Alcino Franco de

Moura Júnior

Montes Claros - MG

Dezembro / 2010

Page 2: Thiago Monografia 06-12-2010

Thiago Mendes Borges

O CMS JOOMLA COMO AMBIENTE DE DESENVOLVIMENTO WEB:

ANÁLISE DO SISTEMA WEBGIZ DA UNIMONTES

Monografia apresentada ao curso de Sistemas

de Informação da Universidade Estadual de

Montes Claros, como exigência para obtenção

do grau de Bacharel em Sistemas de

Informação.

Orientador: Professor Alcino Franco de Moura

Júnior

Membros:

_____________________________________________

Professora Gilmara Aparecida de Freitas Dias

______________________________________________

Professor Frederico Bida de Oliveira

Montes Claros - MG

Dezembro / 2010

Page 3: Thiago Monografia 06-12-2010

RESUMO

As ferramentas que automatizam, organizam e facilitam todo o processo de criação, edição e

publicação em ambiente web são requisitos fundamentais para a administração e distribuição

da informação. Neste contexto o CMS (Content Manangement Systems) ou Sistema

Gerenciador de Conteúdo Joomla! é apresentado como ambiente para o desenvolvimento de

aplicações web usufruindo de todos os benefícios advindos desse sistema. Para tanto foram

feitos estudos, pesquisas e foi analisada a aplicação WebGiz a fim de avaliar as vantagens da

implantação do sistema acadêmico na Unimontes utilizando o Joomla. O sistema acadêmico

WebGiz que subdivide-se nos módulos WebAluno e WebProfessor, é integrante da plataforma

GIZ, aplicativo que permite um controle total e integrado da área acadêmica da instituição

acessível via internet pelos usuários, desenvolvido pela empresa AIX Sistemas. Ao final é

apresentado algumas características do desenvolvimento de aplicação e avaliou como

vantajoso a utilização do Joomla! no desenvolvimento do sistema acadêmico WebGiz.

Palavras-chave: Gerenciamento de Conteúdo, CMS, Joomla, Desenvolvimento web.

Page 4: Thiago Monografia 06-12-2010

ABSTRACT

The tools that automate, organize and facilitate the entire process of creating, editing

and publishing in the web environment are key requirements for the administration and

distribution of information. In this context the CMS (Content Manangement Systems) or

Content Management System Joomla! is as an environment for developing web

applications taking advantage of all the benefits from these systems. For both studies

were conducted, research and application WebGiz was analyzed to assess the

advantages of deploying the system in academic Unimontes using Joomla. The

academic system is divided into WebGiz WebAluno and WebProfessor, is a member of

the platform GIZ, an application that allows full control and integration of the

academic institution's accessible via the Internet by users, developed by AIX

Sistemas. At the end it is presented some characteristics of the development of

application and assessed as advantageous to use the Joomla! the development of the

academic system WebGiz.

Key-words: Content Management, CMS, Joomla, Web Development.

Page 5: Thiago Monografia 06-12-2010

LISTA DE FIGURAS

Figura 1 - Processo padrão de um website. Fonte: Okanagan (2010) ...................................... 21

Figura 2 - Processo otimizado de colaboração. Fonte: Okanagan (2010) ................................ 22

Figura 3 - Utilização dos CMS durante os anos de 2004 a 2010.............................................. 24

Figura 4 - Organização hierárquica do conteúdo. Fonte: Oreilly (2010). ................................ 27

Figura 5 - Exemplo de disposição de componente, plugin e módulo. ...................................... 29

Figura 6 - Estrutura de diretórios do Joomla! ........................................................................... 29

Figura 7 - Estrutura de diretório do componente de conteúdo. ................................................ 31

Figura 8 - Estrutura de diretório do template Beez. ................................................................. 32

Figura 9 - Estrutura MVC do Joomla!. Fonte: AFTEK (2010) ................................................ 33

Figura 10 - Estrutura do Framework do Joomla!. Fonte: Aldeia Numaboa (2010).................. 33

Figura 11 - Tela de acesso ao sistema WebGiz. ........................................................................ 39

Figura 12 - Módulo de login. .................................................................................................... 42

Figura 13 - Módulo mensagens para visitantes. ....................................................................... 42

Figura 14 - Módulo mensagens específico para alunos ou professores. Fonte: Wiki AIX

Sistemas (2010) ........................................................................................................................ 42

Figura 15 - Módulo menu do perfil aluno. Fonte: Wiki AIX Sistemas (2010)......................... 43

Figura 16 - Tipos de informações de login. Fonte: Wiki AIX Sistemas (2010) ....................... 43

Figura 17 - Estrutura do componente aluno. Fonte: Wiki AIX Sistemas (2010)...................... 44

Figura 18 - Estrutura do componente professor. Fonte: Wiki AIX Sistemas (2010) ................ 44

Figura 19 - Estrutura do componente aixgen. Fonte: Wiki AIX Sistemas (2010) .................... 45

Figura 20 - Tela de administração dos templates. Fonte: Wiki AIX Sistemas (2010) .............. 46

Figura 21 - Frequência de erros do WebGiz. ............................................................................ 47

Figura 22 - Navegação e usabilidade do software. ................................................................... 47

Figura 23 - Atendimentos de suporte realizados aos usuários finais. ....................................... 48

Page 6: Thiago Monografia 06-12-2010

LISTA DE QUADROS

QUADRO 1 - Websites e portais de Minas Gerais que utilizam o Joomla! ................... 25

QUADRO 2 – Arquivos e diretórios da raíz do Joomla! ............................................... 30

Page 7: Thiago Monografia 06-12-2010

SUMÁRIO

1 INTRODUÇÃO ................................................................................................... 9

1.1 PROBLEMA ...................................................................................................... 11

1.2 OBJETIVO ......................................................................................................... 11

2 REVISÃO DE LITERATURA .......................................................................... 12

2.1 SISTEMA GERENCIADOR DE CONTEÚDO ................................................ 12

2.1.1 Gestão de conteúdo ............................................................................................ 12

2.1.2 Características dos cms ...................................................................................... 16

2.1.2.1 Modularização ............................................................................................ 16

2.1.2.2 Usabilidade ................................................................................................. 16

2.1.2.3 Padronização ............................................................................................... 17

2.1.2.4 Escalabilidade ............................................................................................. 18

2.1.2.5 Manutenabilidade ........................................................................................ 18

2.1.3 Integração aos sistemas legados ......................................................................... 19

2.1.4 Benefícios do uso de cms ................................................................................... 20

2.2 CASO JOOMLA ................................................................................................ 24

2.2.1 Organização do site ............................................................................................ 26

2.2.2 As extensões ....................................................................................................... 27

2.2.3 Estrutura de diretórios e arquivos....................................................................... 29

2.2.4 Entendendo o framework do joomla! ................................................................. 32

2.2.4.1 A camada framework .................................................................................. 34

2.2.4.2 A camada aplicativo .................................................................................... 35

2.2.4.3 A camada das extensões ............................................................................. 35

2.2.4.4 Entendendo o mecanismo ........................................................................... 36

2.2.5 Requisitos de sosftware ...................................................................................... 36

2.3 WEBGIZ NA UNIMONTES ............................................................................. 38

3 METODOLOGIA .............................................................................................. 40

3.1 CARACTERIZAÇÃO ....................................................................................... 40

3.2 PROCEDIMENTO............................................................................................. 40

3.3 INSTRUMENTO ............................................................................................... 41

3 RESULTADOS E DISCUSSÕES ..................................................................... 42

4 CONSIDERAÇÕES FINAIS ............................................................................. 49

REFERÊNCIAS ........................................................................................................... 50

Page 8: Thiago Monografia 06-12-2010

APÊNDICE .................................................................................................................. 53

Page 9: Thiago Monografia 06-12-2010

9

1 INTRODUÇÃO

A Internet passou a fazer parte do dia-a-dia da sociedade, sendo cada vez maior o

número de pessoas que acessam sites a procura de informações sobre os mais variados temas.

A Web se tornou a plataforma universal mais rápida do que qualquer outra tecnologia na

história. Ela permite a empresas de qualquer porte expor seus produtos ou serviços, efetuar

pedidos, prestar suporte personalizado e ajudar clientes e fornecedores a manterem contato

facilmente (JASSINEK, 2000).

Ferramentas que automatizam, organizam e facilitam todo o processo de criação,

edição e publicação em ambiente web são requisitos fundamentais para a administração e

distribuição da peça-chave do mundo atual: a informação. A vantagem de se trabalhar com o

CMS Joomla! está na diversidade de informações e nos diferenciais que a empresa poderá

oferecer ao cliente de forma clara, objetiva e agradável, o que demanda uma atualização

eficiente do site.

Existem CMS baseados em duas licenças diferentes: os baseados e distribuídos

sob a licença GNU/GPL1 (Software Livre) ou licenças similares, e os comerciais, ou seja,

softwares proprietários.

Um sistema baseado na licença do Software Livre tem muitas vantagens sobre um

software proprietário. Dentre elas vale destacar a independência em todos os sentidos em

relação ao fornecedor do software, e a possibilidade de realizar qualquer alteração com um

custo bem inferior ao sistema proprietário.

A utilização do Joomla! integrado ao processo de desenvolvimento de softwares

web provê uma gama de benefícios, principalmente no que se refere ao tempo gasto no

desenvolvimento.

O desenvolvimento de aplicações com o CMS viabiliza o atendimento a alguns

requisitos, que dentre eles estão: padronização, escalabilidade, manutenabilidade e segurança

dos dados.

O fato de o CMS atender a estes requisitos e estar em conformidade com diversos

padrões de desenvolvimento de software é um ponto positivo para que desenvolvedores

consigam os melhores resultados em seus projetos de software.

Em linhas gerais o presente trabalho analisou algumas características do Joomla!,

1 GNU/GPL é uma licença copyleft, que significa que derivações do documento precisam ser livres no mesmo

sentido, para softwares e outros tipos de obras. http://www.gnu.org/licenses/gpl.html.

Page 10: Thiago Monografia 06-12-2010

10

que são relevantes ao processo de desenvolvimento de software para que fosse possível

avaliar as vantagens da implantação do sistema acadêmico WebGiz na Unimontes utilizando o

Joomla!.

O sistema acadêmico WebGiz que subdivide-se em WebAluno e WebProfessor, é

integrante da plataforma GIZ2, aplicativo que permite um controle total e integrado da área

acadêmica da instituição acessível via internet pelos usuários, desenvolvido pela empresa AIX

Sistemas.

O WebAluno é um módulo de acompanhamento acadêmico on-line que possibilita

um canal de comunicação entre professor e aluno. Além disso, é uma alternativa inovadora

que permite o acesso às informações curriculares em qualquer momento via Internet.

O sistema WebProfessor consiste em uma módulo que permite a integração do

trabalho dos professores e da secretaria acadêmica por meio da internet. O professor tem a seu

dispor a qualquer hora e local (desde que tenha acesso à internet) uma ferramenta que permite

realizar o trabalho de registro de notas, faltas, aulas, upload de arquivos e conteúdo

programático de suas disciplinas.

Esse conjunto de aplicativos envolvidos no WebGiz é fundamentados na

ferramenta Joomla!, ou seja, o sistema WebGiz é a soma de módulos e componentes para o

Joomla!.

No Capítulo 1 apresenta-se o contexto deste trabalho na Unimontes em relação ao

desenvolvimento de software utilizando o Joomla!. O Capítulo 2 aborda conceitos e

benefícios dos softwares de gestão de conteúdo incorporados ao desenvolvimento de outros

softwares bem como a integração destes aos sistemas legados, objeto de pesquisa deste

trabalho. No Capitulo 3 é feita uma abordagem do CMS Joomla!, suas características e

requisitos, como é organizado internamente e como funciona o seu framwork. O Capitulo 4

apresenta uma visão geral do sistema WebGiz e seus componentes. No Capitulo 5 é

apresentado a metodologia utilizada para o desenvolvimento deste trabalho. No Capitulo 6 as

informações coletadas são analisadas e é apresentado o resultado. Por fim, no Capitulo 7 são

delineadas algumas considerações finais.

2 GIZ é um suíte de softwares para gestão acadêmica e docente.

Page 11: Thiago Monografia 06-12-2010

11

1.1 PROBLEMA

O problema abordado e motivo de estudos e pesquisa deste trabalho é averiguar se

o CMS Joomla! é adequado para desenvolvimento de sistemas web.

1.2 OBJETIVO

Como objetivo tem-se levantar as características e funcionalidades, estudar a

aplicação WebGiz e seus componentes a fim de verificar sua estrutura de

desenvolvidmento. E por fim verificar as vantagens em utilização do CMS (Content

Manangement System) ou Sistema Gerenciador de Conteúdo Joomla! como um ambiente

para o desenvolvimento do sistema WebGiz da Unimontes.

Page 12: Thiago Monografia 06-12-2010

12

2 REVISÃO DE LITERATURA

Este Capítulo apresenta toda a revisão de literatura necessária para o

desenvolvimento deste trabalho.

2.1 SISTEMA GERENCIADOR DE CONTEÚDO

Este seção apresenta os conceitos, características e benefícios advindos do uso dos

Sistemas de Gerenciamento de Conteúdo. A seguir são apresentados alguns comentários

acerca dos quatro principais CMS disponíveis na atualidade, Wordpress, Joomla, Drupal e o

Plone.

2.1.1 Gestão de conteúdo

De acordo com Content Management (2001), “conteúdo é, em essência, qualquer

tipo ou unidade de informação digital que é utilizada nas páginas dos websites. Ele pode ser

texto, imagem, gráficos, vídeo, som ou, em outras palavras, qualquer coisa que é possível de

ser publicada em uma intra, inter ou extranet”. Assim, a Gestão de Conteúdos, ou “Content

Management” apoia organizações na captação, organização e distribuição de conteúdos

originários de várias fontes e destinados a diversos tipos de dispositivos de saída.

De acordo com as definições de Lapa (2004), a gestão de conteúdo pode ser

definida como uma série de técnicas, exemplos e metodologias de ordem estratégica e

tecnológica visando à integração e automatização de todos os processos relacionados à

criação, agregação, personalização, entrega e arquivamento de conteúdos de uma organização.

Há pouco tempo o tipo de conteúdo que existia nos portais web que segundo Gant

& Gant (2002) serve como meio de acesso integrado que fornece aos visitantes um ponto

único de contato e acesso aos serviços e informações, e intranets se destacava principalmente

por páginas estáticas. Porém, hoje são os usuários que ditam quais são os conteúdos que serão

disponibilizados e os tipos destes variam muito. Originando de fontes diversas, de diversos

Page 13: Thiago Monografia 06-12-2010

13

tipos e a serem destinados aos mais variados dispositivos.

As páginas estáticas necessitam que desenvolvedores web programem cada página

do site e qualquer mudança que seja necessário será realizada pelos mesmos.

As empresas passaram a contar com mais um canal de distribuição de informações

para funcionários, clientes, fornecedores e todos os que se relacionam com as mesmas. Passou

a ser possível disponibilizar, para toda essa gama de interessados, conteúdos que se sofisticam

e crescem em complexidade a cada dia, integrando formatos mais convencionais (textos e

figuras) e sons, vídeos, filmes, etc. Neste novo cenário, as empresas passaram a necessitar de

ferramentas que permitam cuidar de seu conteúdo informacional de forma ágil.

De acordo com Bax (2003)

As ferramentas de Gestão de Conteúdo Web são atualmente objeto de forte interesse.

Poucos projetos Internet de expressão são encarados hoje sem recurso à uma solução

que integre o maior número possível de funcionalidades de gestão de conteúdo.

Segundo Bax e Pereira (2002), a ideia básica por trás de um CMS é a separação

entre a gestão de conteúdo e o design gráfico das páginas que a apresentam. Enfim, estruturar,

facilitar, organizar, distribuir e disponibilizar toda informação em um ambiente Web. Com

ferramentas simples e através do próprio navegador, é possível gerenciar todo o conteúdo,

desde a sua criação até a distribuição e o arquivamento.

Moratelli (2002), define gerenciamento do conteúdo como sendo "o controle–

administração, gerenciamento do fluxo, acesso ao conteúdo e segurança das informações de

uma organização (sejam elas textos, imagens, gráficos, áudio ou vídeo)". Complementando,

Teixeira (2005) define CMS como sendo sistemas que gerenciam conteúdo e que permitem

gerenciamento de workflow3, blogs, portais de notícias, fórum, livros de visitas, dentre outros

recursos.

Com base nos autores abordados até agora, tem-se que o processo de gestão de

conteúdos se divide em três etapas básicas: a criação, a gestão e a publicação.

O CMS deve permitir que os próprios colaboradores, no papel de autores, criem

seus conteúdos sem necessidade de intermediários, utilizando os diversos programas

3 Workflow é a automação do processo de negócio na sua totalidade ou em partes, onde documentos,

informações ou tarefas são passadas de um participante para o outro para execução de uma ação, de acordo com

um conjunto de regras de procedimentos.

Page 14: Thiago Monografia 06-12-2010

14

disponíveis. Em seguida, estes conteúdos são armazenados em repositórios centralizados para

serem tratados (gerenciados, padronizados, formatados e publicados no website) através do

CMS, que deve gerir também as revisões, atualizações e o controle de acesso, garantindo

confiabilidade ao que será publicado e segurança quanto à propriedade e a autoria dos

conteúdos.

Rahmel (2007) ainda afirma que com a implantação de um CMS, a maioria

problemas relacionado à administração local do conteúdo praticamente desaparecem, as

diversas áreas do site são atualizadas dinamicamente sem necessidade de qualquer

programação.

Ainda, segundo Rahmel (2007) para que grandes empresas tenham sucesso com

essas ferramentas, seja para gerenciar os milhares de usuários cadastrados nos portais ou para

organizar e publicar textos, há a necessidade de se ter um bom conhecimento dessas

aplicações.

Suas funcionalidades variam de acordo com o uso que se pretende, existindo CMS

específicos para áreas como mídia (áudio e vídeo), notícias (textos e imagens), plataformas de

ensino, comércio eletrônico ou ainda aqueles genéricos que podem ser utilizados em qualquer

área, agregando-se ao sistema básico, componentes e módulos adicionais de acordo com as

necessidades apresentadas (MICHELAZZO, 2007).

Um CMS é composto por módulos que oferecem serviços de forma ágil para a

gestão de conteúdos. Para Bax (2003) as funcionalidades essenciais que caracterizam o

conceito e que se desenvolvem à medida que novos produtos disponíveis no mercado chegam

a maturidade são:

controle de usuários e dos seus direitos - permite o controle de acesso dos

usuários por meio das ferramentas de autenticação, autorização e

auditorias, possibilitando a criação de perfis de usuário. Este perfil

representa os interesses e constitui um recurso essencial para melhorar a

precisão do processo de recuperação da informação;

criação, edição e armazenamento de conteúdo em formatos diversos –

suporte oferecido pelo CMS à criação, edição e manipulação de conteúdos,

considerando os vários tipos de conteúdo (áudio, vídeo, imagem, xml,

html, texto etc);

metadados - descrevem características importantes do conteúdo como

descrição, autor, linguagem, data de criação, data de revisão e etc. São

Page 15: Thiago Monografia 06-12-2010

15

úteis para melhorar a precisão da busca por texto completo, permitindo aos

usuários especificar atributos adicionais;

controle da qualidade de informação - inclui regras associadas aos tipos de

conteúdo, permitindo controle e acompanhamento do ciclo de vida do

conteúdo, ou seja os mecanismos de workflows;

classificação, indexação e busca de conteúdo - inclui mecanismos

automatizados de classificação, indexação e recursos de busca eficientes

baseados em metadados. A função de um mecanismo de busca é fornecer

resultados mais relevantes para uma dada consulta no menor espaço de

tempo;

controle da interface – caracterizado pela independencia da lógica da

aplicação e a apresentação visual. Uma vez que a publicação do conteúdo

é dinâmica, em geral, o acesso é controlado e pode ser agrupado em três

áreas de controle: acesso público, acesso a usuários registrados e acesso

privilegiado ou especial;

sindicalização - permite compartilhar informações entre diferentes sites

através do formato Rich Site Summary 4(RSS).

controle de versões - o versionamento do conteúdo permite que versões

diferentes de um documento sejam salvas automaticamente e que possam

ser facilmente recuperadas quando necessárias.

AppliedTheory (2002) ainda complementa as definições propostas por Bax,

afirmando que os quatro maiores componentes no gerenciamento de conteúdo são a

customização e integração com sistemas legados, a administração do conteúdo, acesso e

segurança e gerenciamento de workflow. Este assunto será tratado com mais detalhes nas

próximas seções.

Para o autor a segurança e o controle de acesso trabalham conjuntamente com o

gerenciamento do workflow para garantir o acesso no ciclo de vida do conteúdo (criação,

edição, revisão, aprovação, publicação, leitura, remoção e arquivamento).

4 Rich Site Summary é um formato padronizado para a troca de notícias.

Page 16: Thiago Monografia 06-12-2010

16

2.1.2 Características dos cms

A seguir são citadas cinco características essenciais e fundamentais dos CMS que

reforçam os objetivos e benefícios de seu uso:

2.1.2.1 Modularização

Ramos (2009) afirma que:

Modularização é uma característica inerente a um sistema, componente, projeto ou

qualquer conjunto de procedimentos, que objetivam resolver um problema

específico e bem definido. Este conceito é também compartilhado na programação

estruturada, com a mesma denotação e finalidade, definida em torno do reuso do

módulo e da facilidade de manutenção, dentre outras.

Uma das funcionalidades mais conhecida dos CMS é a sua modularização, onde

pequenos conjuntos de scripts adicionam novas funções.

2.1.2.2 Usabilidade

A norma ISO 9241-11 Guidelines on Usability, segundo Dias (2001), define que

usabilidade é "a capacidade de um produto ser usado por usuários específicos para atingir

objetivos específicos com eficácia, eficiência e satisfação em um contexto específico de uso".

De acordo com os escritos de Nielsen (1993), a usabilidade não é uma

propriedade que tem um único componente da interface de usuário. A usabilidade tem

componentes múltiplos e é tradicionalmente associada à facilidade de aprendizado, eficiência

na utilização, facilidade de memorização, baixa taxa de erros e satisfação subjetiva.

Pode-se dizer que a utilização de CMS proporciona a usabilidade através da

Page 17: Thiago Monografia 06-12-2010

17

utilização dos templates5, uma vez que possibilita a diversos usuários finais a navegação

através de uma interface amigável que lhes permitirá atingir seus objetivos da melhor maneira

possível. As adaptações necessárias são possíveis através de uma interface de fácil utilização

ou mesmo utilizando ferramentas que permitam a edição dos arquivos do template.

2.1.2.3 Padronização

Uma extensão do quesito usabilidade que constitui um benefício da implantação

de um CMS é a padronização, proposta pelos templates. De acordo com Souza (2002), a

padronização oferece vantagens nos seguintes quesitos:

tempo de trabalho, uma vez que o maior esforço será feito apenas

uma vez na fase de elaboração dos padrões;

na produção de novos conteúdos. Com um sistema de navegação

fixo, a equipe terá mais tempo para investir em melhorias de

conteúdo e apresentação dos mesmos;

as despesas de suporte tenderão a diminuir, pois uma interface

básica padrão dará ao usuário muito mais domínio sobre o ambiente

e, com isso, ele passará a resolver seus problemas de forma

independente, recorrendo ao suporte apenas em casos

extraordinários;

os usuários que possuírem permissões administrativas poderão

desenvolver, com essas diretrizes, o conteúdo de seus sites

pensando nesses padrões. Isso diminui o tempo gasto na adaptação

dos textos finais para a web.

5 Templates são designs pré-definidos de apresentação de um site.

Page 18: Thiago Monografia 06-12-2010

18

2.1.2.4 Escalabilidade

Segundo Microsoft (2004), a escalabilidade consiste em responder rapidamente a

condições de negócio em rápida alteração, através de sistemas e plataformas que ofereçam os

mais altos níveis de flexibilidade. Ainda, segundo a mesma empresa, os benefícios advindos

da implementação de sistemas altamente escaláveis giram em torno da maior agilidade e uma

habilidade drasticamente aprimorada de implantar os recursos necessários quando novas

oportunidades aparecerem e as condições são alteradas.

Em suma, de acordo com Microsoft (2004), algumas características são essências

para que o sistema possa ser escalável:

a habilidade de tratar grandes cargas de trabalho;

a habilidade de entregar altos níveis de performance;

a capacidade de crescer fácil e rapidamente;

uma razão preço/desempenho compatível - ou melhor- com as normas

da indústria.

A utilização de CMS permite então que os portais cresçam conforme demanda,

estando preparados para atender a um número grande e crescente de requisições, devido à sua

estrutura escalável.

2.1.2.5 Manutenabilidade

Atividades requeridas para prover suporte ao sistema de software.

Algumas atividades comumente realizadas pela administração do conteúdo

segundo Oliveira (2004) são:

mudança contínua: os sistemas devem ser continuamente adaptados,

caso contrário estes se tornarão progressivamente insatisfatórios;

aumento da complexidade: o sistema aumenta sua complexidade

conforme ele evolui, a não ser que algo seja feito para controlar tal

complexidade;

Page 19: Thiago Monografia 06-12-2010

19

crescimento contínuo: o conteúdo funcional de um sistema deve

crescer continuamente para manter a satisfação do usuário durante a

sua vida útil.

2.1.3 Integração aos sistemas legados

No caso da customização e integração com os sistemas legados, como afirma o

autor, as organizações se diferem pela sua manufatura, políticas e procedimentos, práticas

comerciais, objetivos e estruturas organizacionais. Diante deste cenário, a forma de

customização e a integração com sistemas legados em cada organização são diferentes. Um

sólido gerenciamento de conteúdo precisa ser personalizável para atender às necessidades

específicas de uma organização e coexistir com os sistemas legados. Portanto, um sistema de

gerenciamento de conteúdo precisa se integrar totalmente com a infraestrutura de informação

existente. Dessa forma, os usuários podem utilizar o sistema de gerenciamento de conteúdo e

seus sistemas legados como se fosse um único e grande sistema, adaptado às suas

necessidades. Essa, talvez, seja a tarefa mais trabalhosa. Uma que exige um maior

conhecimento tanto da parte administrativa quanto no que se refere a programação de

extensões para o CMS, das técnicas necessárias e do sistema legado para que as

customizações necessárias possam ser cumpridas.

Tipicamente, os sistemas de gerenciamento de conteúdo precisam se integrar

como sistemas de planejamento de recursos (Enterprise Resource Planning – ERP), sistemas

de gerenciamento de Call Center ou outras aplicações internas ou externas (parceiros de

negócio).

O sistema de gerenciamento de conteúdo também pode ser integrado com um

sistema de gerenciamento do relacionamento com o cliente (Customer Relationship

Management – CRM) ou sistemas de estoque e financeiro para criar aplicações de e-

commerce. O gerenciamento de conteúdo pode ser uma ponte entre potenciais usuários do

conteúdo de uma organização e entre o conteúdo novo e o legado (através dos sistemas) da

organização. Os usuários recebem informações personalizadas, de acordo com suas

necessidades, e são autorizados a ver onde a informação é armazenada. Um sistema de

gerenciamento de conteúdo deve esconder dos usuários a diferença entre conteúdo e

Page 20: Thiago Monografia 06-12-2010

20

aplicações, criando a desejável ilusão de um único sistema com uma única interface para o

usuário.

De acordo Laudon & Laudon (2007), um modo de integrar sistemas legados é

utilizar uma aplicação especial chamada middleware para criar uma interface ou ponte entre

dois sistemas diferentes. Middleware é a aplicação que conecta dois softwares que, de outra

forma, ficariam separadas, permitindo que se comuniquem e transmitam dados uma para

outra, ou seja, o middleware serve como elemento que aglutina e dá coerência a um conjunto

de aplicações e ambientes.

Segundo a RNP (2005) middleware é:

o neologismo criado para designar camadas de software que não constituem

diretamente aplicações, mas que facilitam o uso de ambientes ricos em tecnologia da

informação. A camada de middleware concentra serviços como identificação,

autenticação, autorização, diretórios, certificados digitais e outras ferramentas para

segurança.

2.1.4 Benefícios do uso de cms

Um sistema de gestão de conteúdo proporciona benefícios tanto para os

administradores do sistema quanto para os colaboradores. Sendo que um desses benefícios -

talvez o maior deles - possa ser a possibilidade de se usar templates e itens comuns de design

assegurando dessa forma a consistência da apresentação de todo um site (BAX E PEREIRA,

2002). Além do mais, a responsabilidade pela apresentação das páginas web é retirada dos

colaboradores e passa a ser centralizada na área de TI. Assim, há uma simplificação na

manutenção dos sites das organizações.

A partir de então, o conteúdo desenvolvido pelos colaboradores é incorporado

automaticamente aos templates pelo próprio sistema de gestão de conteúdo, permitindo aos

colaboradores a preocupação apenas com o conteúdo. Daí, a alteração na apresentação de um

site pode ser feita pelos administradores, os quais modificarão somente os templates e não

cada uma das dezenas de páginas individualmente.

Um sistema de gestão de conteúdo simplifica também a incumbência de

responsabilidades pelo fornecimento e manutenção do conteúdo do site. Appliedtheory apud

Moratelli e Valdameri (2002). Os sistemas de gestão de conteúdo possibilitam, em geral,

Page 21: Thiago Monografia 06-12-2010

21

privilégios diferentes de acesso a serem configurados para separar áreas do site sem que os

administradores responsáveis pela configuração tenham que ir ao nível de controle de

permissão do sistema operacional. Sendo que essa intervenção pode ser feita através de um

browser qualquer.

A partir das figuras 01 e 02 podem-se verificar as mudanças no processo de

manutenção do conteúdo de um site, por exemplo.

Figura 1 - Processo padrão de um website. Fonte: Okanagan (2010)

Page 22: Thiago Monografia 06-12-2010

22

Figura 2 - Processo otimizado de colaboração. Fonte: Okanagan (2010)

O webmaster cria um gargalo entre os colaboradores de conteúdo e visitantes do

site. As atualizações para o seu site não estão disponíveis para os visitantes do site, sem

primeiro passar pelo webmaster.

Diversas funcionalidades extras podem ser arquitetadas dentro do próprio

ambiente dos sistemas de gestão de conteúdo ou podem ser disponibilizadas por terceiros em

forma de extensões6. O fornecimento de funcionalidades economiza tempo, que seria

normalmente gasto no desenvolvimento ou tentativa de integrar tais componentes. Segundo

Bax e Pereira (2002), os sistemas mais avançados de gestão de conteúdo oferecem benefícios

adicionais de segurança, ferramentas de gerenciamento, facilitam a interação com a base de

dados, além de ferramentas de indexação e catálogo. Estes benefícios reduzem o tempo de

desenvolvimento de outros componentes do portal e garantem a sua evolução.

O CMS possui um Framework7 que oferece um uma API

8, afim de que o

desenvolvedor possa trabalhar a partir de uma mesma base para criar diversos produtos e

serviços.

6 Extensões podem ser entendidas como pequenas aplicações que agregam uma função particular ou muito

especifica a um sistema. 7 Framework é uma estrutura de software, esqueleto de sistema pré-construído que visa auxiliar o desenvolvedor

de sistemas a diminuir o retrabalho e aumentar o reuso de componentes. 8 API, de Application Programming Interface (ou Interface de Programação de Aplicações), é o termo utilizado

para definir conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas

funcionalidades por programas aplicativos que não querem envolver-se em detalhes da implementação do

software, mas apenas usar seus serviços.

Page 23: Thiago Monografia 06-12-2010

23

Campos (2006) aponta quatro liberdades que devem existir simultaneamente em

um software para que seja considerado Software Livre:

a liberdade de executar o programa, para qualquer propósito (liberdade nº 0);

a liberdade de estudar como o programa funciona, e adaptá-lo para as suas

necessidades (liberdade nº 1). Acesso ao código-fonte é um pré-requisito para

esta liberdade;

a liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo

(liberdade nº 2);

a liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de

modo que toda a comunidade se beneficie (liberdade nº 3). Acesso ao código-

fonte é um pré-requisito para esta liberdade.

A quantidade de CMS disponíveis hoje é muito grande, o que dificulta escolher

um quando se deseja desenvolver um software utilizando gerenciamento de conteúdo. A

editora Packt Publishing, que publica livros destinados a desenvolvedores, administradores e

iniciantes, realiza anualmente a votação dos melhores CMS open source. A votação leva em

consideração vários fatores como desempenho, usabilidade, acessibilidade, facilidade de

configuração e personalização, escalabilidade e segurança. Os CMS que ganharam o prêmio

Overall Open Source CMS Award, ou seja, da categoria global, nos últimos quatro anos

foram:

2009 Wordpress, MODx, SilverStripe

2008 Drupal, Joomla!, Dotnetnuke

2007 Drupal, Joomla!, CMS Made Simple

2006 Joomla!, Drupal, Plone

Os vencedores do prêmio Best Open Source PHP Content Management System,

ou seja, de melhor CMS open source desenvolvido em PHP, nos últimos três anos foram:

2009 Drupal, WordPress, Joomla!

2008 Drupal, Joomla!, CMS Made Simple

2007 Joomla!, Drupal, e107

De acordo com pesquisas feitas no site Google Trends percebe-se pela Figura 3,

que os CMS mais usuais são o Wordpress e o Joomla!, cada um com suas particularidades e

utilidades.

Page 24: Thiago Monografia 06-12-2010

24

Figura 3 - Utilização dos CMS durante os anos de 2004 a 2010.

Fonte: Google Trends (2010).

2.2 CASO JOOMLA

O Joomla! é um software do tipo CMS (Content Management System) ou Sistema

Gerenciador de Conteúdo com a finalidade de tornar mais prático e econômico o

gerenciamento de conteúdo e informação em grandes e pequenos sites, em especial do tipo

portal. Ele facilita de tal forma essa tarefa, que praticamente qualquer pessoa, mesmo que não

possua conhecimento algum em informática, pode gerenciar o conteúdo do site.

O Joomla foi criado em 2005 a partir de outro CMS, o Mambo. Após a ruptura da

empresa Miro, detentora da marca Mambo, com os programadores do projeto mambo, criou-

se o projeto Joomla, mantendo-se fiel à filosofia de Software Livre. O nome Joomla vem do

equivalente fonético da palavra Swahili "Djumla”, que significa “todos juntos” ou “como um

todo”(NORTH, 2008).

Desenvolvido em PHP e com suporte a banco de dados MySQL, o Joomla é

disponibilizado aos usuários comercialmente ou através de licença GNU/GPL. Disponível na

versão 1.5.20, versão estável com a tradução para o português do Brasil e mais outros 64

idiomas, o Joomla tem uma vasta gama de sites de suporte e documentação no Brasil além do

oficial joomla.org que é mundial.

Page 25: Thiago Monografia 06-12-2010

25

Até a presente data, em que este trabalho está sendo escrito, o repositório oficial

do Joomla! conta com aproximadamente 6000 extensões registradas.

Entre as diversas funcionalidades do Joomla, os sites governamentais de suporte

ao Joomla! em português enumeraram como sendo as mais importantes:

Joomla! é decididamente software livre e não há perspectiva de mudança

com relação à isso (ou seja, deve continuar disponível gratuitamente);

existem vários módulos e componentes disponíveis, criados à partir da

base herdada do Mambo;

a popularidade do Joomla! está crescendo rapidamente;

a equipe por trás do Joomla!, composta por membros chave criadores do

Mambo, está comprometida com o projeto e disposta a modernizar o

software continuamente;

o Joomla! é um CMS com diversos recursos disponíveis e de fácil

utilização;

foi escrito com PHP e MySql, dois dos softwares open source de grande

destaque da Internet.

Em Minas Gerais, o Joomla! tem sido bastante adotado por diversos órgãos

governamentais. O quadro 1, segundo Souza (2009), reúne alguns do websites e portais que

utilizam o CMS Joomla.

QUADRO 1 Websites e portais de Minas Gerais que utilizam o Joomla

Órgão/Repartição Endereço

ACADEPOL www.acadepol.mg.gov.br

ADVOCACIA GERAL ESTADO www.age.mg.gov.br

AUDITORIA GERAL DO ESTADO www.auditoria.mg.gov.br

DEFENSORIA PUBLICA www.defensoriapublica.mg.gov.br

DER www.der.mg.gov.br

ESPORTES www.esportes.mg.gov.br

FABRICA DE SOFTWARE www.gfs.prodemge.gov.br

FCS-INTRANET intranetfcs.mg.gov.br

FEAM www.feam.br

Fund. Artes Ouro Preto www.faop.mg.gov.br

IEF www.ief.mg.gov.br

IEPHA www.iepha.mg.gov.br/

IGAM www.igam.mg.gov.br

OUVIDORIA GERAL www.ouvidoriageral.mg.gov.br

PRODEMGE www.prodemge.gov.br

RURALMINAS www.ruralminas.mg.gov.br

SEDE www.sede.mg.gov.br

SEMAD www.semad.mg.gov.br

Page 26: Thiago Monografia 06-12-2010

26

Órgão/Repartição Endereço

SISTEMASPM - SM03 www.sistemaspm.mg.gov.br/sm03

TJM - TRIB.JUSTIÇA MILITAR www.tjm.mg.gov.br

TURISMO www.turismo.mg.gov.br

URBANO www.urbano.mg.gov.br

ARMAZEM DE INFORMACAO www.portaldoservidor.mg.gov.br

IPSEMG www.ipsemg.mg.gov.br

PORTAL ARMAZEM www.portalarmazem.prodemge.gov.br

INTRANET UCP www.ucp.prodemge.gov.br

CULTURA www.cultura.mg.gov.br Fonte: Souza (2009)

O Joomla possui um Framework bastante rico, oferecendo um uma API com

diversos recursos, afim de que o desenvolvedor possa trabalhar a partir de uma mesma base

para criar diversos produtos e serviços.

Devido à abstração do Joomla em relação as suas extensões é possível desenvolver

subsistemas, podendo integrar componentes, módulos e plugins, que podem ser publicados

separadamente sem o sistema original. Isto permite manipular, gerir ou remover parte do

sistema sem afetar o restante.

Desenvolver uma extensão para o Joomla é livre para qualquer pessoa, desde que

cumpra os métodos prescritos para a criação dos mesmos.

2.2.1 Organização do site

Segundo North (2008), um CMS separa totalmente o conteúdo das páginas do seu

formato gráfico. Os conteúdos no Joomla podem estar organizados na hierarquia: seções,

categorias e artigos, representada na Figura 4, é utilizada pra classificar e organizar os artigos

(conteúdo). Assim, o Joomla está organizado em torno de um conceito principal, o de artigos.

Page 27: Thiago Monografia 06-12-2010

27

Figura 4 - Organização hierárquica do conteúdo. Fonte: Oreilly (2010).

Ainda segundo North (2008), A seção é a camada mais alta da hierarquia, que

pode ter uma ou mais categorias. A categoria constitui a camada do meio na hierarquia, que

deve ser necessariamente vinculada a uma seção e pode ter um ou mais artigos. Já os artigos

são a camada mais baixa na hierarquia e os mais importantes. Os conteúdos são inseridos no

site através dos artigos, que permite inserção de textos, imagens, mídias em flash ou áudio.

A criação de um artigo pode não ter vínculo algum, ou pode estar associado a uma

seção/categoria. Em sites com muito conteúdo recomenda-se tal classificação em hierarquias

para facilitar o gerenciamento dos conteúdos.

2.2.2 As extensões

Caratti e Silva (2009) define extensão como “...uma pequena aplicação

desenvolvida com regras de construção estabelecidas pelo ambiente Joomla!.” Ainda,

segundo os mesmos autores, essas extensões são instaláveis, facilitando tanto o processo de

adicionar ou remover uma funcionalidade.

De acordo com os autores as extensões classificam-se em componentes, módulos,

plugins, templates e idiomas:

Page 28: Thiago Monografia 06-12-2010

28

componentes: é uma aplicação responsável por apresentar conteúdo na página

principal. Somente um componente pode ser executado ou exibido por página

carregada. Entre os demais tipos de extensões é o mais complexo no que se refere

ao esforço de desenvolvimento e administração. Cada componente em uma

instalação Joomla! possui um único nome. Em geral, seu código é divido em duas

partes, frontend e backend, e cada parte fica situada em diretórios distintos.

módulos: é uma pequena porção de software, que normalmente é apresentada

como parte de um conteúdo de uma página. Mais de um módulo pode ser

apresentado em uma página na forma de uma barra lateral, menu, cabeçalho ou

rodapé. A configuração de um módulo consiste basicamente em definição de

parâmetros de apresentação, incluindo sua posição na página.

plugins: é uma pequena porção de código contido em uma função ou método que

pode ser executado em reposta a eventos que ocorrem no Joomla!. Como

exemplo, é possível desenvolver um plugin que coloca parte do texto de um artigo

em negrito durante a sua apresentação na página.

template: é responsável pela forma com que o site será apresentado ao usuário,

incluindo cor, fonte de caracteres, estilos, etc. É ele quem determina a organização

dos objetos de uma página no navegador web.

idiomas: permite o desenvolvimento de sites ou aplicações para vários idiomas.

Ao instalar este tipo de extensão e selecioná-lo como padrão, todas as mensagens,

menus e textos pertencentes ao Joomla! serão apresentados no novo idioma.

Page 29: Thiago Monografia 06-12-2010

29

A figura 5 ilustra uma página destacando as extensões citadas anteriormente.

Figura 5 - Exemplo de disposição de componente, plugin e módulo.

2.2.3 Estrutura de diretórios e arquivos

Ao descompactar o pacote do Joomla! obtém-se a estrutura de diretórios percebida

pela figura 6.

Figura 6 - Estrutura de diretórios do Joomla!

Page 30: Thiago Monografia 06-12-2010

30

Estes são todos os diretórios onde estão localizados os arquivos do Joomla! e onde

serão armazenados os arquivos adicionados á aplicação. A seguir, no quadro 2, temos uma

breve descrição de cada diretório e arquivo:

TABELA 2

Arquivos e diretórios da raíz do Joomla!

Nome Descrição

Administrator Pasta onde se encontram todos os arquivos que tratam da

parte administrativa do site. Componentes, módulos, plugins

Cache Arquivos de cache do Joomla

Components Todos os arquivos dos componentes instalados, exceto os da

parte administrativa.

Images Pasta padrão para as images utilizadas pelas extensões

Includes Arquivos do núcleo do Joomla

Installation Arquivos necessários para a instalação do Joomla

Languages Todos os arquivos de linguagem

Libraries Estão localizados os arquivos de terceiros e do core do

Joomla, toda a API se encontra nesta pasta

Logs Pasta onde será salvo os arquivos de log

Media Contém os arquivos relacionados às interfaces dos usuários,

tais como algumas bibliotecas em javascript, arquivos flash,

etc.

Plugins Todos os arquivos de plug-ins

Modules Todos os arquivos de modules do frontend instalados

Templates Arquivos de todos os templates do frontend

Tmp Arquivos temporários, geralmente arquivos de extensões

são copiados para esta pasta durante o processo de

instalação

Page 31: Thiago Monografia 06-12-2010

31

Nome Descrição

Index.php Arquivo de inicio do frontend

Index2.php Arquivo de inicio do backend

Configuration.php Arquivos com as configuração principais do sistema como

dados do banco de dados, ftp, etc

Segundo Caratti e Silva (2009), é percebido que a estrutura de diretórios dos

componentes do frontend seguem o padrão MVC (Model – View – Crontroller). A estrutura de

diretório é geralmente algo como o apresentado abaixo na figura 7.

Figura 7 - Estrutura de diretório do componente de conteúdo.

Cada diretório sob a pasta views é geralmente habilitada para ser chamada a partir

de uma URL. Por exemplo: index.php?option=com_content&view=article&id=1.

Os layouts de cada componente reside no diretório views/view_name/tmpl e este é

geralmente, o único lugar onde códigos HTML são apresentados. Como todo componente de

frontend tem o seu código HTML em arquivos de layouts, o Joomla! possui a possibilidade de

alterar esses arquivos individualmente no template ativo. Como exemplo disso, observando a

figura 8, percebe-se que o template Beez possuiu um diretório chamado htm/.

Page 32: Thiago Monografia 06-12-2010

32

Figura 8 - Estrutura de diretório do template Beez.

Para os componentes, deve-se ter uma estrutura de diretório começando como o

nome do componente (o mesmo que é encontrado no diretório components), o nome da pasta

de visualização (o nomeda view), e, finalmente, inclui um arquivo PHP com o mesmo nome

do arquivo de layout que deseja mudar.

Já para os módulos, procede-se da mesma maneira, com exceção de que eles não

possuem visualizações, apenas o layout para mudar .

2.2.4 Entendendo o framework do joomla!

Antes de prosseguir, iremos entender um pouco mais sobre o funcionamento do

Framework do Joomla!. A figura 9 mostra como ocorre o fluxo de requisição de conteúdo.

Page 33: Thiago Monografia 06-12-2010

33

Figura 9 - Estrutura MVC do Joomla!. Fonte: AFTEK (2010)

Uma vez feita a requisição via navegador web ao servidor onde se encontra a

aplicação, o controlador recebe o evento e acessa o modelo para obter as informações e

requisita a visão apropriada para renderizar as informações no navegador web.

A figura 10, a seguir, apresenta como é feita a estruturação das camadas do

Joomla!.

Figura 10 - Estrutura do Framework do Joomla!. Fonte: Aldeia Numaboa (2010)

Page 34: Thiago Monografia 06-12-2010

34

2.2.4.1 A camada framework

Segundo Vicki (2008), o framework é constituído por classes de objetos que

controlam, geram informações e coordenam as ações do Joomla. Ele possui vários pacotes:

o pacote aplicativo, que alimenta a camada aplicativo e contém a classe

JApplication;

o pacote com as bibliotecas de cache;

o pacote chamado de comum e que contém as classes básicas e as bibliotecas de

compatibilidade com versões anteriores;

o pacote conector com bibliotecas para clientes como FTP9 e LDAP

10;

o pacote para a base de dados que contém a classe JDatabase e as bibliotecas

necessárias;

o pacote documento com as bibliotecas necessárias para criar e apresentar páginas;

o pacote do sistema de arquivos com bibliotecas para interagir com o filesystem;

o pacote i18n com bibliotecas de internacionalização (idiomas);

o pacote de instalação com bibliotecas para poder instalar extensões (componentes,

módulos, plugins, templates, etc);

o pacote de e-mail com bibliotecas;

o pacote modelo com bibliotecas o objeto de acesso de dados;

o pacote de parâmetros com bibliotecas para a manipulação de parâmetros;

o pacote de registro (registry) com bibliotecas de armazenamento de

configurações;

o pacote de modelos com bibliotecas de templates;

o pacote de utilidades com diversas bibliotecas de uso geral;

a classe JFactory que permite instanciar os objetos do framework;

a classe JVersion que permite obter a versão do Joomla.

9 File Transfer Protocol, ou Protocolo de Transferência de Arquivos, e é uma forma bastante rápida e versátil de

transferir arquivos. 10

Lightweight Directory Access Protocol, ou LDAP, é um protocolo para atualizar e pesquisar diretórios rodando

sobre TCP/IP.

Page 35: Thiago Monografia 06-12-2010

35

O framework não pode ser acessado diretamente, mas o Joomla! oferece uma

espécie de ponte para criar seus vários objetos através do JFactory. Os plugins, antes

chamados mambots, são extensões que trabalham com o framework ampliando suas

funcionalidades. Por exemplo, podemos ter um plugin que analisa o texto de uma página antes

que seja apresentado e mude algumas das suas características substituindo partes do texto ou

trocando alguns marcadores por imagens ou que adiciona links automáticos a algumas

palavras previamente configuradas.

Além do JFactory e dos plugins não tem como alterar o comportamento do

framework do Joomla! a não ser alterando seu código fonte.

2.2.4.2 A camada aplicativo

Ainda de acordo com o Vicki (2008), a camada aplicativo é formada por todos os

objetos necessários para que o sistema funcione de forma integrada e coordenada. Esta

camada também é a interface para as extensões.

2.2.4.3 A camada das extensões

Esta camada é constituída por componentes, módulos e templates. Os

componentes são aplicativos escritos para o Joomla que ampliam a funcionalidade do sistema.

Como exemplo, temos um sistema de gerenciamento de weblinks ou de downloads. Os

componentes são elementos incluídos no corpo da página.

Os módulos também são pequenos aplicativos que podem ser incluídos em todas

as páginas (ou apenas nas da sua escolha) em posições definas no arquivo de template como

no topo, nas laterais ou no rodapé. Exemplos são o módulo de login e o módulo de estatística

do site.

Templates são modelos de apresentação das páginas. Controlam a disposição dos

módulos e fornecem informações sobre a aparência e disposição do texto e qualquer outro

conteúdo.

Page 36: Thiago Monografia 06-12-2010

36

2.2.4.4 Entendendo o mecanismo

Para produzir extensões para o Joomla é muito importante entender o mecanismo

do sistema. Conhecendo o funcionamento do sistema fica mais fácil criar extensões que se

integrem de forma harmônica e que incorporem a segurança e a coordenação oferecida pelo

sistema. O processo de maneira simplificada seria algo como:

um script dispara um evento para que o framework forneça os modelos

(classes) necessários para produzir todos os objetos que vão compor o

sistema;

isando o JFactory como ferramenta, o script vai cria todos os objetos

necessários para o funcionamento do mesmo, vai compondo a camada

aplicativo povoando-a com objetos e com referências a bibliotecas;

quando esta camada estiver pronta e ativa, os componentes, módulos e

templates são incorporados e os plugins são ativados.

É importante ressaltar que para poder compreender objetos interligados é preciso

conhecer as características de cada objeto e saber quais métodos (funcionalidades) oferecem e

quais as variáveis que utilizam. Para tanto, é necessário um grau de aprofundamento nos

estudos sobre os objetos fornecidos pelo Joomla!, o que foge o objetivo deste trabalho.

Todo o código fonte do framework localiza-se no diretório /libraries/joomla e

seus subdiretórios.

2.2.5 Requisitos de sosftware

Para instalação do Joomla! é necessário um ambiente computacional que tenha

um servidor web, PHP e banco de dados MySQL. Embora otimizado para um servidor web

Apache, o Joomla! pode ser executado em outros servidores web como o Microsoft IIS. Os

requisitos mínimos para o Joomla 1.5 são:

PHP - 4.3.10 ou superior;

MySQL - 3.23 ou superior;

Page 37: Thiago Monografia 06-12-2010

37

Apache - 1.3 ou superior.

A instalação e configuração de um servidor Web, PHP e banco de dados ainda que

em um ambiente de testes local não são tarefas triviais. Para configurar em um computador

esses serviços existem pacotes que permitem a instalação de todos esses serviços em um só

aplicativo. Existem os seguintes pacotes para os diversos sistemas operacionais:

XAMPP - multi-plataforma - Apache, MySQL, PHP, instalação;

LAMP - plataforma Linux - Apache, MySQL, PHP, instalação;

WAMP - plataforma Windows - Apache, MySQL, PHP, instalação;

MAMP - plataforma Macintosh - Apache MySQL, PHP, instalação;

JSAS - Servidor pré configurado com Joomla!.

É recomendado que se utilize uma IDE11

de programação para facilitar a

depuração bem como destacar a sintaxe da linguagem de programação, possibilitando uma

legibilidade melhor do código. Além de facilitar o acesso aos métodos das classes do Joomla!

11

IDE, do inglês Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, é um

programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o

objetivo de agilizar este processo.

Page 38: Thiago Monografia 06-12-2010

38

2.3 WEBGIZ NA UNIMONTES

De acordo com o site da Universidade Estadual de Montes Claros (Unimontes) o

cumprimento de sua missão, visa contribuir para a melhoria e a transformação da sociedade,

atendendo às aspirações e os interesses de sua comunidade e promover o Ensino, a Pesquisa e

a Extensão com eficácia. Com o principal objetivo a democratização do acesso à educação

superior pública e de qualidade.

Com a grande demanda de informações gerada pelo enorme fluxo operacional da

instituição viu-se necessário a implantação de sistemas que automatizassem tarefas, como o

controle de informações acadêmicas. Segundo o Relatório de Gestão da Unimontes, referente

ao período de dezembro de 2008 à dezembro de 2009, apresenta um total de 1.323 (um mil

trezentos e vinte e três) docentes, dentre eles mestres, doutores, especialistas e graduados, e

8.776 (oito mil setecentos e setenta e seis) discentes dentre os cursos de graduação presencial

e a distância que utilizam o sistema WebGiz.

O sistema WebGiz, integrante da plataforma GIZ, é um aplicativo de é um

sistema de informatização que permite um controle total e integrado da área acadêmica da

instituição online, desenvolvido pela empresa AIX Sistemas.

O WebAluno é um módulo de acompanhamento acadêmico on-line que possibilita

um canal de comunicação entre professor e aluno. Além disso, é uma alternativa inovadora

que permite o acesso às informações curriculares em qualquer momento via Internet. O

sistema consiste em uma ferramenta que permite agilidade no processo de renovação

matrícula para a Secretaria e para o aluno, e serve, também como um canal de integração

entre a instituição e os alunos. O WebAluno é utilizado pelos acadêmicos da Unimontes para

as seguintes consultas: frequência, notas, ocorrências disciplinares, histórico escolar resumido

e gráfico de desempenho aluno x turma. A alimentação das informações no sistema acerca de

situação acadêmica é realizada em parte por funcionários pela Secretaria Geral através da

plataforma GIZ e em parte pelos professores, sendo permitido aos alunos atualizar seus dados

pessoais e renovar matrícula.

O sistema Giz WebProfessor consiste em uma módulo que permite a integração do

trabalho dos professores e da Secretaria Acadêmica, por meio da internet. O professor tem a

seu dispor a qualquer hora e local (desde que tenha acesso à internet) uma ferramenta que

permite realizar o trabalho de registro de notas, faltas, aulas, upload de arquivos e conteúdo

programático de suas disciplinas. O sistema gera como resultado dos lançamentos dos

Page 39: Thiago Monografia 06-12-2010

39

professores o diário de classe completamente preenchido que fica disponível no sistema para

impressão. Após o lançamento dos dados pelo professor os resultados podem ser

imediatamente apurados e divulgados. A figura 11 ilustra a tela de acesso ao sistema.

Figura 11 - Tela de acesso ao sistema WebGiz.

O conjunto de aplicativos envolvidos no WebGiz são fundamentados na

ferramenta Joomla, ou seja, o sistema WebGiz é a soma de módulos e componentes para o

Joomla!.

O contexto WebGiz utiliza o banco de dados MySql para gerenciar o

funcionamento do Joomla! e faz acesso ao banco de dados SQL Server para exibir os dados

referentes ao Sistema Giz.

Page 40: Thiago Monografia 06-12-2010

40

3 METODOLOGIA

3.1 CARACTERIZAÇÃO

A presente pesquisa tem um caráter documental e bibliográfico, com o intuito de

levantar toda a documentação necessária de modo a dar suporte técnico e teórico ao

desenvolvimento deste. De acordo com Lakatos (2000), a bibliografia “oferece meios para

definir, resolver, não somente problemas já conhecidos, como também explorar novas áreas

onde os problemas não se cristalizaram suficientemente”. Neste estudo, adotou-se a pesquisa

qualitativa. Segundo Lakatos e Marconi (2000), A pesquisa qualitativa trabalha com dados

subjetivos, crenças, valores, opiniões, fenômenos, hábitos. Nesse sentido, percebe-se que a

pesquisa qualitativa desse estudo envolveu a obtenção de dados com questionários realizados,

para que os dados levantados possam auxiliar na análise do software WebGiz.

3.2 PROCEDIMENTO

Para o presente trabalho teve-se uma atividade inicial de estudo da literatura

relacionada a desenvolvimento web, linguagens de programação, bancos de dados e o sistema

de gerenciamento de conteúdo Joomla! de modo a dar suporte técnico e teórico ao

desenvolvimento deste.

Em seguida, foi realizada uma análise no CMS Joomla! para levantar as

funcionalidades oferecidas pelo mesmo a serem estudadas. Foram reunidos alguns requisitos

identificados como essenciais ao desenvolvimento do sistema web em questão, o WebGiz,

sendo eles: usabilidade, padronização, segurança e persistência dos dados, manutenabilidade e

escalabilidade.

Logo após, foi estudado o sistema WebGiz, mais precisamente os módulos

WebAluno e WebProfessor que estão implantados na Unimontes e disponíveis para acesso via

internet, visando identificar os principais fatores que levaram a empresa AIX Sistemas à

atualização e adequação desses módulos para a plataforma em questão. Para tanto, foi

Page 41: Thiago Monografia 06-12-2010

41

confeccionado um questionário próprio para levantamento das informações junto à empresa

desenvolvedora. Um questionário também foi elaborado, e enviado aos sete funcionários que

integram a equipe da Unimontes, participante do processo de implantação e responsável pelo

suporte do sistema para verificar as mudanças ocorridas com a atualização do software bem

como as vantagens proporcionadas pelo sistema.

3.3 INSTRUMENTO

Foi utilizado um questionário eletrônico para realizar a coleta dos dados. De

forma prática e simples pode-se enviar o questionário via e-mail aos destinatários.

Page 42: Thiago Monografia 06-12-2010

42

3 RESULTADOS E DISCUSSÕES

Ao final dos estudos realizados sobre a aplicação WebGiz foram identificados os

componentes e módulos básicos que compõem a versão da aplicação utilizada na Unimontes,

sendo eles: os módulos login, mensagem, menu, info e o componente professor, componente

aluno e componente aixgen. A seguir é descrito cada um deles:

A figura 12 ilustra o módulo de login, sendo mod_aixlogin o nome do diretório da

extensão. Ele é responsável por exibir a caixa de diálogo para solicitar o usuário, senha,

instituição e tipo de usuário.

Figura 12 - Módulo de login.

Já as figuras 13 e 14 ilustram o módulo responsável por exibir mensagens

cadastradas para visitante ou específica para alunos e professores. Sendo mod_aixmensagem

o nome do diretório da extensão.

Figura 13 - Módulo mensagens para visitantes.

Figura 14 - Módulo mensagens específico para alunos ou professores. Fonte: Wiki AIX Sistemas (2010)

Page 43: Thiago Monografia 06-12-2010

43

O módulo de menu é responsável por exibir as opções de menu de acordo com as

licenças e o tipo de usuário. A figura 15 ilustra esse módulo. O nome do diretório desta

extensão é mod_aixmenu.

Figura 15 - Módulo menu do perfil aluno. Fonte: Wiki AIX Sistemas (2010)

O módulo informações de login, chamado mod_aixinfologin, é responsável por

exibir uma lista de informações do usuário ativo. Geralmente contém informações de nome,

curso, período. A figura 16 ilustra os seguintes tipos de usuário: Administrador, Aluno,

Professor, Responsável e Coordenador.

Figura 16 - Tipos de informações de login. Fonte: Wiki AIX Sistemas (2010)

Page 44: Thiago Monografia 06-12-2010

44

O componente aluno, chamado de com_aixaluno é responsável por todos os links

relativos aos registros do acadêmico. Nele as interfaces de notas/frequência, histórico

resumido, avaliações dentre outras são processados. Como se pode perceber na figura 17, é

possível ver a estrutura de views no componente.

Figura 17 - Estrutura do componente aluno. Fonte: Wiki AIX Sistemas (2010)

Igualmente ao componente aluno o componente professor possui uma estrutura de

views e todas as funcionalidades do módulo professor. A figura 18 apresenta essa estrutura.

Figura 18 - Estrutura do componente professor. Fonte: Wiki AIX Sistemas (2010)

Page 45: Thiago Monografia 06-12-2010

45

Segundo a página wiki da AIX Sistemas o componente chamado aixgen é de

fundamental importância. Este componente é responsável por conter os arquivos de terceiros

utilizados no sistema WebGiz e por fornecer dados aos outros componentes e módulos. Nele

também se encontram os DAO12

utilizados para obter as informações (SQL) do banco de

dados do Giz. A figura 19 apresenta a estrutura deste componente. Geralmente tem o mesmo

nome da entidade de banco de dados com o sufixo dao no final. Exemplo: alunodao.php.

Figura 19 - Estrutura do componente aixgen. Fonte: Wiki AIX Sistemas (2010)

Como visto anteriormente, foi utilizado um padrão para se alcançar a persistência

dos dados. O objetivo é separar das regras da aplicação a tecnologia de persistência de dados.

O padrão DAO interliga a aplicação ao SGBD (Sistema Gerenciador de Banco de Dados). O

objetivo maior ao usar este padrão é promover isolamento e flexibilidade, principalmente,

quando se deseja, por exemplo, mudar o SGBD.

Temos então, até aqui, uma grande vantagem que foi observada. A modularização

do WebGiz, possibilita fácil manutenção em determinado módulo ou componente sem que

afete diretamente algum outro. Um outro ponto é a padronização atingida com o uso do

template, com ele foi possível definir um layout para toda a aplicação. O processo de

mudança de template da aplicação também é facilitado pela simplicidade da alteração dos

12

DAO (acrônimo de Data Access Object), é um padrão para persistência de dados que permite separar regras de

negócio das regras de acesso a banco de dados.

Page 46: Thiago Monografia 06-12-2010

46

temas. A figura 20 ilustra a tela de administração dos templates.

Figura 20 - Tela de administração dos templates. Fonte: Wiki AIX Sistemas (2010)

Após a aplicação dos questionários foi realizado a tabulação dos dados

informados pela equipe da Unimontes. Foi perguntado sobre o grau de importância da

aplicação, em seu contexto geral, para a instituição. Para todos da equipe que responderam, o

WebGiz exerce um papel muito importante nas atividades relativas ao registro acadêmico,

oferecendo agilidade e dinamismo ao processo, resultando em uma apresentação de

informações mais rápida e confiável ao aluno uma vez que esses dados são lançadas pelo

professor.

O próximo ponto foi verificar se a versão anterior do software WebGiz estava

atendendo satisfação a demanda de utilização da aplicação. Pôde-se perceber que, para 50%

dos profissionais do setor em questão a versão anterior do software atendia a demanda de

utilização e execução das atividades com satisfação, para a outra metade o software ainda não

conseguia atender a demanda.

Quanto aos problemas de acesso ou falhas. Para 100% dos funcionários o WebGiz

tinha falhas de acesso ou erros, que afetavam o funcionamento correto da aplicação em sua

versão anterior.

O próximo passo foi verificar com que frequência os erros aconteciam. A figura

21 ilustra que as opiniões ficaram dividas em por igual entre as opções disponíveis:

raramente, frequentemente e poucas vezes.

Page 47: Thiago Monografia 06-12-2010

47

Figura 21 - Frequência de erros do WebGiz.

Observou-se que a usabilidade e a padronização foram itens que o sistema

conseguiu cumprir com satisfação. Como se pode perceber na figura 22, para 100% das

entrevistas houve uma melhora na navegação e usabilidade do software.

Figura 22 - Navegação e usabilidade do software.

Como é possível perceber pela figura 23, a implantação do software WebGiz

desenvolvido com o Joomla! reduziu consideravelmente os atendimentos de suporte

realizados pela equipe, tornando assim, o software mais estável.

Page 48: Thiago Monografia 06-12-2010

48

Figura 23 - Atendimentos de suporte realizados aos usuários finais.

Em 100% dos casos o grau de dificuldade para se executar uma tarefa no software

ficou entre fácil e muito fácil.

Através deste foi possível observar que o desenvolvimento do software WebGiz

sobre o ambiente Joomla! foi considerado satisfatório uma vez que seu desenvolvimento

modularizado permite acrescentar novas funcionalidades sem afetar diretamente outros

módulos, a padronização de layout favorece uma usabilidade melhor e facilidade na execução

das atividades dentro do sistema, mas sem negar que, como todo software está sujeito a

falhas, erros ainda ocorriam. Mesmo assim as características obtidas do software final permite

facilidade e praticidade na manutenção e ou novas implementações. Quanto a segurança

algumas medidas na fase de desenvolvimento da aplicação foram tomadas e outra passaram

desapercebidas, como por exemplo, teve-se o cuidado por parte dos programadores, evitar o

acesso direto a determinados arquivos, colocando no início de cada arquivo uma constante, a

_JEXEC, que é definida no arquivo index.php do template. Mas por outro lado algumas

situações como o uso de url’s amigáveis, proteger o diretório administrator, desabilitar a

visualização das posições do template pelo fronted não foram implementadas.

Page 49: Thiago Monografia 06-12-2010

49

4 CONSIDERAÇÕES FINAIS

Durante este trabalho buscou-se averiguar a utilização do CMS Joomla! como um

ambiente de desenvolvimento para outras aplicações e evidenciou-se que há muitas vantagens

em utilizá-lo.

Baseado no estudo e pesquisa realizado para o desenvolvimento deste trabalho

conclui-se que, desenvolver uma aplicação com o Joomla! consiste basicamente em seguir as

regras de construção estabelecidas pelo ambiente, para que se tenha garantido a consistência,

usabilidade, padronização e manutenabilidade da aplicação. Não excluindo a possibilidade de

se utilizar outros padrões, adotados para o desenvolvimento de aplicações web, para que se

tenha, por exemplo, persistência dos dados. Foi avaliado o sistema acadêmico WebGiz a fim

de verificar as vantagens do desenvolvimento deste sistema com o Joomla!. Questionários

foram enviados ao setor da Unimontes responsável pelo suporte ao público, e a empresa AIX

Sistemas, desenvolvedora e mantenedora da aplicação. Após a tabulação dos dados verificou-

se que a aplicação WebGiz apresentou uma melhora satisfatória, tanto em desempenho, com

em usabilidade e manutenção. Algumas dificuldades encontradas durante a execução do

presente trabalho, como por exemplo, alguns questionários não foram respondidos, e a pouca

documentação impressa sobre o Joomla!, impediram que resultados mais precisos fossem

obtidos.

Page 50: Thiago Monografia 06-12-2010

50

REFERÊNCIAS

AFTEK. Disponivel em: < http://www.aftek.com/itservices/joomla.shtml>. Acessado em 29

de agosto de 2010.

Aldeia Numaboa. Disponivel em: <http://www.numaboa.com/informatica/tutos/joomla/877-

joomla-framework>. Acessado em 15 de agosto de 2010.

APPLIEDTHEORY CORPORATION. Content Management White Paper. New York,

1995. Disponível em: <http://www.appliedtheory.com/promotions/contentmanagement.pdf >.

Acesso em: 01 agosto. 2010.

BAX, M.P.; PARREIRAS, Fernando. Gestão de Conteúdo com Software Livre. In: Anais

KMBrasil, São Paulo, 2003.

BAX, M. P., PEREIRA, J. C. L. Introdução a Gestão de Conteúdos. In: 3o. Workshop

Brasileiro de Inteligência Competitiva e Gestão do Conhecimento, 2002, São Paulo. Anais.

1o. Congresso Anual da Sociedade Brasileira de Gestão do Conhecimento, 2002.

CAMPOS, Augusto. O que é software livre. BR-Linux. Florianópolis, março de 2006.

Disponível em <http://br-linux.org/linux/faq-softwarelivre>. Consultado em: 20 outubro.

2010.

CARATTI, Ricardo Lima; SILVA, Leonardo Mafra. Joomla! Avançado. Novatec, 2009.

CONTENT MANAGEMENT. 2001. Disponível em <http://www.contentmanager.eu.com>

Acesso em: 01 de outubro de 2010.

DALL’OGLIO, Pablo. PHP Programando com Orientação a Objetos. Novatec 2007.

DIAS, Cláudia Augusto. Portal corporativo: conceitos e características. Ci. Inf., Jan./Apr.

2001, vol.30, no.1, p.50-60. ISSN 0100-1965. Disponível em:

<http://www.scielo.br/scielo.php?pid=S0100-

19652001000100007&script=sci_arttext&tlng=es>. Acesso em: 14 de agosto de 2010.

Google Trends

<http://www.google.com/trends?q=Wordpress,+Joomla,+Drupal,+Plone&ctab=0&geo=all&d

ate=all&sort=1>.Acesso em: 01 de outubro de 2010.

Page 51: Thiago Monografia 06-12-2010

51

JASSINEK, Jassinek, R. A Influência da Internet em Negócios Empresariais:

Identificação e Caracterização de Elementos para Análise de Sites. Dissertação (Mestrado

em Administração) – Programa de Pós-Graduação em Administração, Universidade Federal

do Rio Grande do Sul. 163 p. Porto Alegre, 2000.

JUNIOR, Fred Cox – Programando Para Web Com Php e MySql. 2ª edição, UPE – POLI –

Engenharia Eletrônica. 2001.

LAKATOS, Eva Maria; MARCONI, Marina de Adrade. Fundamentos de metodologia

cientifica. 3 ed. São Paulo: Atras, 2000.

LAPA, Eduardo. Gestão de Conteúdo como apoio à Gestão do Conhecimento.

1º ed. Rio de Janeiro: Brasport, 2004.

LAUDON, Kenneth C.; LAUDON, Jane Price. Sistema de informação. 4ª ed. Rio de

Janeiro: Livros Técnicos e Científicos Editora, 1999.

LOZANO, Fernando. Apache + PHP + MySQL. Disponível em:

<http://www.lozano.eti.br/>. Acessado em: 10/06/2010.

MAZZETTI, Gerardo; MINK, Carlos. HTML 4 com XML. 1ª Ed. São Paulo: Makron

Books, 2000.

MICHELLAZO, Paulino. Ferramentas de CMS parceiras de Sucesso. PHP Magazine, 1ª

Edição, Janeiro de 2007.

MICROSOFT. The Business Case for a Web Content Management System.

2001. Disponível em

<http://www.microsoft.com/cmserver/evaluation/cmsroi.doc>. Acesso: 01 de outubro

de 2010.

MINETTO, Elton Luíz. Frameworks para Desenvolvimento em PHP. Novatec, 2007.

Ministério da Ciência e Tecnologia. Disponível na Internet

<http://www.mct.gov.br/index.php/content/view/3479.html?toPrint=yes>. Acesso: 01 de

Novembro de 2006.

MORATELLI, A. S.; VALDAMERI, A. R. . Sistema de gerenciamento de conteúdo para

ambiente WEB. Anais do XI Seminário de Computação, Blumenau, v. 1, n. 1, p. 53-64,

2002. Disponível na Internet

Page 52: Thiago Monografia 06-12-2010

52

http://www.inf.furb.br/seminco/2002/Moratelliseminco2002-18.pdf. Acesso: 14 de

Setembro de 2010.

NORTH, Barrie M. Joomla! Guia do Operador. Rio de Janeiro: Alta Books, 2008.

OLIVEIRA, K.M. de, Soares Ramos C., Anquetil N., Conhecendo Sistemas Legados

através de Métricas de Software. In: III Simpósio Brasileiro de Qualidade de Software,

Anais, 2004 - SBQS, 2004, Brasília – DF.

RNP. Rede Nacional de Ensino e Pesquisa, Grupo de Trabalho sobre Middleware. Data de

publicação: 05/07/2005. Disponível em <http://www.rnp.br/pd/gts2004-

2005/middleware.html >. Acesso em: 12 de agosto de 2010.

SAUVÉ, Jacques Philippe. O que é um framework. Disponível em: <

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm> Acessado em

20/06/2010

SOUZA, Andre de Abreu de. Usabilidade e a Padronização no E-Learning. Anais IX

Congresso Internacional de educação a Distância, SP, 2002.

SOUZA, Amanda Ramos de. Utilização de cms para o portal acadêmico do

Ccet/unimontes: Estudo, Adaptação e Implantação. 2009.

UNIMONTES. Institucional. Disponível em: < http://unimontes.br/ > Acessdo em 20 de

novembro de 2010.

VICKI, vovó. Entenda o Framework do Joomla 1.5. Disponivel em:

http://www.numaboa.com/informatica/tutos/joomla/877-joomla-frame?showall=1

Acesso em: 05 de outubro de 2010.

WELLING , Luke; THOMSON, Laura. PHP e MYSQL. Desenvolvimento Web. 3ª Edição.

2005.

Wiki AIX Sistemas. Disponivel em: < http://www.aix.com.br/wiki/index.php>. Acessado em

10 de outubro de 2010.

Page 53: Thiago Monografia 06-12-2010

53

APÊNDICE