52
Portlets: Let them make your virtual world! Portlets: Let them make your virtual world! Fabiano Cruz Coordenador NEC / Java User Group – Petrópolis Marcelo Mayworm Coordenador NEC / Java User Group – Petrópolis

Portlets: Let them make your virtual world

Embed Size (px)

Citation preview

Page 1: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Portlets: Let them make your virtual world!

Fabiano Cruz Coordenador NEC / Java User Group – Petrópolis

Marcelo Mayworm Coordenador NEC / Java User Group – Petrópolis

Page 2: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Agenda

• Gerenciamento de informação• Framework Jetspeed

– Overview– Instalação e configuração

• Porlets API• Study Case

Page 3: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Proposta

• Pesquisa e desenvolvimento de soluçõespara a integração e gerenciamento deinformação, baseada em projetos OpenSource e seguindo o conceito Web based

• Pesquisa e desenvolvimento de novasfeatures para o Framework Jetspeed

• Contribuições para a Apache SoftwareFoundation

• Publicações periódicas

Page 4: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Gestão do Conhecimento

• Durante as primeiras décadas da Informáticaa ênfase foi em gerenciar dados

• Estruturas de dados, arquiteturas de dados,bancos de dados, data warehouses, e assimpor diante

• Transformar os dados transacionais emconhecimento e inteligência para suportar astomadas de decisões

• O fluxo de informações integrado aumentouvertiginosamente, proporcionando umadifusão de conhecimento

Page 5: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

As mudanças

• Prover informações organizadas– Visão liner versus visão holística

• Obter meios efetivos de uma empresa serelacionar com seus fornecedores e clientes– ERP(Enterprise Resource Planning)– CRM(Customer Relationship Management)– KM(Knowledge Management)– SCM(Supply Chain Management)

• Data Mining, junto às demaisfuncionalidades do ERP transforma dadosem informações relevantes

Page 6: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Integração Web based

• Tecnologias Web based para suportar astransações desse novo ambiente– Applications Service Provider (ASPs)– Dificuldade de customizar(os processos se adequam

a empresa)• Com a expansão da Internet e das intranets

corporativas, a distinção entre os sistemas de “backoffice” e “front office” tem sido cada vez mais tênue

• Rede Integrada de valor– O bem mais valioso para o sucesso é a informação– Empresas estarão conectadas diretamente uma a

uma• Integrando a partir de Web based

Page 7: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

### ????? ###

• Mas o que nos falta?– Integrar sistemas tecnológicos num único

ponto de acesso

Page 8: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

O que é um Portal ?

• Funções típicas:– Registro de usuário– Autenticação e autorização– Componentes de gerenciamento de dados:

• Portlets– Personalização baseada em profiles/behavior– Customização de páginas por usuários– Busca– Gerenciamento de conteúdo

Page 9: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Exemplo:

Page 10: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

JetSpeed | Visão Geral

• Um Framework da Apache SoftwareFoundation

• O principal projeto Open Source de umPortal Server

• Usa o Portal Structure Markup Languagepara definir o page layout, contents,decorations, etc– Jetspeed prove uma ferramenta de

customização / administração para serutilizada durante o carregamento da página

• Usa XML para definir serviços

Page 11: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Portal | Topologia

Page 12: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

JetSpeed | Arquitetura

• Dentro do Jetspeed, o Framework Turbine éresponsável por gerenciar a autenticaçãodos usuários e as suas configuração delayout de página.

• Portlets podem interagir com os serviços doTurbine através do RunData object.

• Uso de templates– JSP, Velocity etc

Page 13: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

JetSpeed | Page Layout

• Pense nos portlets como componentesativos que mostram dados dentro de umapágina HTML. A figura ilustra os portletsdentro da página de um

portal. São exibidos três portlets

Page 14: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Screen/Page

• Essa figura mostra a anatomia da páginacontendo os portlets. Dentro dessa página, oconteúdo do portlet é gerenciado peloPortletControl e PortletController.

Page 15: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Screen/Page

• PortletControl– Dentro da página do Portlet, gerencia o título

