Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação Rafael Strecker Coelho de Souza ANÁLISE E COMPARATIVO DE FERRAMENTAS CMS COMPATÍVEIS COM A JSR-170 Proposta completa para o trabalho de conclusão do curso de Sistemas de Informação da Universidade Federal de Santa Catarina John Cleber Jaraceski (orientador) Florianópolis, abril de 2006 1. Definição do problema Quase todos os gerenciadores de conteúdo têm um repositório de conteúdo próprio. Este repositório estende uma camada de armazenamento, normalmente uma base de dados relacional, com alguns serviços que qualquer aplicação de conteúdo atual exige. Estes serviços, como: controle de versão, workflow, tem diferentes terminologias e interfaces de programação diferentes. Assim percebe-se que é necessária uma interface padrão para o acesso aos repositórios de conteúdo. As grandes empresas produtoras de CMS, uniram-se e definiram para a linguagem Java, uma especificação para esta padronização de acesso aos repositórios. Tem o nome de JSR-170 Java Content Repository, com o objetivo de fazer um padrão de acesso semelhante ao que foi feito com a especificação da Java Database Connectivity (JDBC). Auxiliando assim desenvolvedores, usuários finais, fabricantes de repositórios. 1.1. Problemática O problema em si é fazer uma análise das ferramentas de gerenciamento de conteúdo que sob a ótica da JSR-170. Comparando-as, e mostrando suas vantagens e desvantagens. 1.2. Objetivos Os principais objetivos deste projeto são: a análise das implementações existentes da JSR 170,a descoberta de novos problemas conforme o desenvolvimento da análise, a acumulação de massa crítica sobre o assunto. 1.2.1. Objetivo Geral Pesquisar o uso da especificação pelos softwares de gerenciamento de conteúdo atuais. 1.2.2. Objetivo Específico • Conhecer as pesquisas e possíveis soluções para o desenvolvimento da interface padrão de acesso ao CMS. • Analisar os gerenciadores de conteúdo existentes de código aberto que implementam a especificação. • Analisar os principais gerenciadores de conteúdo que não implementam a especificação. • Elaborar um comparativo entre estes gerenciadores de conteúdo, mostrando as vantagens e desvantagens entre eles, sob a ótica da JSR 170. 1.2.3. Motivação A principal motivação do estudo está na análise e futura implementação de uma tecnologia nova, que propiciará uma nova geração de gerenciadores e repositórios de conteúdo. 1.3. Metodologia Inicialmente pesquisar todos os CMS que já suportam a especificação . Após isso efetuar uma análise das implementações existentes, sob os ângulos do desenvolvedor, do fornecedor de repositório e do usuário final. Trazendo assim um comparativo entre o modelo antigo, e o novo modelo proposto. 3. Desenvolvimento 3.1 Gerenciadores de Conteúdo Compatíveis com a JSR 170 No momento, há duas opções de gerenciadores de conteúdo compatíves com a JSR 170. São eles o Magnolia http://www.magnolia.info e o Alfresco http://dev.alfresco.com/ . Estas duas implementações são livres e de código aberto. Ambas possuem suporte aos 2 níveis de implementação da JSR 170, trazendo toda a falicidade de integração que a especificação propõe. As duas soluções são implementadas em java, tem como foco o gerenciamento de conteúdo em todo o seu ciclo de vida. Os dois gerenciadores serão escolhidos para fazer a análise comparativa, com outras soluções que não implementam a especificação. 3.2 Outros Gerenciadores de conteúdo Entre gerenciadores de conteúdo que não implementam a JSR 170, existem centenas de opções, tanto pagas quanto livres e de código aberto. Para este trabalho foi escolhido o CMS OpenCMS, ferramenta implementada em Java, que é uma solução livre e aberta, bem conceituada entre ferramentas de CMS, com boa aceitação no mercado corporativo. 3. Revisão de Literatura 3.1 O que é Gestão do Conhecimento Gestão do Conhecimento, é o processo pelo qual uma organização gera riqueza a partir do seu conhecimento, seja ele explícito ou tácito a partir do seu capital intelectual. A Gestão do Conhecimento vem rapidamente ganhando espaço dentro das organizações, dado cada vez mais as mesmas darem a real importância ao seu capital intelectual. Pois o capital intelectual é a fonte mais clara de uma competitividade longa e duradoura. Pode ser visto também como, um conjunto de procedimentos estabelecidos para desenvolver e controlar todo tipo de conhecimento essencial para a organização atingir seus objetivos. 3.2 O que é Gestão de Conteúdo Gestão de Conteúdo pode ser definido como o ciclo de vida completo de edição, armazenagem, disseminação e controle de versões de conteúdos, tanto impressos como digitais. A gestão de conteúdo, tem sido um assunto muito popular na internet, pela sua grande aceitação das organizações e por possuir diversas ferramentas de apoio a esta gestão. As organizações, perceberam a necessidade de organizar melhor a suas informações,e seu sistema de publicação de conteúdo, interna e externamente, para comportar uma demanda cada vez maior de informações geradas e recebidas. Gestão de conteúdo, partiu desta necessidade organizacional, provendo todo um conjunto de técnicas e procedimentos para cuidar de todo o sistema de publicação de um conteúdo. Primeiro com a criação, depois a armazenagem, revisão,aprovação e publicação. Este processo gera uma versão do conteúdo, que é armazenado e pode ser sempre consultado, mesmo que seja apenas p/ uma revisão. 3.3 O que é CMS CMS é a sigla para Content Management System, ou gerenciador de conteúdo. É a idéia de um gerenciamento da informação de organizações que produzem muito conteúdo. São baseados na web, auxiliando em vários aspectos a publicação de conteúdo, desde sua forma de apresentação ao seu controle de versão. Estes CMS servem para a publicação de conteúdo, gerenciamento de transação de e-commerces, Wikis, gerenciamento de documentos, entre outras atividades. 3.4 O que é a JSR 170. É a sigla para Java Specification Request 170, que em sua versão final foi batizada como Content Repository for Java Technology API. Ela foi proposta por um grupo de fabricantes de CMS. Empresas como IBM,Oracle,Macromedia,Bea,Sun e Vignette participaram da definição deste padrão. Ela visa ser uma interface entre o CMS e o repositório, para que a troca de um repositório por outro, ou mesmo de um CMS para outro seja uma tarefa simples que não de dor de cabeça para usuários e desenvolvedores. Ela se baseia na idéia da JDBC, que é uma interface padrão entre a linguagem java e os bancos de dados. É composta de 2 interfaces, uma voltada para os fornecedores de repositório e outra para os desenvolvedores que acessam o conteúdo deste repositório. A especificação surgiu da necessidade de uma padronização do acesso aos dados de um repositório nas ferramentas de CMS. Atualmente, há uma dependência total entre o fabricante do CMS e o repositório de dados. Se uma organização, tem a necessidade de trocar de ferramente de gerenciamento de conteúdo, ela é obrigada a substituir também o seu repositório, pois não há compatibilidade entre eles, ou se a organização deseja adicionar uma nova fonte de dados, o gerenciador de conteúdo precisa modelar uma nova abstração p/ esta nova fonte de dados. Isto demanda um custo desnecessário, que com uma simples interface padrão entre fonte de dados e gerenciadores de conteúdo seria resolvido. A JSR possui dois níveis de implementação principais e outros níveis opcionais de implementação. Faz parte destes níveis desde o acesso ao repositório e leitura, há o controle de workflow do conteúdo. Cronograma 2006: • Maio, Junho, Julho – Análise das ferramentas de gerenciamento de conteúdo. • Agosto, Setembro – Comparativo entre as ferramentas. • Outubro, Novembro – Elaboração do estudo de caso. • Dezembro – Férias 2007: • Janeiro – Elaboração do estudo de caso. • Fevereiro, Março - Revisão Referencia Bibliográfica http://www.cmswatch.com/Feature/123 Artigo sobre a JSR 170 e CMS. www.wikipedia.orgwww.wikipedia.org http://www.artima.com/lejava/articles/contentrepository.html Artigo sobre Apache Jackrabitt e a Java Content Repository API. http://www.jcp.org/en/jsr/detail?id=170 Pagina oficial da especificação. http://www.theserverside.com/news/thread.tss?thread_id=34342 Artigo sobre o a especificação. Revista Java Magazine Ed.27 Artigo sobre a JSR 170 e uma pequena lista de CMS que visam implementar a especificação