monografia - plone - robson (6).docx
TRANSCRIPT
ROBSON VIRINO SILVEIRA
GERENCIAMENTO DE CONTEÚDO NA WEB USANDO PLONE
Monografia apresentada como exigência parcial para a obtenção do grau de tecnólogo em Telemática, sob orientação do professor Antonio Wendell de Oliveira Rodrigues.
FortalezaOutubro - 2007
RESUMO
Com o tempo, as organizações passaram a ser pressionadas por um crescente número de
requisições de usuários por conteúdos e serviços na web, conduzindo-as a adotar medidas
mais elaboradas para gerir seus sites na web, sendo, então, indispensável acolher um modelo
de gestão descentralizado e dinâmico. Atendendo esses quesitos, softwares de gerenciamento
de conteúdo (CMS) foram desenvolvidos, permitindo uma melhor condução do processo,
desde a criação das informações até suas publicações na web, realizada por diversos níveis de
usuários em diferentes papéis de permissões. Este trabalho tem por objetivo apresentar a
importância da ferramenta Plone na gestão de informações para ambientes corporativos.
Trata-se de um software livre e com código aberto que roda sobre o Zope, que é um servidor
de aplicações web, gerido por uma base de dados transacional orientada a objetos, o ZODB, e
o ZServer, como servidor web, ambos inseridos dentro do próprio Zope.
Palavras-chave: Gestão de conteúdo web; Plone; Zope;
2
ABSTRACT
Along with the time, the organizations passed to be pressured by a increasing number of
solicitations from users for contents and services in web, leading them to adopt measures
more elaborated to manage its sites in web, being, so, indispensable to receive a management
model decentralized and dynamic. Attending to these questions, content management systems
(CMS) were developed, allowing a better development of the process, since the creation of
the information until its publications in web, achieved by several user levels in different
permission ways. This work has as objective to present the importance of the Plone in the
management of information for corporative environments. It deals with a free tool and with
open code that runs in Zope, a server of applications web, managed by a guided objects
transactional database, the ZODB, and the ZServer, as web server, both inserted into the
Zope.
Keywords: Management of web content; Plone; Zope;
3
SUMÁRIO
Lista de Figuras...............................................................................................................6
Lista de Tabelas...............................................................................................................7
Lista de Abreviaturas.......................................................................................................8
1 Introdução...............................................................................................................10
1.1 Objetivo Geral............................................................................................11
1.2 Objetivos Específicos.................................................................................11
1.3 Composição do trabalho.............................................................................11
2 Gerenciamento de Conteúdo..................................................................................12
2.1 Descentralização das atividades.................................................................13
2.2 Solucionando problemas com a gestão de conteúdo..................................17
2.3 Ferramentas de Gestão de Conteúdo..........................................................18
3 Referencial Tecnológico.........................................................................................21
3.1 Python........................................................................................................21
3.2 Zope...........................................................................................................23
3.2.1 Arquitetura Zope e Conceitos..........................................................24
3.2.2 ZServer.............................................................................................25
3.2.3 ZODB...............................................................................................26
3.3 Considerações do capítulo.........................................................................27
4 Plone.......................................................................................................................29
4.1 Principais Recursos....................................................................................30
4.2 Características do Plone.............................................................................31
5 Instalação e configurações do Plone.......................................................................35
5.1 Instalação e inicialização do Plone............................................................35
5.2 Manipulação de objetos do Plone..............................................................37
5.3 Conhecendo as configurações do Plone.....................................................39
6 Conclusão...............................................................................................................44
6.1 Sugestão de trabalhos futuros....................................................................44
Referências Bibliográficas.............................................................................................45
4
LISTA DE FIGURAS
Figura 2-1 – Fluxo padrão de gestão de conteúdos...................................................12
Figura 2.1-1 – Interface hipotética de uma intranet...................................................12
Figura 3.2.1-1 – Arquitetura do Zope........................................................................23
Figura 4-1 – Arquitetura do Plone.............................................................................28
Figura 4.2-1 – Sistema de Workflow usado no Plone...............................................30
Figura 4.2-2 – Suporte ao uso de idiomas com escrita RTL.....................................31
Figura 5.1-1 – Setup de Instalação do Plone 3.0.......................................................34
Figura 5.1-2 – Configurações gerais do Plone...........................................................34
Figura 5.1-3 – Tela de inicialização do Plone e acesso à ZMI..................................35
Figura 5.1-4 – Tela inicial do Plone..........................................................................35
Figura 5.2-1 – Aba de configurações.........................................................................36
Figura 5.2-2 – Lista de objetos padrão disponíveis no Plone....................................36
Figura 5.2-3 – Tela de edição da pasta......................................................................36
Figura 5.2-4 – Tela de definição do compartilhamento da pasta...............................37
Figura 5.3-1 – Tela de configurações gerais do Plone...............................................38
Figura 5.3-2 – Tela de configuração da busca...........................................................38
Figura 5.3-3 – Tela de configurações do calendário..................................................39
Figura 5.3-4 – Tela de configuração de e-mail..........................................................39
Figura 5.3-5 – Visualização padrão da Interface de Gerência do Zope (ZMI)..........40
Figura 5.3-6 – Tela de gerenciamento do ZServer e do ZODB.................................41
Figura 5.3-7 – Tela de administração dos produtos do Plone....................................41
Figura 5.3-8 – Tela de configurações de segurança..................................................42
5
LISTA DE TABELAS
Tabela 2.3-1 – Comparativo entre as principais ferramentas CMS do mercado...........17
Tabela 3.1-1 – Comparativo simples entre programação Java e Python.......................21
6
LISTA DE ABREVIATURAS
AJAX Asynchronous Javascript and XML / Javascript e XML assíncronos
API Application Programming Interface / Interface de Programação de Aplicativos
CGI Common Gateway Interface / Interface de Gateway Comum
CMS Content Management System / Sistema Gerenciador de Conteúdo
CSS Cascading Style Sheets / Folhas de Estilo em Cascata
DTML Dynamic Template Markup Language / Linguagem Dinâmica de Marcação de
Templates
FTP File Transfer Protocol / Protocolo de Transferência de Arquivos
GPL General Public License / Licença Pública Geral
HTML Hyper Text Markup Language / Linguagem de Marcação de Hipertexto
HTTP HyperText Transfer Protocol / Protocolo de Transferência de Hipertexto
IIS Internet Information Services / Servidor de informações Web
IP Internet Protocol / Protocolo da Internet
LDAP Lightweight Directory Access Protocol
OS Operating System / Sistema Operacional
P2P Peer-to-Peer / Ponto a ponto
PDF Portable Document Format / Formato de Documento Portátil
PHP Hypertext Preprocessor / Processador de Hipertexto
RPC Remote Procedure Call / Chamada de Procedimento Remoto
RSS Really Simple Syndication / Distribuição Realmente simples de Publicações
RTL Right-to-Left / Escrita da direita para a esquerda
TAL Template Attribute Language / Linguagem de Atributos para Templates
UML Unified Modeling Language / Linguagem de Modelagem Unificada
URL Uniform Resource Locator / Localizador Uniforme de Recursos
VM Virtual Machine / Máquina Virtual
W3C World Wide Web Consortium / Organização oficial para os padrões Web
WAI-AA Web Access Initiative AA
WebDAV Web-based Distributed Authoring and Versioning / Criação e Distribuição de
Conteúdo pela Web
WYSIWYG What You See Is What You Get / O Que Você Vê é o Que Você Tem
7
XHTML Extensible Hypertext Markup Language / Linguagem de Marcação de
Hipertexto Extensível
XML Extensible Markup Language / Linguagem de Marcação Extensível
XSL Extendible Style Language / Linguagem de Estilo Extensível
ZEO Zope Enterprise Objects
ZMI Zope Management Interface / Interface de Gerência do Zope
ZODB Zope Object Database / Banco de Dados de Objetos Zope
ZOPE Z Object Publishing Environment / Ambiente Z para Publicação de Objetos
ZPL Zope Public License / Licença Pública Zope
ZPT Zope Page Templates / Templates de Páginas Zope
8
1 INTRODUÇÃO
Nas últimas décadas, ocorreram consideráveis mudanças nas maneiras de produzir,
organizar e disponibilizar informações na web, forçando diversos avanços na tecnologia de
teleinformática. Cresceu então, a necessidade de velocidade nos processos e de
conhecimentos e serviços mais especializados.
Nos ambientes organizacionais, o volume de informações a tramitar em suas aplicações
web cresceu bastante. Grandes softwares foram criados com o intuito de suprir essas
necessidades, dando maiores possibilidades de manipulação destas aplicações, como foi o
caso do Microsoft FrontPage e o do Dreamweaver.
Porém, mesmo com ferramentas mais interessantes ao trabalho, os problemas voltavam
para o alto custo de suas licenças de uso, apresentação de conteúdos HTML estáticos e gestão
centralizada no webmaster, pelo fato de ser a única pessoa capaz de administrar as aplicações,
por conhecer os códigos de programação dos sistemas, onde estavam também os conteúdos.
Nesta modelagem em que a web envolveu-se, começou-se a ter uma forte exigência por
softwares que provessem conteúdos e serviços dinâmicos, capazes de serem gerenciados
colaborativamente pelas pessoas responsáveis por estes, independente de conhecimento em
linguagens de programação.
Com ênfase à proposta de construção colaborativa de conteúdos e publicação na web,
vê-se então, a importância do uso de ferramentas que ajudassem no processo de administração
das informações web nas empresas. Essas ferramentas seriam sistemas de gerenciamento de
conteúdo (CMS), focando a criação, organização e publicação de informações com maior
facilidade e eficiência.
O CMS Plone é apresentado como uma excelente opção de sistema gerenciador de
informações e serviços para uso em intranets e portais corporativos. Ele roda sobre o Zope,
que é um servidor de aplicações web construído pela linguagem de programação Python.
O Plone, portanto, propõe a dinamização das informações e descentralização na
administração dos conteúdos, onde cada departamento de uma empresa seria responsável pela
9
criação e publicação dos objetos a ele intrínsecos, podendo ser realizada por qualquer pessoa
em qualquer local, visto que sua forma de trabalho é baseada na interface web.
1.1 Objetivo Geral
Esta monografia tem como objetivo geral, apresentar a importância da ferramenta Plone
como excelente solução para o gerenciamento de aplicações web em ambientes corporativos.
1.2 Objetivos Específicos
1. Analisar a importância do uso de ferramentas de gestão de conteúdo na web.
2. Apresentar o Plone como excelente proposta para uso em aplicações web.
3. Comparar as principais ferramentas de gestão existentes no mercado.
4. Descrever as tecnologias envolvidas na criação do Plone.
5. Apresentar as principais vantagens da ferramenta Plone.
6. Descrever os passos para instalação e configuração do Plone.
1.3 Composição do trabalho
O segundo capítulo abordará a importância da gestão de conteúdo como solução de
muitas deficiências no controle de informações dentro de uma organização, onde será
apresentado o software Plone como a melhor proposta para uso em aplicações web.
No terceiro capítulo serão tratadas as tecnologias envolvidas no processo de
implementação do Plone, fazendo uma abordagem geral sobre o servidor de aplicações Zope e
a linguagem de programação Python.
No quarto capítulo, serão apresentados os principais recursos oferecidos pelo Plone,
bem como as características da ferramenta em si.
No quinto capítulo, será feita uma abordagem da instalação e das configurações do
Plone para a criação de uma aplicação web corporativa, seja uma intranet ou portal.
No sexto capítulo, finalizando o trabalho, serão apresentadas as considerações gerais
sobre a importância do gerenciamento de conteúdo e do CMS Plone, bem como uma visão de
futuro, tratando sobre o que mais poderá ser feito.
10
11
2 GERENCIAMENTO DE CONTEÚDO
Gerenciar conteúdo na web significa ter total controle dos processos e informações
dentro de um sistema on-line, seja uma intranet, site ou portal corporativo, através de
ferramentas computacionais que providenciem tais objetivos.
Engloba-se nesse âmbito um ciclo de vida decomposto em, de forma sintetizada, criar,
validar, publicar e armazenar documentos relevantes ao fluxo de trabalho em uma
organização. Embora, em muitos casos, estes procedimentos utilizem-se por meio de várias
ferramentas em torno do mesmo desígnio.
Os processos são manipulados por um webmaster, que pode estar incumbido também de
serviços de suporte de rede, manutenção de equipamentos e programação de sistemas.
Sobrecarregando seu trabalho, resultará em deficiência no gerenciamento das informações
web, como desatualização de documentos e outros problemas relacionados com a estrutura do
site como um todo.
Usar sistemas de gerenciamento de conteúdo alia-se à idéia inicial de produtividade,
dinamismo e manutenção simples. São geralmente organizados em módulos, provendo
funcionalidades básicas sobre as quais são desenvolvidas as aplicações que mais se adequem
às necessidades do usuário final.
Terra (2002) descreve o fluxo padrão da gestão de conteúdos, através das seguintes
etapas:
1ª. Criação de documentos;
2ª. Revisão de documentos;
3ª. Indexação e controle de qualidade;
4ª. Publicação;
5ª. Revisão periódica
6ª: Arquivamento ou eliminação dos documentos
12
Figura 2-1 – Fluxo padrão de gestão de conteúdos.
Fonte: Portais Corporativos: A Revolução na Gestão do Conhecimento.
De acordo com Parreiras (2007), “Gerir conteúdo na Web é utilizar conceitos e
ferramentas que visam amenizar os problemas característicos da produção e da manutenção
de conteúdos em sítios web. A gestão de conteúdos procura integrar os diferentes atores do
site e os diferentes suportes à coleta, organização e divulgação da informação”.
2.1 Descentralização das atividades
Analisa-se um caso hipotético de uma empresa que utiliza um sistema de gerenciamento
para sua intranet, onde cada departamento desta seria responsável por determinada seção de
informações a serem disponibilizadas. As atividades de cada setor são feitas em distintas áreas
da intranet, e unidas em um só lugar, como mostra a figura 2.1-1:
Figura 2.1-1 – Interface hipotética de uma intranet
13
Setor de Marketing - Responsável pela criação de objetos do tipo Eventos que alimentam
o calendário, como reuniões, treinamentos ou festividades, e de objetos do tipo Imagem
que conterão banners das principais campanhas internas e externas realizadas pela
empresa.
Setor de Recursos Humanos - Responsável pela criação de módulos de consulta, como
por exemplo, contracheques, benefícios, dados pessoais, números de ramais internos e
resultados de seleções internas.
Setor de Segurança e Medicina do Trabalho - Responsável pela criação de objetos do
tipo Página contendo dicas referentes à ergonomia no trabalho e prevenção de acidentes e
de objetos do tipo Imagem contendo o mapa de riscos dos setores físicos da organização.
Setor de Ouvidoria - Responsável pela criação de objetos do tipo Questionário, para
avaliação do clima organizacional dentro da empresa.
Setor de Imprensa - Responsável pela criação de objetos do tipo Notícias, de caráter
interno ou externo e criação de objetos do tipo Link contendo o endereço de sites com
notícias ligadas ao foco da empresa.
Setor de Informática - Responsável pela administração dos usuários e configuração dos
módulos e templates do sistema, ou seja, códigos da estrutura da página.
Cada setor possui seus funcionários encarregados para a criação e manutenção dos
conteúdos de sua gerência. Por padrão, as informações, logo que criadas, podem ser
configuradas pela administração do sistema para se apresentarem em estado privado.
O funcionário então, após concluir a edição dos conteúdos, os submeterá à revisão. O
gerente, em seu nível hierárquico superior nos papéis do sistema, recebe uma lista dos objetos
para revisão, mostrada dentro de portlets1. Então, os revisarão e alterarão se necessário e
depois os publicará ou simplesmente os rejeitará.
Para cada objeto criado, o CMS indexará seu conteúdo, permitindo que o mesmo
apareça nos resultados de buscas, conforme os termos a serem procurados. O gerente
responsável pela publicação de seus objetos, também poderá configurar o tempo em que os
mesmos deverão permanecer no ar até que expirem e sejam arquivados, dando lugar a objetos
mais recentes.
_______________________1 Modelo de página, dentro do projeto gráfico, a ser enxertado pelo conteúdo do portal.2 Componentes web reusáveis que mostram informações relevantes aos usuários do portal.
14
Percebe-se, portanto, neste processo de administração de uma intranet ou qualquer outra
estrutura web, a descentralização das atividades, onde cada departamento é responsável pela
criação, manutenção e publicação de suas informações, observando que, ao contrário da que é
feita unicamente pelo webmaster, é mais fácil manter atualizados os dados, prezando para
integridade e qualidade dos mesmos.
Usar um CMS significa aliar flexibilidade com integridade. Usuários sem conhecimento
em programação mantêm os dados, auxiliados por editores de conteúdo do tipo WYSIWYG,
onde o usuário edita o conteúdo na forma em que o mesmo será apresentado.
No que diz respeito à integridade, assim como o que é mostrado como conteúdo, está
em lugar diferente ao código de programação daquela forma em que o mesmo se adapta
(template), garantindo integridade da estrutura do sistema, pois caso estivessem sidos
programados em um mesmo lugar, conteúdo e estrutura, ao ser alterada uma informação,
poderia acidentalmente apagar linhas de código que montam a estrutura do site, podendo levar
a total indisponibilidade do mesmo.
Segundo Parreiras (2007), as principais funcionalidades dos sistemas de gerenciamento
de conteúdo existentes no mercado são:
Criação, manutenção e arquivamento de conteúdos - Com bastante facilidade, um
sistema de gerenciamento de conteúdo deverá prover criação, edição e arquivamento dos
objetos dentro de uma base de dados.
Administração de grupos e usuários e suas devidas permissões - Suporte à criação de
usuários por parte do administrador, alocando em grupos conforme suas permissões, bem
como os próprios usuários se cadastram no sistema, podendo ter uma área de
gerenciamento particular.
Controle de metadados - São feitas as gravações de metadados para cada objeto
adicionado ao sistema, ou seja, propriedades que detalham aquele determinado conteúdo,
incluindo, por exemplo, informação sobre descrição, assunto, autor, contribuidores, data de
criação e de última modificação e palavras-chave.
Sindicalização - Suporte à disponibilização de informações a serem usadas por outras
fontes, em formatos XML RSS.
Indexação, busca e classificação - Suporte à indexação dos conteúdos em um catálogo
específico no instante em que os mesmos são adicionados ao sistema, permitindo que
15
mecanismos de procura retornem resultados relevantes dentro destes, em relação à busca
requerida. Uma vez adicionado no sistema, os objetos são classificados em categorias,
através do gerenciamento de taxonomia, ou seja, organizados de acordo com seus tipos.
Gestão de interface com os usuários - A gestão da interface é realizada pelo
conhecimento do contexto, do conteúdo e do perfil do usuário. A interface que o usuário se
comunica com o sistema é resultado do nível de acesso e pela forma de organização do
conteúdo dentro do sistema, respeitando as heurísticas referentes à usabilidade e
arquitetura da informação.
Gravação das ações e faculdade de desfazê-las - Possibilidade de restauração de pontos
do sistema de gerenciamento do conteúdo. Por exemplo, um usuário apaga determinadas
informações acidentalmente. Haverá a opção de desfazer esta ação, voltando o conteúdo,
ao seu estado antes de sofrer a deleção. Essa gravação de ações provê também ao sistema a
capacidade de auditoria, com informações de quais usuários as realizaram em que data e
hora.
Controle de tráfego de informações (workflow) - Suporte a regras que viabilizam o
tráfego automático de informações, regido por permissões, onde procedimentos são
passados entre diferentes atores envolvidos no processo, desde a criação à publicação e
posterior armazenamento.
Os sistemas de gerenciamento de conteúdo, quando recém-instalados em um ambiente
organizacional, vêm preparados apenas com a solução padrão para uma determinada
realidade, porém, cada empresa tem seu modo único de organizar e apresentar informações.
Percebe-se primeiramente que num CMS, o ideal é atingido uma vez que são
customizados os produtos e adicionados outros, fazendo os devidos ajustes na área de
configuração do sistema, caracterizando a característica de escalabilidade. Também se faz
necessário adaptar o visual à estrutura e ajustar demais parâmetros, como por exemplo, o
endereço IP1 do servidor de emails da empresa.
Percebe-se então que, uma das principais vantagens em adotar um sistema de
gerenciamento de conteúdo, que tenha o código aberto, é modificar os produtos conforme o
objetivo das funcionalidades que se quer obter para a devida interação com os usuários.
_______________________1 Código numérico para cada endereço existente na web.
16
Conclui-se que o sistema de gerenciamento de conteúdo trabalha como integrador de
soluções, provendo parâmetros os mais anatômicos possíveis, para que o projetista do sistema,
os adequem com flexibilidade e segurança, compondo à sua maneira o projeto, trazendo ao
sistema web a realização de requisitos antes abstratos, agora em forma de aplicações web,
satisfazendo os objetivos próprios e de seus usuários.
2.2 Solucionando problemas com a gestão de conteúdo
De forma resumida, a gestão de conteúdo tem por objetivo transpor aos principais
obstáculos:
Informações desatualizadas devido à sobrecarga de trabalhos sobre o webmaster, que em
geral, é designado para atividades extras à de manutenção do sistema web, o qual é
responsável.
Conteúdo de baixa qualidade, que na maioria das vezes, os textos não passam por revisão
antes de serem publicados.
Desmotivação de usuários em colaborar com conteúdos, visto que não teriam
conhecimento técnico em editar informações entrelaçadas ao código de programação que
formam as estruturas da página.
Programação do código da estrutura da aplicação entrelaçada ao conteúdo, resultando
páginas estáticas e não configuráveis.
Em sítios web de natureza estática, apenas a informação recente é exibida, resultando na
perda de conteúdos antigos.
Alterações acidentais, que resultarão na perda de informações ou quebra da estrutura do
site, sem possibilidade de restauração ao ponto do sistema anterior à ação desencadeadora
do erro, bem como a falta de auditoria.
Demandas constantes de suporte e treinamentos para a utilização de ferramentas dentro do
ambiente organizacional, pela dificuldade que os sistemas apresentam no manuseio e
gerenciamento.
Manutenção da aplicação web apenas na máquina na qual se encontram instaladas as
ferramentas pela qual o sistema depende. Por exemplo: Um portal de uma empresa apresentou
um problema em seu banco de dados ou na estrutura de sua interface. Será necessário então, o
deslocamento do administrador do sistema até o computador onde se situa o banco de dados
ou os templates, para que sejam finalmente corrigidos.
17
2.3 Ferramentas de Gestão de Conteúdo
Atualmente, existem muitas ferramentas de gerenciamento de conteúdo. A escolha de
qual dentre estas deverá ser feita, dependerá da realidade do ambiente em que será usada e das
necessidades de utilização. Neste contexto, destacam-se as ferramentas que possuem código
aberto, maior robustez e grande aceitação no mercado, como Plone, Mambo, Joomla, Xoops e
PHP-Nuke.
Para efeito de comparação entre ferramentas CMS, existe na internet o portal CMS
Matrix1, que possui em sua base de dados, detalhamento completo das características de quase
800 ferramentas, permitindo que sejam selecionadas e comparadas entre si, em uma tabela
com numerosos itens. O termo plug-in refere-se a um produto adicionável.
A tabela 2.3-1 mostra um comparativo entre as principais ferramentas livres de
gerenciamento de conteúdo existentes no mercado, juntamente com um CMS proprietário, o
Microsoft CMS (MCMS).
Tabela 2.3-1 – Comparativo entre as principais ferramentas CMS do mercado.
Exigências do SistemaDrupal Joomla! Mambo MCMS PHPNuke Plone Xoops
Banco de Dados MySQL MySQL MySQL MSSQL MySQL ZODB MySQLLicença Livre Livre Livre Comercial Livre Livre LivreSistema Operacional
Todos Todos Todos Windows Todos Todos Todos
Linguagem PHP PHP PHP .NET PHP Python PHP
Servidor webApache,
IISApache
Apache, IIS
IISApache,
IISApache, IIS, Zope
Apache, IIS
SegurançaDrupal Joomla! Mambo MCMS PHPNuke Plone Xoops
Auditoria Sim Não Não Plug-in Não Sim SimAcesso LDAP Plug-in Plug-in Sim Sim Não Plug-in SimLog de Erros Não Não Não Não Não Plug-in SimSuporte SSL Sim Não Plug-in Sim Não Sim SimFacilidade de Uso
Drupal Joomla! Mambo MCMS PHPNuke Plone XoopsDrag and drop Não Não Não Não Não Plug-in Plug-inUpload massivo Plug-in Não Não Sim Não Sim Plug-inDesfazer Sim Não Sim Plug-in Não Sim SimWYSIWYG Plug-in Sim Sim Sim Não Sim Plug-inArquivos ZIP Não Não Não Não Não Plug-in Não
_______________________1 http://www.cmsmatrix.org.
18
Desempenho
19
Drupal Joomla! Mambo MCMS PHPNuke Plone XoopsCache avançado Sim Sim Sim Sim Não Sim NãoReplicação de Banco de Dados
Não Não Não Não Não Sim Não
Balanço de carga Sim Não Não Sim Não Sim SimAdministração
Drupal Joomla! Mambo MCMS PHPNuke Plone XoopsGestão on-line Sim Sim Sim Sim Sim Sim SimMúltiplos sites Sim Sim Não Sim Não Sim Plug-inTemas / Skins Sim Sim Sim Não Sim Sim SimEstatísticas web Sim Sim Sim Não Sim Plug-in Plug-inWorkflow Sim Não Não Sim Não Sim NãoInteroperabilidade
Drupal Joomla! Mambo MCMS PHPNuke Plone XoopsRSS Sim Sim Sim Plug-in Não Sim SimSuporte FTP Sim Plug-in Não Não Não Sim SimExportação iCal Não Não Não Não Não Plug-in NãoCódigo UTF-8 Sim Sim Sim Sim Não Sim SimWebDAV Não Não Não Não Não Sim NãoSuporte XHTML Sim Não Sim Plug-in Não Sim NãoFlexibilidade
Drupal Joomla! Mambo MCMS PHPNuke Plone XoopsSuporte CGI Sim Não Não Não Sim Plug-in NãoMetadados Sim Sim Sim Sim Não Sim Plug-inMulti-Línguas Sim Plug-in Plug-in Plug-in Não Sim Plug-inAplicações
Drupal Joomla! Mambo MCMS PHPNuke Plone XoopsChat Plug-in Plug-in Plug-in Não Não Plug-in Plug-inFórum Sim Plug-in Plug-in Não Sim Sim SimCalendário de Eventos
Plug-in Plug-in Plug-in Plug-in Não Sim Plug-in
Área Pessoal Plug-in Não Plug-in Não Não Sim SimGaleria de Fotos Plug-in Plug-in Plug-in Não Não Sim Plug-inPesquisa Sim Sim Sim Não Não Sim SimMapa do Site Plug-in Plug-in Plug-in Plug-in Não Sim Plug-inCotas de usuários Plug-in Não Não Não Não Plug-in Plug-inFonte: CMS Matrix, disponível em http://www.cmsmatrix.org
A partir desta tabela, verifica-se que, dentre as principais ferramentas de gestão de
conteúdo usadas pelas organizações, destacam-se o Plone, Joomla e o Drupal em suas
características técnicas.
Com capacidades intermediárias, encontram-se o Mambo e o Xoops. Por fim, os que
oferecem menos recursos à construção de aplicações dentre os apresentados, estão o MCMS e
o PHP-Nuke.
20
Entre as que se saíram melhores, escolheu-se o Plone para detalhar suas funcionalidades
e aplicações neste trabalho, devido à flexibilidade, segurança, facilidade de manuseio e
credibilidade, visto que é utilizado por organizações de alto nível que confiam suas
informações para o controle por esta ferramenta.
Antes de descrever as funcionalidades do Plone, deverá ser conhecido o aparato
tecnológico que existe sob sua interface, mais precisamente a linguagem de programação
Python e o servidor de aplicações Zope, que serão explicados no próximo capítulo.
21
3 REFERENCIAL TECNOLÓGICO
A ferramenta Plone, bem como seus produtos adicionáveis, construído sobre o Zope,
que por sua vez, feito na linguagem de programação Python, do qual serão apresentadas as
principais características.
3.1 Python
A linguagem Python foi criada na Holanda, no ano de 1990, por Guido van Rossum, a
partir da linguagem ABC. O nome Python foi inspirado no grupo humorístico britânico Monty
Python, embora muitas pessoas associassem ao réptil de mesmo nome (NUNES, 1998).
Henriques (2007) explica que o Python é uma linguagem de programação interpretada e
orientada a objetos, com gestão automática de memória e tipagem forte e dinâmica, ou seja,
não é necessário declarar o tipo de uma variável antes de usá-la, contribuindo para uma
imagem menos burocrática em comparação a linguagens como o Java ou C++.
A maior vantagem do Python, segundo Henriques (2007), em relação a tais linguagens
está na imediata capacidade de transformar idéias em código, com muita compactação e
legibilidade. Sua prioridade é maximizar a produtividade do programador, e não o
desempenho do programa.
Em Python, um módulo é um arquivo, tratado como uma classe, contendo definições e
comandos. Este recebe a extensão ‘.py’. O interpretador da linguagem gera versões “byte-
code1” de seus arquivos fonte, assumindo o sufixo ‘.pyc’, provendo agilização no
carregamento de muitos objetos e chamada de métodos interiores às classes. Esta
característica é a chave da portabilidade2 e do polimorfismo3 do Python. (NUNES, 2007).
Em sua característica de rapidez na programação, para que se tenha uma idéia simples
sobre isto, faz-se uma breve comparação na tabela 3.1-1 entre o volume de código necessário
para produzir uma mensagem na linguagem Java e no Python, obtendo-se a noção clara de
produtividade do Python (FERG, 2007).
_______________________1 Pacote de código com formato portável contendo instruções executáveis.2 Capacidade de um programa poder ser executado em diferentes arquiteturas de sistemas operacionais.
22
3 Característica que permite que objetos diferentes possam ser usados de forma semelhante.
Tabela 3.1-1 – Comparativo simples entre programação Java e Python
Java Pythonpublic class HelloWorld{ public static void main (String[] args) { System.out.println("Hello, world!"); }}
print "Hello, world!"
Fonte: Python & Java: A Side-by-Side Comparison. Disponível em http://www.ferg.org.
No site da comunidade Python Brasil (2007), na seção de perguntas freqüentes, diz que,
as principais vantagens do Python são:
Licença GPL - O Python pode ser copiado, estudado e modificado livremente.
Linguagem orientada a objetos - Suporte à encapsulamento1, herança2 e polimorfismo.
Tipos fortes e dinâmicos de variáveis - Não é necessário fazer casting3, como ocorre, por
exemplo, nas linguagens de programação Java, Pascal e C.
Portabilidade para qualquer sistema operacional - Pode ser utilizado nos sistemas
operacionais Windows (todas as versões), Linux (todas as distribuições), Solaris, Unix,
Mac OS, FreeBSD, dentre outros.
Velocidade de programação - Permite o desenvolvimento rápido de aplicações, devido ao
menor volume de código empregado na programação de aplicações.
Sintaxe simples – Requisitos abstratos são convertidos facilmente para código Python.
Linguagem interpretada - (byte-code + VM).
Diversas aplicações são feitas em Python, como por exemplo, o mecanismo de pesquisa
do Google, o programa P2P BitTorrent, a ferramenta gráfica Blender4 e um módulo gráfico
usado em missões de planejamento do espaço pela Nasa, dentre outros.
Para que se tenha idéia da economia de código da linguagem Python, o instalador da
ferramenta Blender possui apenas cinco megabytes e é um programa com as mesmas
capacidades do 3D Studio Max, com tamanho bastante superior.
_______________________1 Em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível.2 Capacidade de uma classe herdar características de uma outra.3 Conversões explícitas de tipos de objetos
23
4 http://www.blender.org/
24
3.2 Zope
Zope é um framework1 de código aberto, escrito na linguagem Python, que permite
desenvolvedores de vários níveis construírem aplicações web (LATTEIER, 2007). Surgiu em
novembro de 1998, quando a empresa Digital Creations (atual Zope Corporation2), decidiu
liberar os fontes de seus principais produtos, Bobo e Principia, sob uma licença Open Source.
A junção desses produtos originou o Zope.
O termo Zope vem das iniciais de “Z Object Publishing Envinroment” (Ambiente Z
para publicação de objetos), ou seja, um servidor de aplicações que provê um ambiente para
publicação de conteúdos na web. É distribuído sob a licença ZPL (Zope Public Licence),
conciliável com a GPL (General Public Licence). Uma vasta comunidade de desenvolvedores
é responsável por mantê-la e estendê-la.
Uma das maiores vantagens do Zope sobre outros servidores de aplicações, como o
Coldfusion e o WebSphere, é a integração das ferramentas de que necessita em um único
lugar e o fácil acoplamento de módulos prontos (INFO, 2007) .
O Zope é totalmente administrável por interface web, podendo ser feito em qualquer
navegador. As tarefas de gerência são feitas através da ZMI, que é similar a um gerenciador
de arquivos, usando frames, logins e senhas (TCHEZOPE, 2007).
Na ZMI, é feita a criação dos templates das páginas, a instalação e configuração de
produtos zope e definição das regras de permissões de acesso de usuários.
Na seção de tutoriais do Tchezope (2007) diz-se que “Não existem páginas estáticas
(arquivos) no Zope. Todas as páginas em um servidor Zope são geradas dinamicamente (no
momento em que o servidor recebe o pedido do browser)”. Haverá uma interpretação do
código Zope para o HTML, inteligível por qualquer navegador web.
O Zope fornece dois mecanismos para a criação de templates: Dynamic Template
Markup Language (DTML: Linguagem Dinâmica de Marcação de Templates), e Zope Page
Templates (ZPT: Templates de Páginas Zope).
_______________________1 Estrutura de suporte definida que permite o desenvolvimento de outros projetos de software.2 http://www.zope.org
25
DTML é uma linguagem baseada em tags1 com implementação de lógica simples em
templates, através de laços, condicionais e inserção de variáveis. No entanto, os templates não
podem ser verificados por validadores HTML, e a inclusão indiscriminada de lógica nos
templates deixa o código pouco legível e com difícil manutenção.
Tais atributos utilizam um espaço de nomes especial, denominado TAL, e assim são
compatíveis com as especificações do W3C, e com as principais ferramentas de edição de
HTML (INFO, 2007).
Ao se trabalhar com o ZPT, é proporcionado um fluxo natural de tarefas, permitindo
que o trabalho do designer não interfira no trabalho do programador. O designer utilizará um
editor WYSIWYG para criar o visual do template, então logo após, o programador poderá
editá-lo introduzindo os comandos ZPT necessários (TCHEZOPE, 2007).
3.2.1 Arquitetura Zope e Conceitos
O Zope constitui-se de diferentes tipos de componentes que trabalham juntos para
ajudar a construção de aplicações web (TCHEZOPE, 2007). A figura 3.2.1-1 mostra como são
realizadas as interações entre os módulos que compõem o sistema.
Figura 3.2.1-1 – Arquitetura do Zope. Fonte: Zope.org. Disponível em www.zope.org.
_______________________1 Estruturas que consistem em breves instruções, tendo uma marca de início e outra de fim
26
Dentre as principais partes desta arquitetura, podem-se descrever os seguintes
componentes:
Web Server - De forma natural, pode-se rodar um servidor na frente do Zope, como o
Apache ou o Microsoft IIS, por exemplo.
Zope Core - Engloba o ambiente de gerenciamento, a API de desenvolvimento e sistema
de permissões.
ZClasses - São tipos de objetos que podem ser adicionados por administradores do sistema
web usando a Interface de Gerenciamento do Zope.
Produtos - No Zope, é permitido que sejam instalados novos módulos conforme as
necessidades da aplicação.
ZServer - É um servidor multiprotocolo, que serve conteúdos para seus usuários via web,
FTP, WebDAV e XML-RPC. Pode também trabalhar em paralelo com outros servidores
que suportam CGI (Common Gateway Interface), como Apache e Microsoft IIS, desde que
se use determinados produtos no Zope para permitir essa integração, como o SiteAccess e
o VirtualHostMonster (LATTEIER, 2007).
3.2.2 ZServer
O ZServer faz o mapeamento e acessa os objetos passados na URL do navegador,
implicando que qualquer objeto, com permissão para tal, pode ser acessado via URL,
provendo uma poderosa estrutura para trabalhar na web (LATTEIER, 2007).
No Zope, é permitido que se use outros servidores HTTP, além do ZServer. Se for
necessária uma funcionalidade que não se encontra disponível no ZServer, como o suporte a
SSL, pode-se integrar o Zope a outros servidores HTTP, tais como o Apache, através de um
mecanismo conhecido como Persistent CGI (PCGI) (TCHEZOPE, 2007).
Muitas vezes, por questão de desempenho, é indicado que se coloque um servidor
Apache rodando na frente do Zope, sendo, por exemplo, o responsável pelo conteúdo estático
e o Zope ficaria a cargo dos objetos dinâmicos.
O ZServer tem a missão de interpretar códigos escritos em DTML ou ZPT. O que for
diferente, ele não interpreta e deixa passar para o navegador. Isso significa que, outras
tecnologias utilizadas em conjunto com intuito de ações ou formatações sobre a página
27
gerada, como Javascript ou CSS, não oferecem interferência alguma ao Zope, pois na
verdade, nem o são percebidas (TCHEZOPE, 2007).
Quando o número de requisições de uma página web supera a quantidade que
suportaria, torna-se lento e corre o risco do serviço travar. Para resolver esse problema, foi
criado o ZEO (Z Enterprise Objects), que é um sistema que provê rodar a aplicação Zope em
mais de um servidor, configuração chamada de cluster. O propósito do ZEO está em fazer o
devido balanceamento de carga.
3.2.3 ZODB
É um banco de dados transacional orientado a objetos que é integrado ao Zope. O
ZODB (Z Object Database) tem por propósito maior, garantir que objetos criados no Zope
sejam estáveis, reforçando fatores como persistência e transparência. Suas principais
características, segundo o portal Tchezope (2007) são:
Transacional - Uma transação somente será efetivada se todas as transações do conjunto
(subtransações) forem processadas com sucesso. Como exemplo, pode-se citar uma
operação de transferência bancária entre contas corrente. Somente após a operação de
débito na primeira conta ser feita e após o crédito na segunda conta, é que a transação de
transferência é dada como concluída (LANIWAY, 2007).
Transparência - No ZODB, objetos Python são persistidos de forma transacional. A
transparência está no fato de que os desenvolvedores raramente precisam escrever código
para ler ou salvar os objetos no ZODB de forma explícita (LATTEIER, 2007).
Recuperação de Erro (Desfazer Ações) - Ao desfazer uma transação, todas as alterações
feitas a objetos persistentes por ela, também são desfeitos. Esse é um mecanismo
indispensável para a recuperação de erros.
Auditoria - Os metadados das transações são armazenados com os nomes dos usuários que
as efetuaram, as ações que praticaram, dentre outras informações descritivas, permitindo
totais informações aos administradores do sistema sobre as ações de seus usuários.
Desempenho - O Zope permite que objetos sejam gravados em memória, o que agiliza
futuras leituras dos mesmos.
Permite Concorrência - Múltiplos acessos aos mesmos objetos persistentes (threads) são
permitidos no ZODB. Cada thread usa uma ou mais conexões com o banco de dados, que
por sua vez, cada conexão possui sua própria cópia dos objetos persistentes no banco de
28
dados, o que não impedirá que a lógica da aplicação se preocupe com concorrência
(Tchezope, 2007).
Integridade – Segundo Bauer (2007), ocorrendo algum erro em uma aplicação durante o
processamento de uma requisição, toda a transação será cancelada e os objetos por ela
afetados retornarão ao estado em que estavam antes de todo o processo.
3.3 Considerações do capítulo
Segundo o site Zope.org (2007), o Zope é significativamente melhor que outros
produtos concorrentes, pelas seguintes razões:
Tudo o que aparecer num site feito em Zope (páginas web, imagens, links, arquivos) é um
objeto e encontra-se em um banco de dados orientado a objetos.
A base de dados é hierárquica, não relacional, e é particularmente apropriada para
estruturas de arquivos hierárquicos. A maioria do pessoal ligado à Tecnologia da
Informação pensa em bases de dados repletas de tabelas, linhas e colunas, fazendo uso de
chaves-primárias e chaves-estrangeiras. O Zope trabalha com uma estrutura de objetos
dentro de objetos, e está aí a grande diferença, refletindo melhor em termos de manutenção
e uso.
Todas as versões antigas de um objeto permanecem na base de dados, o que é
extremamente útil para desfazer alterações e controlar versões de documentos
colaborativos e itens que necessitam de revisão.
Segurança da estrutura do sistema, em que é possível criar uma cópia customizada de um
script1 clicando um botão, mantendo a versão original guardada com segurança.
Facilidade de criar documentos XML estruturados, com workflow associado a uma
estrutura de documento, sendo uma característica essencial para os sistemas corporativos,
oferecendo consistência na estrutura de documentos e um aerodinâmico fluxo de trabalho.
A última razão é a diferença cultural entre a equipe do Zope e seus competidores para o
nível de aceitação entre grandes organizações. O Zope possui clientes como a US Navy2 e
CIA3, para o gerenciamento de projetos em que requeiram flexibilidade e segurança.
_______________________________________________________1 Mini programas que executam determinadas operações2 United States Navy; http://www.navy.mil/3 Central Intelligence Agency (USA); https://www.cia.gov/
29
Percebe-se que, o objetivo da existência do Zope é suprir das pequenas às grandes
instituições, provendo projetos colaborativos, incluindo flexibilidade e segurança, com a
participação de vários contribuidores localizados em diferentes lugares e usando diferentes
plataformas com determinadas permissões para ver, criar, editar, publicar diferentes
informações do projeto, contando com escalabilidade para novas funcionalidades, conforme a
necessidade da empresa.
Aliando a tecnologia da linguagem Python e o ambiente Zope, permitiu-se a construção
do Plone, uma ferramenta open source de gerenciamento de conteúdo com grande aceitação
pelas organizações.
30
4 PLONE
O Plone é um sistema gerenciador de conteúdo livre e de código aberto, com a missão
de valorizar cada nível de uma organização, distribuindo a criação e manutenção das
informações para diversos ambientes em que o resultado agrupa-se em um único lugar.
Segundo o Livro do Plone (2005), ele é composto por sistemas de workflow e segurança
e funções pré-configuradas, um conjunto de tipos de conteúdo e suporte a vários idiomas, que
permitem a fácil criação, publicação e retorno de conteúdo, ajustando-se às necessidades
requeridas.
A construção do Plone é baseada no framework CMF, que é uma aplicação contendo
ferramentas para o Zope, que juntas formam um framework, oferecendo diversos serviços dos
quais necessita um Sistema de Gerenciamento de Conteúdo. O que difere o Plone do CMF são
os próprios conjuntos de templates e tipos de arquivos.
No Livro do Plone (2005) explica que a instalação é fácil e interface bastante amigável,
provendo ao usuário responsável pelo gerenciamento de conteúdo a sensação de estar usando
um gerenciador de arquivos comum. Sua administração é contrária à maioria dos outros
CMSes, onde primeiro as informações são concebidas para publicação ao invés de
processamento de conteúdo.
A figura 4-1 mostra as camadas de componentes necessários à concepção do Plone.
Figura 4-1 – Arquitetura do Plone
31
Fonte: M-Solutions. Disponível em www.m-solutions.org/techs.
4.1 Principais Recursos
O Plone possui diversos recursos e características que foram decisivos na escolha deste
CMS para este trabalho. A seguir serão descritos, conforme o portal da empresa de TI,
EnfoldSystems (2005), os principais recursos e uma breve descrição de cada um deles,
conforme apresentados no guia de referência do Plone:
Instalação - Para facilitar e gerenciar a instalação, Plone mantém ferramentas de
instalação para Windows, Linux e Mac.
Internacionalização - A interface com usuário foi traduzida para mais de 20 idiomas
incluindo português.
Usabilidade - Plone oferece uma interface com alto nível de acessibilidade e usabilidade,
além de ser compatível com padrões de indústria e governo, tais como WAI-AAA (W3C,
1999) e U.S. Section 508 (US GOVERNMENT, 2007).
Personalização - Plone permite a personalização completa do site através de temas que
separam o conteúdo da apresentação.
Autenticação - Plone possui um sistema de autenticação e cadastro que pode ser
personalizado. Além disso, permite importação de usuários de bases de dados como LDAP
(Lightweight Directory Access Protocol).
Fluxo de trabalho e segurança - O fluxo de trabalho pode ser configurado usando
ferramentas gráficas. Para segurança, podem-se criar listas de controle para decidir o que
um usuário tem permissão de fazer com um item do site, como editar, ver, comentar,
interagir, acessar.
Escalabilidade - Como o Plone é uma ferramenta de código aberto, ele pode ser
facilmente modificado. Existem ainda diversos produtos independentes que podem ser
adicionados ao Plone aumentando suas funcionalidades. Com ferramentas de
desenvolvimento como Archetypes, pode-se gerar ou alterar código Plone usando
ferramentas de modelagem UML.
Personalização de conteúdo - Desenvolvedores Plone podem criar seus próprios tipos de
conteúdo e gerenciá-los.
Documentação - O projeto Plone mantém uma rica biblioteca, incluindo livros sobre o
assunto. Também existe uma iniciativa de tradução para o português da documentação no
32
portal da comunidade brasileira do Zope e Plone, o Tchezope.org, onde já se encontram
muitos documentos traduzidos.
4.2 Características do Plone
De acordo com o Livro do Plone (2005), são descritas como características do Plone:
Integridade dos links garantida - Muitas vezes, ao apagar um objeto, em algum lugar do
site, ainda podem existir links que o referencie, o que causará erro nestes. No Plone 3.0, ao
tentar apagar um objeto que seja referência de outro, um aviso é exibido, alertando o risco.
Controle de versões - Com este sistema, quem está trabalhando em um documento,
poderá visualizar o histórico completo deste objeto, realizar comparativos entre versões e
reverter o conteúdo atual para algum anterior.
Editor WYSIWYG poderoso - O Plone 3.0 trabalha com o editor de interface web Kupu
1.4, que é um editor HTML de facílimo uso, com suporte a redimensionamento de
imagens, inserção de animações em flash. O editor Kupu trabalha com XHTML limpo,
podendo transformar automaticamente conteúdos, como documentos do Word, em HTML.
Sistema de workflow bem definido - Diferentes organizações podem desejar fluxos de
trabalho diferentes para seus objetos, organizando diferentes estratégias de publicação para
suas informações. A figura 4.2-1 mostra o sistema de workflow padrão usado pelo Plone.
33
Figura 4.2-1 – Sistema de Workflow usado no Plone
Fonte: Beyond-content. Disponível em http://www.beyond-content.com/
Autenticação flexível - Por padrão o Plone possui própria forma de acesso, mas pode ser
integrado acesso LDAP ou por Active Directory1.
Indexação completa de documentos PDF e do Word - Ao adicionar um objeto PDF ou
um documento do Word, seu conteúdo é automaticamente indexado, fazendo então parte
do que a pesquisa abrange.
Geração automática de lista de conteúdos - O Plone 3.0 cria automaticamente um
sumário com os itens que o documento possui que foram editados com formatação de título
(headings). O resultado final será uma simples tabela contendo os títulos dos conteúdos do
documento facilitando a navegação e leitura do mesmo.
Mecanismo de Portlets - Partes do site podem ter visibilidade em um portlet, configurável
facilmente para quais locais deverão ser visualizados. Nestes, poderão ser inseridos listas
de notícias, itens recentemente editados, listas de revisão etc.
Suporte, desenvolvimento, treinamento e hospedagem profissionais - O Plone possui
uma comunidade de altíssimo nível de desenvolvedores, bem como muitas organizações
ministram treinamentos e oferecem suporte e hospedagem. O site plone.net lista mais de
175 empresas espalhadas por 40 países que dão esse acompanhamento.
Pesquisa em modo LiveSearch - O Plone oferece um sistema de busca em que os
resultados mais relevantes são mostrados enquanto os termos são digitados. E com teclas
de atalho é rápido de acessar algum dentre a lista de resultados.
Site poliglota - É possível manter o conteúdo em diversas línguas, usando um produto
nativo do sistema, o LinguaPlone, que se encarrega de realizar o intercâmbio entre mais de
35 idiomas, com suporte ao uso de escrita RTL (Right-to-Left) usado em países como
árabe, hebraico e persa, não necessitando de nenhuma programação de template para isto.
Figura 4.2-2 – Suporte ao uso de idiomas com escrita RTL
_______________________________________________________
34
1 Implementação no protocolo LDAP que mapeia objetos em rede e disponibiliza essas informações a usuários e administradores desta rede. Publicação baseada no tempo - O Plone permite que seja configurado para objetos uma
hora específica para sua publicação, configurando o Time Zone desejado. De forma
análoga, é feito o mesmo processo para marcar um tempo para expiração automática.
Recurso de compressão - Na tentativa de reduzir o peso das páginas, o Plone combina e
comprime CSS e Javascript, que em uma página podem representar até 80% das
informações enviadas ao navegador, aumentando o tempo de carregamento da tela. O
Plone então, comprime o tamanho desses arquivos na faixa de 25% a 50%, melhorando
consideravelmente o desempenho de renderização das telas.
Sistema eficiente de cacheamento de conteúdo - No Plone, existe um produto interno
que provê considerável incremento na velocidade de acesso às páginas, podendo ser de 10
a 40 vezes mais rápido, dependendo da configuração do setup. Este produto chama-se
CacheFu. Vê-se também, que este tem a preocupação de manter o conteúdo atualizado,
fazendo comparações com conteúdos em caches antigos no computador com os objetos do
site, trocando-os se necessário.
Ordenação de conteúdo usando Drag and Drop - Os conteúdos podem ser organizados
simplesmente usando o mouse no método drag and drop (arraste e solte), resultado da
integração do Plone com a tecnologia Ajax.
Templates ajustáveis para o conteúdo - Para a forma como se deseja visualizar um
conteúdo, há a opção de escolher qual tipo de template deseja-se empregar a aquele
conteúdo.
Tipos básicos de conteúdos poderosos - Os tipos de conteúdo padrões do Plone, em sua
forma básica, oferecem diversas funcionalidades, e conforme a realidade de onde estão
sendo empregados podem ser melhorados e aumentados.
Temos por exemplo, características básicas de alguns tipos de conteúdos. No tipo
Imagem, é oferecido o recurso de redimensionamento e criação de miniaturas (thumbnails). O
tipo Evento, é permitido exportar um conjunto de informações para formatos iCal (Mac OS
X) e vCal (Windows e Linux) para serem importados por outros programas como o Microsoft
Outlook, por exemplo.
Impressão limpa de conteúdo - Quando um documento é enviado ao serviço de
impressão, automaticamente o Plone remove informações irrelevantes como menu de
35
navegação, cabeçalho ou alguma informação utilizando CSS. Caso seja necessário criar
formatos de impressão especiais, o Plone assim os permite.
Regras de Acessibilidade - O Plone foi o primeiro gerenciador de conteúdo no mundo a
ser compatível com os padrões de acessibilidade WAI-AA e US Section 508.
Pesquisas integradas a RSS - Listas RSS podem ser criadas em conjunto com o
mecanismo de busca, contendo as informações encontradas nos resultados da pesquisa de
acordo com os termos desejados.
Vasta quantidade de produtos grátis para o Plone - Caso a funcionalidade que se deseja
ter em um site não esteja naqueles que são padrões à forma inicial do Plone, poderá
encontrá-la dentre centenas de produtos disponíveis gratuitamente na seção de produtos do
site Plone.org.
Inserção de comentários em qualquer tipo de conteúdo - O Plone provê a capacidade de
serem anexados comentários em qualquer tipo de conteúdo, conforme a decisão do
responsável por este.
Suporte a FTP e WebDav - O Plone provê acesso de seus conteúdos por programas que
usem FTP ou WebDav, permitindo ao usuário, fazer uploads ou downloads de inúmeros
objetos ao mesmo tempo.
36
5 INSTALAÇÃO E CONFIGURAÇÕES DO PLONE
5.1 Instalação e inicialização do Plone
O primeiro passo para a implementação de uma aplicação web utilizando o Plone é
realizar o download da ferramenta, que se encontra disponível no portal Plone.org. A partir
disto, inicia-se o processo de instalação, como mostra a figura 5.1-1.
Figura 5.1-1 – Setup de Instalação do Plone 3.0
Durante a instalação cria-se nome e senha do usuário administrador. Depois de
instalado, acessa-se a tela de configurações gerais1, onde são ajustadas as portas da aplicação
pela opção ‘Ports’. Por padrão, o Plone usa para acesso HTTP a porta 80 e para a ZMI, 8080.
Figura 5.1-2 – Configurações gerais do Plone
_______________________1 Em programação orientada a objetos significa separar o programa em partes, o mais isoladas possíveis.
37
Uma vez verificada as portas da aplicação, inicia-se o serviço Plone, no item ‘Status’.
Logo que terminar o processo de inicialização do Plone, após clicar na opção ‘Start’, escolhe-
se a opção ‘View Plone’. Caso deseje-se acessar a ZMI, deve-se escolher a opção ‘Zope
Management Interface’, conforme a figura 5.1-3.
Figura 5.1-3 – Tela de inicialização do Plone e acesso à ZMI
Para a visualização da tela inicial do Plone, como mostra a figura 5.1-4, pode-se
também optar pelo acesso no campo URL do navegador, usando http://[nome da máquina na
rede]:[porta de acesso HTTP]. Em geral, usa-se apenas http://localhost, caso a porta
configurada para acesso HTTP tenha sido a 80.
Figura 5.1-4 – Tela inicial do Plone.
38
5.2 Manipulação de objetos do Plone
Deve-se, portanto, na tela inicial do Plone, entrar na função de gerente de conteúdo,
através da opção ‘acessar’, preenchendo nome do usuário e senha cadastrados. Uma vez
acessado, percebe-se o aparecimento de uma aba com opções de configuração.
Figura 5.2-1 – Aba de configurações
Em um caso hipotético, adiciona-se uma pasta que conterá as informações relacionadas
à gerência de Informática.
Figura 5.2-2 – Lista de objetos padrão disponíveis no Plone
A tela de edição da Pasta será exibida com as opções de inserção de título e descrição na
opção padrão, como mostra a figura 5.2-3 abaixo:
Figura 5.2-3 – Tela de edição da pasta
Nesta tela de edição têm-se mais quatro itens a serem configurados, opcionalmente, a
este objeto do tipo ‘pasta’.39
Categorização – Local onde podem ser adicionadas palavras-chave, tags ou etiquetas, que
ajudarão a categorizar o conteúdo.
Datas – Local em que pode ser criada uma data de publicação e uma de expiração,
devendo apenas funcionar uma vez que a pasta encontra-se publicada. Esta função é muito
útil para objetos do tipo ‘notícia’, para que não haja problemas de exibição de notícias
desatualizadas.
Propriedades – Local em que são cadastradas algumas opções de metadados que
caracterizarão o objeto, como por exemplo, nome do autor, colaboradores e direitos.
Configurações – Local em que é permitido adicionar a capacidade de inserção de
comentários referente à pasta, também se deseja excluir este item do menu de navegação e
se caso tenha muitos objetos nesta pasta e exibidos em lista, se deseja fazer a paginação
dos mesmos.
Após salvar, irá precisar definir o compartilhamento da pasta, definindo quais grupos e
usuários terão direitos sobre a pasta, como mostra a figura 5.2-4.
Figura 5.2-4 – Tela de definição do compartilhamento da pasta
Uma vez definida as permissões de acesso, os usuários pertencentes ao grupo de
informática, terão completo acesso para criar mais objetos, editar, excluir ou publicar, mas
somente a partir do contexto raiz da pasta Informática.
Os objetos padrões que podem ser adicionados são do tipo arquivo, coleção, evento,
imagem, link, notícia, pasta e página.
40
5.3 Conhecendo as configurações do Plone
Para configurar o Plone, é preciso acessar a opção ‘Configurações do Site’ existente no
canto superior direito da tela do Plone. A partir disto, serão mostrados os itens conforme a
figura 5.3-1.
Figura 5.3-1 – Tela de configurações gerais do Plone
Vê-se então, a função dos principais itens, conforme descritos abaixo:
Buscar – Contém as opções de ativação de livesearch (visão dos resultados na digitação da
busca) e escolha dos tipos de objeto que serão exibidos nos resultados das buscas.
Figura 5.3-2 – Tela de configuração da busca
41
Calendário – Configura a exibição no calendário apenas dos tipos de objeto que estejam
com os estados selecionados. Por padrão, apenas os objetos que estão publicados serão
exibidos no calendário.
Figura 5.3-3 – Tela de configurações do calendário
E-Mail – Permite inserir o endereço do servidor de email, bem como a porta que o mesmo
utiliza. Além disso, cadastra-se o nome e endereço do remetente das mensagens a serem
enviadas a usuários.
Figura 5.3-4 – Tela de configuração de e-mail
42
Erros – Contém o registro completo de cada ocorrência de erro, bem como a descrição
detalhada de cada um.
Filtragem HTML – Por motivo de segurança, esta opção permite selecionar as tags,
atributos e estilos que serão aceitos nos códigos.
Idioma – Possui selecionar os idiomas em que o site estará disponível, dentre mais de
trezentas variações de línguas.
Interface de Gerência do Zope – Área em que é feita a configuração dos templates e
manutenção do layout do site.
Analogamente, tem-se acesso às configurações do Zope, acrescentando o número da
porta da ZMI e /manage ao final da URL, ou seja, http://localhost:8080/manage.
Figura 5.3-5 – Visualização padrão da Interface de Gerência do Zope (ZMI)
Manutenção – Contém as opções de manutenção do sistema. Neste local, é possível ter
controle do servidor ZServer, podendo desligá-lo ou reiniciá-lo, nos casos de precisar
instalar um produto novo.
Também tem a função de controla o ZODB do Zope, podendo remover os objetos
temporários, diminuindo o tamanho do banco de dados. Esta operação também é chamada de
pack da base de dados, como mostra a figura 5.3-6.
43
Figura 5.3-6 – Tela de gerenciamento do ZServer e do ZODB
Navegação – Controla as formas de navegação disponíveis do Plone: abas, mapa do site e
menu de navegação.
Produtos Adicionais – Contém os pacotes ou módulos instalados no Plone. Para instalar
um produto então, é necessário copiar a pasta que contém as suas classes para dentro de
‘Products’ e reiniciar o servidor ZServer, como mostrou a figura 5.3-6. Após isto, o
produto aparecerá na lista de produtos adicionais, pronto para ser instalado ao sistema.
Figura 5.3-7 – Tela de administração dos produtos do Plone
44
Segurança – Configura as regras de segurança do sistema, controlando o cadastro de
usuários e políticas de manipulação de senhas.
Figura 5.3-8 – Tela de configurações de segurança
Site – Nesta área é feito o cadastro do título e descrição do site. Nesta opção, é possível
determinar se toda vez que um objeto tentar ser movido ou apagado e possui ligação a
outro, aparecerá uma mensagem de alerta ao usuário, avisando sobre a possível quebra de
integridade dos links.
Tipos – Contêm as configurações de workflow, visibilidade e versionamento para os tipos
de conteúdos.
Usuários e Grupos – Neste ambiente é feita a administração de usuários e grupos. É
possível a criação de usuários, grupos e associações entre eles. Para uma melhor gerência
das permissões de gerência nas áreas do site, cadastra-se um grupo e depois se associa uma
determinada área, como uma pasta, para ser gerenciada por este. Uma vez que um usuário
seja inserido neste grupo, automaticamente ele tem permissão sobre as áreas
compartilhadas ao seu grupo.
45
6 CONCLUSÃO
Neste trabalho foi abordada a importância da gestão de conteúdos via web, realizada
pela ferramenta de software Plone, para um ambiente organizacional.
Analisou-se a importância do uso de ferramentas de gestão de conteúdo, que se tem
apresentado como grande estratégia para as organizações, em prover informações e serviços
dinâmicos, baseando-se na descentralização da administração dos sistemas web.
Através de comparação realizada com as principais ferramentas de gestão de conteúdo,
constatou-se o Plone como excelente solução para uso em aplicações web, por ser uma
ferramenta livre e Open Source, com inúmeras opções de escalabilidade, bem como por
possuir manuseio extremamente simples.
Foram abordadas as tecnologias envolvidas na criação do Plone, o Zope como servidor
de aplicações web de enorme aceitação dentre grandes empresas e o Python, como uma
linguagem de programação focada principalmente na produtividade.
Apresentou-se um detalhamento das principais vantagens e características da ferramenta
Plone, como por exemplo, usabilidade, internacionalização, personalização de conteúdo,
documentação, escalabilidade e autenticação flexível.
Descreveram-se os passos para instalação e as principais configurações do Plone
necessárias para a criação de uma aplicação web.
Conclui-se que, o Plone apresenta enorme potencialidade em ambientes corporativos,
por suas destacadas características técnicas e pelas excelentes políticas de desenvolvimento
intrínsecas ao software livre, minimizando os esforços direcionados à implementação.
6.1 Sugestão de trabalhos futuros
Como trabalhos futuros, são sugeridos o acoplamento do Plone a frameworks Javascript
de grande aceitação na web, como o Mootools ou Adobe Spry, para a criação de efeitos
visuais no layout do Plone, e também a possibilidade de intercalação dos templates do Zope
(ZPT e DTML) à linguagem XSL, intensificando a interação com arquivos XML.
46
REFERÊNCIAS BIBLIOGRÁFICAS
BAUER, C. H. Zope - Servidor de Aplicações. Disponível em <http://augustocampos.net/revista-do-linux/002/zope.html>. Acesso em: 12 ago. 2007.
BEYOND-CONTENT. Sistemas de Informação baseados em web. Disponível em: <http://www.beyond-content.com/zope_lounge/articles/plone_workflows__part_1>. Acesso em 24 set. 2007.
BROCKMANN, M. Zope - Kit de construção de aplicativos de Web. Rio de Janeiro: Alta Books, 2002
CMS MATRIX. The Content Management Comparison Tool. Disponível em < http://www.cmsmatrix.org/ >. Acesso em 08 set. 2007
ENFOLDSYSTEMS.COM - Empresa de Soluções em TI. Disponível em <http://www.enfoldsystems.com/>. Acesso em: 15 ago. 2007.
FERG, S. - Python & Java : A Side-by-Side Comparison. Disponível em < http://www.ferg.org/projects/python_java_side-by-side.html >. Acesso em: 18 set. 2007.
HENRIQUES, T. Por que Python? Seção Artigos. Disponível em <http://olifante.blogs.com/covil/2004/01/porqu_python.html>. Acesso em: 08 set 2007.
INFO ONLINE. Disponível em <http:/info.abril.com.br/download/1780.shtml>. Acesso em: 08 set 2007.
LANIWAY. Empresa de Soluções em Internet. Seção Serviços Coporativos. Disponível em: <http://www.laniway.com.br/br/corporativo/sql2000.do#transacional>. Acesso em: 20 set. 2007.
LATTEIER, A.; PELLETIER, M.; MCDONOUGH, C. The Zope Book. Disponível em: <http://www.zope.org/documentation/books/zopebook/2_6edition/zopearchitecture.stx>. Acesso em: 17 set. 2007.
MILLARCH, F. O que é CMS e porque você precisa de um? Disponível em <http://www.xoopstotal.com.br/modules/wfsection/article.php?articleid=68>. Acesso em 12 ago. 2007.
M-SOLUTIONS. Empresa de Consultoria e Desenvolvimento de Gerenciadores de Conteúdo. Seção Glossário. Disponível em: <http://www.m-solutions.org/techs>. Acesso em 20 ago. 2007.
NUNES, M. P. Aspectos Formais da Linguagem Python: Análise Léxica e Modelo de Dados. Disponível em <http://lula.dmat.furg.br/~python/aspectos.html>. Acesso em 07 set. 2007.
47
PARREIRAS, F.; BAX, M. P. Gestão de conteúdo com softwares livres. Disponível em <http://www.netic.com.br/docs/publicacoes/pub0004.pdf>. Acesso em 01 set. 2007.
PLONE FOUNDATION. Plone CMS – Open Source Content Management System. Disponível em: <http://www.plone.org/>. Acesso em: 06 jul. 2007.
PLONE.ORG. The Plone Book. Disponível em: < http://plone.org/products/plonebook/>. Acesso em: 12 ago. 2007.
PYTHON FOUNDATION. Python Programming Language - Official Website. Disponível em <http://www.python.org>. Acesso em: 17 ago. 2007.
PYTHONBRASIL. Comunidade Python do Brasil. Seção Perguntas Freqüentes. Disponível em <http://www.pythonbrasil.com.br/moin.cgi/PerguntasFrequentes/SobrePython>. Acesso em: 08 set 2007.
TCHEZOPE.ORG. Comunidade Zope e Plone Brasileira. Seção Tutoriais do Zope. Disponível em <http://www.tchezope.org/documentacao/tutorial/introducao-ao-zope-html/tutorial-all-pages>. Acesso em: 10 ago. 2007.
TERRA, J. C. C.; Gordon, C. Portais Corporativos: A Revolução na Gestão do Conhecimento. São Paulo: Negócio Editora, 2002.
US GOVERNMENT. Section 508 - The Road of Accessibility. Disponível em: <http://www.section508.gov/>. Acesso em: 18 set. 2007.
ZOPE.ORG. Zope Community. Disponível em: <http://www.zope.org>. Acesso em: 08 jul. 2007.
48