e corpo do Portlet• PortletController

– Gerencia múltiplos portletControl (cada umgerenciando seu portlet), provendo umapágina de entrada de informações para osportlets

Page 16: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Goals

• Possuem pequenas web applications para ousuário

• "skin“: essas web applications possibilitamao usuário definir background color, title barcolor, icons, etc

• Gerenciamento de performace entremúltiplos portlets através da utilização decache

• Facilmente customizado pelo usuário

Page 17: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Goals

• Facilmente desenvolvidos e não requeremque o desenvolvedor conheça os detalhesda implementação da Engine JetSpeed

• Facilmente desenvolvidos, pois aAbstractPortlet class definine a maioria dasações ocorridas em grande parte dassituações

• Permite automaticamente a apresentaçãoatravés dos formatos HTML e WML

Page 18: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Goals

• Prove métodos para o portlet determinar oestado atual ou anterior de apresentação.Todos os portlets devem suportar o VIEWmode

• Clicando em um desses controlesapresentados pela figura, o usuário pode,facilmente, alterar o modo e/ou estado deexibição do portlet. Exemplo:

Page 19: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• Esses são os portlets padrão e maiscomumente usados:– WebPage Portlet– HTML Portlet– JSP Portlet– RSS Portlet– XSL Portlet

Page 20: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• WebPage Portlet– Apresenta uma página web dentro de um

Portlet– Essa página será carregada pela Engine

Jetspeed, eximindo o portlet de qualquerinteração com o browser do usuário, comocookies, sendo gerenciada pelo seu sub-sistema de cache

– O WebPagePortlet irá converter, ou apagar,algumas tags do HTML, resultando em umapágina que será apresentada em um portlet

Page 21: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• HTML Portlet– Apresenta uma página HTML estática dentro

de um portlet– Porque utilizar um HTML Portlet ao invés de

um WebPagePortlet?– HTML é estático– Não é um HTML completo, ex.: <HEAD> não existe

dentro do arquivo– O arquivo HTML não precisa estar visível para o Web

Server– Tarefas específicas não podem ser realizadas por um

WebPagePortlet– Portlet que apresentam somento uma imagem, como

JPEG ou SVG

Page 22: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• HTML Portlet Example

<portlet-entry name=“OneDay" hidden="false"

type="ref“ parent="HTML"application="false">

<meta-info>

<title>One Day Java</title>

<description>HTML Example</description>

</meta-info>

<url>/OneDay.html</url>

</portlet-entry>

Page 23: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• JSP Portlet– Apresenta o output de um JSP dentro de um

portlet– Porque utilizar um JSP Portlet ao invés de

um WebPagePortlet?• JSP não tem que estar visível para o Web Server• Determinadas tarefas não podem ser atingidas

com o WebPagePortlet• Jetspeed Tag Library

Page 24: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• JSP Portlet Example

<portlet-entry name=“OneDayJSP" hidden="false"

type="ref" parent="JSP" application="false">

<meta-info>

<title>One Day JSP Example</title>

<description>Simple JSP Portlet</description>

</meta-info>

<parameter name="template" value=“OneDay.jsp"

hidden="false"/>

</portlet-entry>

Page 25: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• RSS Portlet– Apresenta um RSS que prove informações

para um portlet• Rich Site Summary (RSS) é um formato baseado

em XML, desenvolvido pela Netscape. O objetivodo RSS é o de propogar as alterações em um site,incluindo seu portal desenvolvido com o Jetspeed,dinamizando o processo de publicação deconteúdo

Page 26: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• RSS Portlet– A formatação de RSS dentro de um portlet é

controlada pelo stylesheet– Informações sobre o RSS:http://my.netscape.com/publish/formats/rss-spec-0.91.html

Page 27: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• RSS Portlets Example

<portlet-entry name=“Apacheweek"

hidden="false" type="ref" parent="RSS"

application="false">

<meta-info>

<title>Apacheweek</title>

</meta-info>

<url>

http://www.apacheweek.com/issues/apacheweek-headlines.xml

