monografia - plone - robson (6).docx

67
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.

Upload: rvirino

Post on 10-Aug-2015

55 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Monografia - Plone - Robson (6).docx

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

Page 2: Monografia - Plone - Robson (6).docx

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

Page 3: Monografia - Plone - Robson (6).docx

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

Page 4: Monografia - Plone - Robson (6).docx

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

Page 5: Monografia - Plone - Robson (6).docx

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

Page 6: Monografia - Plone - Robson (6).docx

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

Page 7: Monografia - Plone - Robson (6).docx

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

Page 8: Monografia - Plone - Robson (6).docx

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

Page 9: Monografia - Plone - Robson (6).docx

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

Page 10: Monografia - Plone - Robson (6).docx

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

Page 11: Monografia - Plone - Robson (6).docx

11

Page 12: Monografia - Plone - Robson (6).docx

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

Page 13: Monografia - Plone - Robson (6).docx

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

Page 14: Monografia - Plone - Robson (6).docx

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

Page 15: Monografia - Plone - Robson (6).docx

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

Page 16: Monografia - Plone - Robson (6).docx

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

Page 17: Monografia - Plone - Robson (6).docx

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

Page 18: Monografia - Plone - Robson (6).docx

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

Page 19: Monografia - Plone - Robson (6).docx

Desempenho

19

Page 20: Monografia - Plone - Robson (6).docx

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

Page 21: Monografia - Plone - Robson (6).docx

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

Page 22: Monografia - Plone - Robson (6).docx

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

Page 23: Monografia - Plone - Robson (6).docx

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

Page 24: Monografia - Plone - Robson (6).docx

4 http://www.blender.org/

24

Page 25: Monografia - Plone - Robson (6).docx

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

Page 26: Monografia - Plone - Robson (6).docx

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

Page 27: Monografia - Plone - Robson (6).docx

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

Page 28: Monografia - Plone - Robson (6).docx

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

Page 29: Monografia - Plone - Robson (6).docx

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

Page 30: Monografia - Plone - Robson (6).docx

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

Page 31: Monografia - Plone - Robson (6).docx

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

Page 32: Monografia - Plone - Robson (6).docx

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

Page 33: Monografia - Plone - Robson (6).docx

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

Page 34: Monografia - Plone - Robson (6).docx

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

Page 35: Monografia - Plone - Robson (6).docx

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

Page 36: Monografia - Plone - Robson (6).docx

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

Page 37: Monografia - Plone - Robson (6).docx

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

Page 38: Monografia - Plone - Robson (6).docx

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

Page 39: Monografia - Plone - Robson (6).docx

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

Page 40: Monografia - Plone - Robson (6).docx

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

Page 41: Monografia - Plone - Robson (6).docx

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

Page 42: Monografia - Plone - Robson (6).docx

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

Page 43: Monografia - Plone - Robson (6).docx

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

Page 44: Monografia - Plone - Robson (6).docx

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

Page 45: Monografia - Plone - Robson (6).docx

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

Page 46: Monografia - Plone - Robson (6).docx

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

Page 47: Monografia - Plone - Robson (6).docx

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

Page 48: Monografia - Plone - Robson (6).docx

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