Início > CMS > Gestão de Conteúdo com Liferay Portal

Gestão de Conteúdo com Liferay Portal

Na nova empresa, vou começar a fazer a manutenção do portal corporativo além de ter a oportunidade de reestruturar o processo de desenvolvimento e instituir uma política de controle de versão. Esse portal foi desenvolvido em Liferay, que é uma plataforma web corporativa. Para me iniciar nessa tecnologia, fiz vários cursos oferecidos pela Liferay do Brasil:

Nesses cursos, aprendi a desenvolver portlets, temas, layouts, a administrar o portal (permissões, grupos, regras, workflows e etc) e a reimplementar as funcionalidades do container com hooks e extensions. Até que o Wiki da Liferay tem bastante informação. Antes de descrever minhas impressões sobre o Liferay, vou definir de forma sucinta o que é um Sistema de Gestão de Conteúdo, um Portal e um Portlet.

Sistema de Gestão de Conteúdo

Um SGC (Sistema de Gestão de Conteúdo) é um web site pré-estruturado que permite publicar, editar e modificar conteúdo e mantê-lo através de uma interface administrativa. Esse tipo de sistema permite gerenciar workflow em um ambiente colaborativo. No caso do Liferay, é utilizado o Kaleo para gerenciamento de workflow. A aparência de um SGC pode ser modificada através de temas. Existem muitos SGCs: WordPress, Joomla, Droopal, etc. Uma lista com vários desses sistemas pode ser encontrada aqui.

A maior vantagem de um SGC é que cada pessoa interessada é responsável por produzir e manter seu próprio conteúdo sem necessidade de uma outra pessoa ou de uma empresa terceirizada com essa responsabilidade. Dessa forma, a empresa diminui custos com recursos humanos e atualização de conteúdo.

Portal

De acordo com a Wikipedia:

Um portal é um site na internet que funciona como centro aglomerador e distribuidor de conteúdo para uma série de outros sites ou subsites dentro e/ou fora do domínio ou subdomínio da empresa gestora do portal.

Da definição derivam três responsabilidades de um portal feito em Java que segue a especificação de Portlets:

  1. Portlet Container: controla o ciclo de vida dos portlets.
  2. Agregador de Conteúdo: os portais têm fóruns, motores de busca, wikis, enquetes, notícias, etc. Eles permitem a interação com conteúdo vindo de locais diferentes, como um post vindo de uma rede social, simulação de aplicações na Bolsa, acesso ao webmail, etc.
  3. Serviços Comuns: são serviços que as implementações comerciais oferecem para se distinguirem de seus concorrentes, como logon único e personalização.

Portlet

Portlets são componentes de portais que oferecem conteúdo (notícias, enquetes, fóruns) e que seguem as especificações JSR 168 e JSR 286. Podem ser reutilizados diversas vezes no mesmo portal. Um portlet processa um pedido e gera dinamicamente o conteúdo que será mostrado no cliente. Em minha opinião, um portlet é um servlet com escopo reduzido.

Não confunda Portlets com Gadgets. Os gadgets são programas de computadores que fornecem serviços sem a necessidade de uma aplicação independente ser carregada.

Minhas Impressões Sobre o Liferay

Feito em Java

Mais especificamente feito em Struts, segue a especificação de Portlets, utiliza Spring Framework para injeção de dependências e controle transacional e faz ORM com Hibernate. Permite que utilizemos qualquer framework MVC, como o Spring MVC.

Service Builder

Gera automaticamente todas as classes de domínio. Toda a estrutura gerenciada por ele só apresenta dois pontos de intervenção do programador, que são a definição das entidades em um arquivo XML e a criação das regras de negócio na implementação de um facade. Quando uma alteração de interface é feita, é necessário executar o build para que todas as classes sejam regeradas e para que a interface do facade seja recriada por engenharia reversa. Esse framework diminui o poder do desenvolvedor e torna bugs relacionados a banco de dados difíceis de detectar e entender. Ao iniciar um projeto é possível utilizar outra estratégia para construir as entidades persistentes e regras de negócio, mas não é recomendado pela Liferay. Para utilizar o Service Builder é necessário pensamento positivo e até um pouco de sorte para que não ocorram problemas.

Estratégia de Lançamento de Versões Controversa

Vi que uma das grandes mudanças entre a versão 6.0 (que utilizo na empresa) e a versão 6.1 (na qual fiz os cursos) foi a remoção do conceito de Comunidades e criação do conceito de Sites. A outra é que os Grupos deixaram de ter páginas. Aprendi que mudança de millestone não deveria quebrar compatibilidade, mas a Liferay toma decisões que fazem com que a migração de millestones seja muito arriscada.