</url>

</portlet-entry>

Page 28: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Portlets Padrão

• XSL Portlet– Apresenta um documento XML transformado

dentro de um portlet

Page 29: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Instalação

• Para instalar o JetSpeed siga esses três passos:– Download and install TomCat 3.2 (Binaries)

• http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.4/bin/

– Download JetSpeed 1.3.a2 (Binaries)• http://jakarta.apache.org/builds/jakarta-

jetspeed/release/v1.3a2/– Download Apache James. Configure a propriedade

mail.server no arquivo de propriedadesTurbineResources.properties, o qual se encontra emwebapps/jetspeed/WEB-INF/conf

Page 30: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Configuração

• Descompactar o arquivo jetspeed-1.3a2-release-src.zip

• Copiar o arquivo jetspeed.war (Web Archieve),para o diretório WEBAPPS do TomCat

• Start o TomCat <TOMCAT_HOME>/bin/startup Nota: O TOMCAT_HOME deverá estar setado

• Conectar– http://localhost:8080/jetspeed

Page 31: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Estrutura de Dir.

• Conf– Contém todos os arquivos de configuração do Jetspeed

• Linguagem, Poll de Conexões, Controle de log (LOG4J), Arquivo de Registro dos Portlets (.xreg), etc

• Lib– Armazena todos os JARs (Java Archieve) do Projeto

• Templates– Velocity e JSP– HTML e/ou WML– Funcionalidades iniciais

• Template de cadastro, login, etc

Page 32: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | DataBases

• Banco default– Hypersonic– Configuração default no TurbineResource.properties

database.default.driver=org.hsql.jdbcDriverdatabase.default.url=jdbc:HypersonicSQL:${webappRoot}/WE

B-INF/db/jetspeeddatabase.default. username=sadatabase.default. password=

Page 33: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | New DataBase

• Script de criação e preechimento das tabelaspara:– MySQL, Postgres, Sybase, DB2 e Oracle– Baixando o Source Code, você terá acesso a

esses arquivos• Obter o driver JDBC do distribuidor

– Colocá-lo no diretório lib do JetSpeed• Alterar o TurbineResource.properties

Page 34: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | MySQL Example

• MySQL Connector/J 2.0.14 (ZIP)– mm.mysql-2.0.4-bin.jar

• TurbineResource.propertiesdatabase.default.driver=org.gjt.mm.mysql.Driverdatabase.default.url=jdbc:mysql://localhost:3306/nec_dbdatabase.default.username=rootdatabase.default.password=

Page 35: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Desenvolvendo Portlets – Hello World ! ☺

1. package org.nec.portal.portlets;

2. import org.apache.jetspeed.portal.portlets.AbstractPortlet;

3. import org.apache.turbine.util.RunData;

4. import org.apache.ecs.ConcreteElement;

5. import org.apache.ecs.StringElement;

6.

7. public class HelloWorldPortlet extends

8. AbstractPortlet9. {• public ConcreteElement getContent• (RunData runData)12. {13. return (new StringElement ("Hello World!"));14. }15. }

Page 36: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• A classe utilizada como base para novosportlets é a classe AbstractPortlet. Ela estálocalizada no packageorg.apache.jetspeed.portal.portlets

• Extendendo a AbstractPortlet, você terá querealizar a implementação do métodogetContent( )

Page 37: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• getContent( )– Também implementa a interface RunData do

Turbine como um parâmetro. Através dosmétodos getters e setters da RunData interface,você tem acesso em runtime as informaçõesarmazenadas no Turbine, incluindo cookies,locale, e dados do usuário. A maioria dos dadosatualmente, são gerenciados pelo próprioJetspeed, e não precisamos nos preocupar comeles na hora do desenvolvimento dos portlets

Page 38: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• O método getContent( ) retorna um ConcreteElementde um ECS

• ECS (Element Construction Set)– Para mostrar o conteúdo, portlets usam o

ECS API. Este vem com o JetSpeed, o qualgera markup elements a partir de objetosJava. Você pode usar servlet template ouJSP para gerar conteúdo como saída, oqual é capturado por uma ECS que mostrao seu conteúdo. ECS suporta tanto WMLcomo HTML

Page 39: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Exemplo ECSout.println("<HTML>");

out.println("<HEAD><TITLE>Demo<TITLE><HEAD>");

out.println("<BODY>");

out.println("<H1>Demo Header<H1>");

out.println("<H3>Sub Header:<H3>");

out.println("<FONT SIZE=\"+1\" FACE=\"Times\" COLOR=\"#FFFFFF">);

out.println("The big dog &amp; the little cat chased each other.");

out.println("<FONT>");

out.println("<BODY>");

out.printL>");

Html html = new Html()

.addElement(new Head()

.addElement(new Title("Demo")))

.addElement(new Body()

.addElement(new H1("Demo Header"))

.addElement(new H3("Sub Header:"))

.addElement(new Font().setSize("+1")

.setColor(HtmlColor.WHITE)

.setFace("Times")

.addElement("The big dog & the little cat chased each other.")));

out.println(html.toString());

// or write to the outputstream directly

output(out);

Construção Manual de HTML

Construção com ECS

Page 40: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Publicando o portlet no Jetspeed– O arquivo .xreg

• portlet.xreg– Arquivo de registro dos portlets default e de

configuração do Jetspeed• local-portlets.xreg

– Para que você não tenha problemas nas atualizaçõesde versões do Jetspeed, se faz necessário criar o seupróprio catálogo de portlets

Page 41: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case• Desenvolvendo Portlets – Arquivo de Registro do Portlet (.xreg)1. <?xml version="1.0" encoding="UTF-8"?>

2. <registry>

3. <portlet-entry name="HelloWorld“

4. hidden="false" type="instance“

5. application="false">

6. <meta-info>

7. <title>HelloWorld</title>

8. <description>

9. Portlet HelloWorld – One Day Java

10. </description>

11. </meta-info>

12. <classname>

13. org.nec.portal.portlets.HelloWorldPortlet

14. </classname>

15. <media-type ref="html"/>

16. </portlet-entry>

17. </registry>

Page 42: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Catálogo de portlets

Page 43: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Adicionando o portlet do catálogo ao portalpersonalizado do usuário

Page 44: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Página personalizada do usuário

Page 45: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Você deverá publicar o seu novoportlet no Jetspeed de forma manual,utilizando um “dialeto do XML”denominado Portal Structure MarkupLanguage (PSML)

• O Jetspeed utiliza o PSML paradescrever configurações internas,disponíveis nos portlets, econfigurações do usuário

• O portlet deverá estar disponívelatravés de seu portlet registry (.xreg)

Page 46: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case• Desenvolvendo Portlets – Arquivo de Publicação do Portlet

(.psml)

1. <?xml version="1.0" encoding="UTF-8"?>

2. <portlets

3. xmlns="http://www.apache.org/2000/02/CVS">

4. <controller name="ThreeColumns"/>

5. <skin name="NECPortletStyles"/>

6. <entry parent="HelloWorld">

7. <layout>

8. <property name="column" value="1"/>

9. <property name="row" value="1"/>

10. </layout>

11. </entry>

12. </portlets>

Page 47: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Jetspeed e Wireless– Wap de uma forma transparente– Utilizando o Nokia Mobile Internet Toolkit

Page 48: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

Tela de Login Página Personalizada do Usuário

Page 49: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Resources– Para informações adicionais, recursos e

ferramentas, veja os seguintes web sites• http://jakarta.apache.org• http://jakarta.apache.org/jetspeed• http://www.mysql.com• http://www.javasoft.com• http://www.javaworld.com• http://www.google.com.br ☺

Page 50: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Jetspeed | Study Case

• Perguntas– … e respostas …

Page 51: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Portlets: Let them make your virtual world!

[email protected]

Page 52: Portlets: Let them make your virtual world

Portlets: Let them make your virtual world!

Portlets: Let them make your virtual world!

Fabiano [email protected]

Marcelo [email protected]