Muito Instável

Em um fórum alguém fez uma pergunta engraçada: “Qual é a versão mais estável do Liferay”. Todo o software têm bugs, mas acho que o Liferay exagera. No próprio treinamento de desenvolvedor que fiz vi muitos bugs que me deixaram com uma impressão ruim da ferramenta. Acho que o pessoal da Liferay tem que parar um pouco, ouvir os usuários, entender os problemas e trabalhar para lançar uma versão Enterprise verdadeira, pois são duas as diferenças entre a versão Community e a versão Enterprise: um pouco menos de bugs e um pouco mais de features, que podem estar bugadas.

Comunidade Fraca

Pouca gente utiliza o Liferay.  No fim da apostila, somos incentivados a participar dos fóruns. Estou participando, mas demorará alguns anos para amadurecimento da comunidade, do Liferay e da Liferay Inc.

IDE Baseada no Eclipse

É bom que o ambiente de desenvolvimento padrão seja baseado na ferramenta mais utilizada para desenvolvimento de projetos Java, mas poderia ser melhor. Melhor seria se a Liferay criasse um plugin para o Eclipse e disponibilizasse no Market Place. O que acho realmente ruim nessa IDE é ter mudado a forma como sempre trabalhei no Eclipse: IDE em um lugar, meus projetos em outro lugar do qual importo as referências para minha workspace. O IDE do Liferay exige que coloquemos o código fonte dentro das pastas da IDE na estrutura que ele convenciona: ext, hooks, portlets, themes, etc. No Eclipse padrão, para trabalhar em outro branch era só trocar de workspace. Com o IDE do Liferay, preciso de uma cópia da IDE inteira para jogar o branch dentro. Muito tosco!

Expandos

É uma forma de criar colunas virtuais em tabelas. Como ainda não usei na prática, não tenho opinião formada, mas pode ser um ponto de complicação para uma eventual migração.

Extensions

Não deveria existir, mas existe. Permite que o comportamento padrão do portal seja modificado programaticamente. O problema é que não é possível desinstalá-lo. Para criar uma Extension, deve-se conhecer e ter backup das estruturas que serão alteradas ou partir-se de um Liferay limpo e fazer deploys de todos os seus portlets, temas, layouts e hooks novamente. Antes de usar um Extension, procure saber se o problema pode ser resolvido com um Hook.

Conclusão

Não acho que o Liferay é maduro o suficiente para ser usado em aplicações comerciais, mas tem potencial para ser. As empresas assumem um grande risco ao escolhê-lo e elas devem estar cientes disso. Pode ser que minha opinião mude com o lançamento das próximas versões do Liferay e com mais experiência, mas por enquanto é essa.

Anúncios
Categorias:CMS Tags:, , , ,
  1. 31/10/2012 às 3:54 PM

    Gostei do post, já trabalhei com Liferay durante 2 dias, tive que integrá-lo ao Microsoft Active Directory. Não consegui e fiquei feliz em não precisar utilizá-lo mais.
    Boa sorte! Abraços

  2. 03/11/2012 às 8:19 AM

    O Fato de vc não ter dado conta de integrar, não quer dizer que a ferramenta não seja boa.

    • 04/11/2012 às 10:15 AM

      Marcelo, o David não afirmou que o Liferay é uma ferramenta ruim. Toda a ferramenta tem um propósito, uma curva de aprendizado, pontos fortes, pontos fracos, uma comunidade atuante e um nível de maturidade. Todos esses itens devem ser considerados antes de escolhermos uma ferramenta. Essa escolha deve ser feita por comparação criteriosa e não por achismo ou fé. O propósito desse artigo foi apresentar minhas impressões sobre alguns pontos do Liferay Portal e fazer as pessoas refletirem antes de escolhê-la. Leia um artigo que escrevi em resposta a um comentário com uma postura similar à sua:

      https://atitudereflexiva.wordpress.com/2010/06/05/criticar-e-facil-raciocinar-e-dificil/

  3. Dailson Araujo
    12/12/2012 às 10:32 AM

    Agora fiquei preocupado. Estava pensando em sugerir o LifeRay para substituir nosso portal, que por se tratar de um site de uma instituição do governo utiliza basicamente o recurso de publicação de informações. Dois elementos fizeram-me considerar o LifeRay. A proximidade que o portal tem com as tecnologias que utilizamos (Java, JSF) e a possibilidade de integração com o Alfresco. Você recomendaria algum outro portal desenvolvido em JAVA? A versão Communit Edition é realmente tão bugada? Onde posso encontrar essas informações sobre as reclamações dos usuários sobre os bugs?

  4. 12/12/2012 às 5:09 PM

    Olá Dailson,

    Pode sugerir o Liferay sim, mas antes você precisa levantar detalhadamente todas as necessidades que você tem. Chama o pessoal da Liferay para conversar com vocês e apresenta as necessidades.

    A versão Communit não deve ser usada para projetos da sua empresa. Ele tem várias limitações que vão te fazer falta no dia a dia do desenvolvimento e depois que colocar no ar. Dá uma olhada aqui:

    http://www.liferay.com/downloads/liferay-portal/overview

    Estou utilizando na empresa a versão 6.0.12 EE SP2. O próximo patch é o 6.0.13 EE, que ainda não foi lançado e tem mais de 1000 issues corrigidas de acordo com o Jira: http://issues.liferay.com/browse/LPS/fixforversion/10764). Muitas são correções de bugs que impactam em tarefas que preciso fazer com certa urgência, como por exemplo a customização do portlet Asset Publisher, que é o componente que faz o que você está procurando. Postei os problemas abaixo no fórum da liferay, mas tenho vários outros problemas e dúvidas reportados que a comunidade ainda não respondeu:

    http://www.liferay.com/community/forums/-/message_boards/message/18243431
    http://www.liferay.com/community/forums/-/message_boards/message/18372213

    Para ter uma idéia dos problemas mais comuns, dá uma olhada no fórum:

    http://www.liferay.com/community/forums/-/message_boards/category/8408627

    Se você tiver uma licença Enterprise, o suporte técnico de primeiro nível é feito pelas empresas parceiras. O atendimento deles está aquém de nossas expectativas e muito abaixo de nossas necessidades.

    Com relação a outros CMS em Java, não tenho nenhum para te indicar. Os mais famosos são em PHP (WordPress e Joomla).

    Abs, e boa sorte.

  5. 10/11/2014 às 11:20 AM

    Oi Rodrigo! Tudo bem? Depois de 2 anos mudou algo em relação à sua percepção sobre a Liferay?

    • 10/11/2014 às 7:00 PM

      Olá Ana. No ano que passou não trabalhei com o Liferay. Um colega assumiu essa função enquanto estive envolvido em outros projetos com outras tecnologias, mas ainda assim acompanhei muito do que aconteceu.

      Sobre a Liferay posso dizer que não temos problemas de relacionamento desde quando exigimos ser atendidos direto pelo segundo nível (a própria Liferay Brazil) e não pelo parceiro que nos vendeu a ferramenta. Bugs e outras dificuldades continuaram aparecendo, mas as soluções vinham em tempo hábil.

      Sobre o Liferay, as novas versões caminham na direção do mobile e do design responsivo. Também há novas funcionalidades para flexibilizar a customização da aplicação. Parece ser menos intrusivo que os hooks.

      Amanhã mesmo participarei do Symposium (https://www.liferay.com/pt/web/brazil2014/home) que ocorrerá em São Paulo. Vou porque recebi um voucher, mas não por entusiasmo com a tecnologia. Ela já nos deu muitas dores de cabeça. O impacto da migração da nossa versão para a mais nova é arriscadíssimo. É melhor reescrever.

      Fomos procurados por representantes comerciais do Oracle WebCenter Portal (https://go.oracle.com/LP=6245). É Java, é portlet e os vendedores fazem parecer tão maravilhoso que até parece estranho que tenhamos chegado até aqui sem ele. Eles voltarão com uma proposta customizada para nós. Vamos ver.

      Sinceramente, não recomendo ERP e CMS salvo para uso interno da empresa e com processos bem conhecidos – como controle de estoque. Se você vai fazer um site para vender alguma coisa e cuja atualização seja fortemente influenciada e pressionada por um departamento de Marketing ou se seu core business tem a ver com desenvolvimento de software, como desenvolvedor eu recomendo uma solução customizada feita por uma equipe madura, boa tecnicamente e alinhada com o negócio.

      Espero ter te ajudado.

      Abs.

  6. 06/01/2016 às 11:23 AM

    Muito boa as suas análises. Acho o Liferay bem interessante. Entretanto, a comunidade até hoje é muito pequena quando comparada com outras. Uma coisa que não gosto do Liferay é o volume enorme de tecnologias embarcadas, o que deixa a solução muito inchada. Sem contar que as versões das libs e frameworks não são lá das mais novas… Nem eles conseguem evoluir dado o tamanho da complexidade deles. Prefiro soluções mais enxutas. Nessas versões mais recentes do Liferay por exemplo, tem ant/ivy, maven, gradle… Pra que tudo isso? (Servem para o mesmo propósito!!). Mas, ao contrário de você, acho o service builder muito interessante, uma grande sacada para a produtividade. Estou para começar um projeto novo, mas tenho medo em adotar o Liferay Community Edition.

  7. 06/01/2016 às 12:59 PM

    Olá Ygor. Também acho o Service Builder interessante, mas ainda prefiro ver e entender extamente o que está acontecendo no processo, pois como você mesmo disse, há muitas bibliotecas e frameworks envolvidos fora o uso do Hibernate para atuar diretamente na estrutura do banco de dados, mas esse uso é opcional. Todas essas tecnologias visam atrair um público maior à custa do inchaço. Hoje, não estou muito envolvido com o Liferay na empresa. Voltei a atuar em soluções customizadas, mas o Liferay não saiu do nosso radar. Participei do último Liferay Symposium realizado em São Paulo e saí com uma boa impressão. Andamos avaliando o CMS da Oracle, que também utiliza portlets, mas chegamos a conclusão que o da Liferay é mais maduro e, no nosso caso, a curva de aprendizado em uma migração para a versão mais nova é menor. Não recomendo que você use a versão Community em um projeto para sua empresa. A versão Enterprise é mais estável, mas você deve adquirir a licença e contratar o suporte. Demorei meses e apliquei vários patches enviados pelo suporte para fazer a versão 6.0 EE que customizamos parar de “sangrar”.
    Abs.

  8. 12/03/2017 às 7:57 PM

    Olá pessoal, por favor, gostaria de saber se tem como desenvolver um site como este: http://www.certisign.com.br/ em outra plataforma “WordPress por exemplo” além do Liferay. Obrigado

  9. 13/03/2017 às 8:22 AM

    Olá Marco. Dependendo dos seus requisitos, dá para desenvolver com WordPress, que é PHP. O site da Certisign utiliza o Liferay, que é Java. Ele faz integrações com webservices, grava algumas coisas em banco, envia e-mails e tem um applet para teste de certificados digitais. Tirando a parte do applet, que poderia ser reescrita com client authentication, você poderia teoricamente reimplementar esse site inteiro no WordPress, mas como eu disse nos comentários acima, tome cuidado com CMS, pois ele pode engessar sua solução.
    Abs.

    • 13/03/2017 às 10:05 AM

      Olá Rodrigo, bom dia e muito obrigado pelo feedback. No caso do meu cliente, ele quer apenas fazer a venda dos certificados e obviamente o institucional. Ele disse também que o tipo de certificado que ele mais vende é o de token (pendrive), mas possivelmente venda os outros tipos também e de toda forma a finalização da venda é presencial. O que vai pegar mesmo, são as informações obtidas através da venda, os dados do comprador e sistemas de pagamento. Você acha que o wordpress daria conta disso? Aguardo sua resposta por favor.

  10. 13/03/2017 às 11:42 AM

    Olá Marco. Parte de sua necessidade é uma vitrine de produtos, mas quando se envolve meio de pagamento em fluxos mais bem elaborados ou integrações não triviais com outros sistemas, sempre prefiro uma solução customizada. Você vai ter mais controle e flexibilidade. Acho que quaisquer CMS vai ficar aquém das suas expectativas.
    Abs.

    • 13/03/2017 às 12:01 PM

      Entendo Rodrigo, o magento resolveria essa questão ou teria mesmo que experimentar o liferay? Preciso precificar este projeto, por isso preciso saber das possibilidades de plataformas mais usadas do mercado para dar o start. Nunca trabalhei com o liferay, estou fazendo diversas pesquisas para saber o que é necessário se caso for o único meio para isso. O que me diria, ou recomendaria em termos do mencionado acima até mesmo precificação? Obrigado!

  11. 13/03/2017 às 12:56 PM

    Olá Marco. Não conheço o Magento. Sugiro que você converse com os representantes desses CMS, exponha suas necessidades e peça a eles uma apresentação customizada. Aderindo a uma solução proprietária, recomendo que você tenha um bom contrato de suporte, pois tenha certeza de que irá precisar. Depois de todos os problemas que tive com o Liferay, hoje eu não utilizaria nenhum CMS em meus projetos.
    Abs.

    • 13/03/2017 às 1:01 PM

      Ok Rodrigo. Você teria alguma sugestão de precificação quanto a este projeto baseado nesta necessidade? Agradeço imensamente suas sugestões.

  12. 14/03/2017 às 10:04 AM

    Olá Marco. No caso do Liferay, fui envolvido depois que a versão customizada entrou em produção. Não acompanhei cotações, negociações e nem tenho ideia de preços.
    Abs.

    • Marco
      15/03/2017 às 7:13 PM

      Entendo Rodrigo. Agradeço seus feedbacks. Bem, vamos em frente à procura da solução de precificação. Vlw

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: