SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
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!
Agenda


• Gerenciamento de informação
• Framework Jetspeed
  – Overview
  – Instalação e configuração
• Porlets API
• Study Case




                Portlets: Let them make your virtual world!
Proposta


• Pesquisa e desenvolvimento de soluções
  para a integração e gerenciamento de
  informação, baseada em projetos Open
  Source e seguindo o conceito Web based
• Pesquisa e desenvolvimento de novas
  features para o Framework Jetspeed
• Contribuições para a Apache Software
  Foundation
• Publicações periódicas

              Portlets: Let them make your virtual world!
Gestão do Conhecimento

• Durante as primeiras décadas da Informática
  a ênfase foi em gerenciar dados
• Estruturas de dados, arquiteturas de dados,
  bancos de dados, data warehouses, e assim
  por diante
• Transformar os dados transacionais em
  conhecimento e inteligência para suportar as
  tomadas de decisões
• O fluxo de informações integrado aumentou
  vertiginosamente, proporcionando uma
  difusão de conhecimento
               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 se
  relacionar com seus fornecedores e clientes
  –   ERP(Enterprise Resource Planning)
  –   CRM(Customer Relationship Management)
  –   KM(Knowledge Management)
  –   SCM(Supply Chain Management)
• Data Mining, junto às demais
  funcionalidades do ERP transforma dados
  em informações relevantes
                Portlets: Let them make your virtual world!
Integração Web based
• Tecnologias Web based para suportar as
  transaçõ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 “back
  office” 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
                    Portlets: Let them make your virtual world!
### ????? ###

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




               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

                  Portlets: Let them make your virtual world!
Exemplo:




     Portlets: Let them make your virtual world!
JetSpeed | Visão Geral

• Um Framework da Apache Software
  Foundation
• O principal projeto Open Source de um
  Portal Server
• Usa o Portal Structure Markup Language
  para definir o page layout, contents,
  decorations, etc
  – Jetspeed prove uma ferramenta de
    customização / administração para ser
    utilizada durante o carregamento da página
• Usa XML para definir serviços
               Portlets: Let them make your virtual world!
Portal | Topologia




          Portlets: Let them make your virtual world!
JetSpeed | Arquitetura

• Dentro do Jetspeed, o Framework Turbine é
  responsável por gerenciar a autenticação
  dos usuários e as suas configuração de
  layout de página.
• Portlets podem interagir com os serviços do
  Turbine através do RunData object.
• Uso de templates
  – JSP, Velocity etc




                Portlets: Let them make your virtual world!
JetSpeed | Page Layout

• Pense nos portlets como componentes
  ativos que mostram dados dentro de uma
  página HTML. A figura ilustra os portlets
  dentro da página de um
  portal. São exibidos
  três portlets




               Portlets: Let them make your virtual world!
Jetspeed | Screen/Page




• Essa figura mostra a anatomia da página
  contendo os portlets. Dentro dessa página, o
  conteúdo do portlet é gerenciado pelo
  PortletControl e PortletController.
               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 um
    gerenciando seu portlet), provendo uma
    página de entrada de informações para os
    portlets



                   Portlets: Let them make your virtual world!
Jetspeed | Portlets Goals


• Possuem pequenas web applications para o
  usuário
• quot;skin“: essas web applications possibilitam
  ao usuário definir background color, title bar
  color, icons, etc
• Gerenciamento de performace entre
  múltiplos portlets através da utilização de
  cache
• Facilmente customizado pelo usuário


                Portlets: Let them make your virtual world!
Jetspeed | Portlets Goals


• Facilmente desenvolvidos e não requerem
  que o desenvolvedor conheça os detalhes
  da implementação da Engine JetSpeed
• Facilmente desenvolvidos, pois a
  AbstractPortlet class definine a maioria das
  ações ocorridas em grande parte das
  situações
• Permite automaticamente a apresentação
  através dos formatos HTML e WML


                Portlets: Let them make your virtual world!
Jetspeed | Portlets Goals


• Prove métodos para o portlet determinar o
  estado atual ou anterior de apresentação.
  Todos os portlets devem suportar o VIEW
  mode
• Clicando em um desses controles
  apresentados pela figura, o usuário pode,
  facilmente, alterar o modo e/ou estado de
  exibição do portlet. Exemplo:




               Portlets: Let them make your virtual world!
Jetspeed | Portlets Padrão


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




               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 qualquer
    interação com o browser do usuário, como
    cookies, sendo gerenciada pelo seu sub-
    sistema de cache
  – O WebPagePortlet irá converter, ou apagar,
    algumas tags do HTML, resultando em uma
    página que será apresentada em um portlet

               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
                  Portlets: Let them make your virtual world!
Jetspeed | Portlets Padrão

• HTML Portlet Example

 <portlet-entry name=“OneDayquot; hidden=quot;falsequot;
  type=quot;ref“ parent=quot;HTMLquot;application=quot;falsequot;>
   <meta-info>
    <title>One Day Java</title>
    <description>HTML Example</description>
   </meta-info>
   <url>/OneDay.html</url>
 </portlet-entry>




              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




                 Portlets: Let them make your virtual world!
Jetspeed | Portlets Padrão

• JSP Portlet Example
 <portlet-entry name=“OneDayJSPquot; hidden=quot;falsequot;
  type=quot;refquot; parent=quot;JSPquot; application=quot;falsequot;>
   <meta-info>
    <title>One Day JSP Example</title>
    <description>Simple JSP Portlet</description>
   </meta-info>
   <parameter name=quot;templatequot; value=“OneDay.jspquot;
    hidden=quot;falsequot;/>
 </portlet-entry>




                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 objetivo
       do RSS é o de propogar as alterações em um site,
       incluindo seu portal desenvolvido com o Jetspeed,
       dinamizando o processo de publicação de
       conteúdo




                 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




                   Portlets: Let them make your virtual world!
Jetspeed | Portlets Padrão

• RSS Portlets Example

 <portlet-entry name=“Apacheweekquot;
  hidden=quot;falsequot; type=quot;refquot; parent=quot;RSSquot;
  application=quot;falsequot;>
    <meta-info>
      <title>Apacheweek</title>
    </meta-info>
    <url>
   http://www.apacheweek.com/issues/apacheweek-headlines.xml
    </url>
  </portlet-entry>


                   Portlets: Let them make your virtual world!
Jetspeed | Portlets Padrão

• XSL Portlet
  – Apresenta um documento XML transformado
    dentro de um portlet




                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 propriedades
     TurbineResources.properties, o qual se encontra em
     webapps/jetspeed/WEB-INF/conf



                      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



                   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
                      Portlets: Let them make your virtual world!
Jetspeed | DataBases
• Banco default
  – Hypersonic
  – Configuração default no TurbineResource.properties
     database.default.driver=org.hsql.jdbcDriver
     database.default.url=jdbc:HypersonicSQL:${webappRoot}/WE
       B-INF/db/jetspeed
     database.default.
           username=sa
     database.default.
           password=




                   Portlets: Let them make your virtual world!
Jetspeed | New DataBase


• Script de criação e preechimento das tabelas
  para:
  – 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


                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.properties
  database.default.driver=org.gjt.mm.mysql.Driver
  database.default.url=jdbc:mysql://localhost:3306/nec_db
  database.default.username=root
  database.default.password=




                  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.                      AbstractPortlet
9.    {
•       public ConcreteElement getContent
•                                 (RunData runData)
12.     {
13.       return (new StringElement (quot;Hello World!quot;));
14.     }
15.   }
                       Portlets: Let them make your virtual world!
Jetspeed | Study Case


•   A classe utilizada como base para novos
    portlets é a classe AbstractPortlet. Ela está
    localizada no package
    org.apache.jetspeed.portal.portlets
•   Extendendo a AbstractPortlet, você terá que
    realizar a implementação do método
    getContent( )




                    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 dos
      métodos getters e setters da RunData interface,
      você tem acesso em runtime as informações
      armazenadas no Turbine, incluindo cookies,
      locale, e dados do usuário. A maioria dos dados
      atualmente, são gerenciados pelo próprio
      Jetspeed, e não precisamos nos preocupar com
      eles na hora do desenvolvimento dos portlets


                    Portlets: Let them make your virtual world!
Jetspeed | Study Case


•   O método getContent( ) retorna um ConcreteElement
    de um ECS
• ECS (Element Construction Set)
    – Para mostrar o conteúdo, portlets usam o
      ECS API. Este vem com o JetSpeed, o qual
      gera markup elements a partir de objetos
      Java. Você pode usar servlet template ou
      JSP para gerar conteúdo como saída, o
      qual é capturado por uma ECS que mostra
      o seu conteúdo. ECS suporta tanto WML
      como HTML
                  Portlets: Let them make your virtual world!
Jetspeed | Exemplo ECS
 out.println(quot;<HTML>quot;);
 out.println(quot;<HEAD><TITLE>Demo<TITLE><HEAD>quot;);
 out.println(quot;<BODY>quot;);
                                                                Construção Manual de HTML
 out.println(quot;<H1>Demo Header<H1>quot;);
 out.println(quot;<H3>Sub Header:<H3>quot;);
 out.println(quot;<FONT SIZE=quot;+1quot; FACE=quot;Timesquot; COLOR=quot;#FFFFFFquot;>);
 out.println(quot;The big dog &amp; the little cat chased each other.quot;);
 out.println(quot;<FONT>quot;);
 out.println(quot;<BODY>quot;);
 out.printL>quot;);


 Html html = new Html()
          .addElement(new Head()
             .addElement(new Title(quot;Demoquot;)))
          .addElement(new Body()
          .addElement(new H1(quot;Demo Headerquot;))
          .addElement(new H3(quot;Sub Header:quot;))                       Construção com ECS
          .addElement(new Font().setSize(quot;+1quot;)
                  .setColor(HtmlColor.WHITE)
                  .setFace(quot;Timesquot;)
                  .addElement(quot;The big dog & the little cat chased each other.quot;)));
 out.println(html.toString());
 // or write to the outputstream directly
 output(out);

                                       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ções
          de versões do Jetspeed, se faz necessário criar o seu
          próprio catálogo de portlets




                   Portlets: Let them make your virtual world!
Jetspeed | Study Case
•     Desenvolvendo Portlets – Arquivo de Registro do Portlet (.xreg)
1.     <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
2.     <registry>
3.      <portlet-entry name=quot;HelloWorld“
4.        hidden=quot;falsequot; type=quot;instance“
5.        application=quot;falsequot;>
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=quot;htmlquot;/>
16.     </portlet-entry>
17.    </registry>

                         Portlets: Let them make your virtual world!
Jetspeed | Study Case

• Catálogo de portlets




               Portlets: Let them make your virtual world!
Jetspeed | Study Case

• Adicionando o portlet do catálogo ao portal
  personalizado do usuário




               Portlets: Let them make your virtual world!
Jetspeed | Study Case

• Página personalizada do usuário




              Portlets: Let them make your virtual world!
Jetspeed | Study Case

• Você deverá publicar o seu novo
  portlet no Jetspeed de forma manual,
  utilizando um “dialeto do XML”
  denominado Portal Structure Markup
  Language (PSML)
• O Jetspeed utiliza o PSML para
  descrever configurações internas,
  disponíveis nos portlets, e
  configurações do usuário
• O portlet deverá estar disponível
  através de seu portlet registry (.xreg)
              Portlets: Let them make your virtual world!
Jetspeed | Study Case
•   Desenvolvendo Portlets – Arquivo de Publicação do Portlet
    (.psml)

1. <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
2. <portlets
3.    xmlns=quot;http://www.apache.org/2000/02/CVSquot;>
4.    <controller name=quot;ThreeColumnsquot;/>
5.    <skin name=quot;NECPortletStylesquot;/>
6.    <entry parent=quot;HelloWorldquot;>
7.       <layout>
8.          <property name=quot;columnquot; value=quot;1quot;/>
9.          <property name=quot;rowquot; value=quot;1quot;/>
10.      </layout>
11.   </entry>
12. </portlets>

                      Portlets: Let them make your virtual world!
Jetspeed | Study Case

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




                Portlets: Let them make your virtual world!
Jetspeed | Study Case

  Tela de Login          Página Personalizada do Usuário




                  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 ☺




                  Portlets: Let them make your virtual world!
Jetspeed | Study Case

• Perguntas
  – … e respostas …




              Portlets: Let them make your virtual world!
Portlets: Let them make your virtual world!

 jug-petropolis-subscribe@yahoogroups.com




        Portlets: Let them make your virtual world!
Portlets: Let them make your virtual world!

                      Fabiano Cruz
                   fabianoc@acm.org

                Marcelo Mayworm
               mmayworm@acm.org




        Portlets: Let them make your virtual world!

Mais conteúdo relacionado

Destaque

APSotW - Posicionando o Brasil
APSotW - Posicionando o BrasilAPSotW - Posicionando o Brasil
APSotW - Posicionando o BrasilCarla Puttini
 
Informação na catástrofe
Informação na catástrofeInformação na catástrofe
Informação na catástrofeRuy Ferreira
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
BPM Made Easy - 5. Business Case: Travel Request
BPM Made Easy - 5. Business Case: Travel RequestBPM Made Easy - 5. Business Case: Travel Request
BPM Made Easy - 5. Business Case: Travel RequestFrederico Cruz
 
EGuide - Apresentação (Guias de Turismo)
EGuide - Apresentação (Guias de Turismo)EGuide - Apresentação (Guias de Turismo)
EGuide - Apresentação (Guias de Turismo)EGuide
 
Analysis of content pages1
Analysis of content pages1Analysis of content pages1
Analysis of content pages1Indiiaa777
 
Hladczuk Advocacia - Apresentação
Hladczuk Advocacia - ApresentaçãoHladczuk Advocacia - Apresentação
Hladczuk Advocacia - Apresentaçãohladczukadvocacia
 
Trabalho de historia periodo arcaico
Trabalho de historia   periodo arcaicoTrabalho de historia   periodo arcaico
Trabalho de historia periodo arcaicoJhorlando
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Apresentação inglês para taxistas
Apresentação inglês para taxistasApresentação inglês para taxistas
Apresentação inglês para taxistasVantage Training
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Apresentação cursos de Inglês. Saiba mais!!!
Apresentação cursos de Inglês. Saiba mais!!!Apresentação cursos de Inglês. Saiba mais!!!
Apresentação cursos de Inglês. Saiba mais!!!London Idiomas
 

Destaque (20)

H2.3 webmarketing-apresentation
H2.3 webmarketing-apresentationH2.3 webmarketing-apresentation
H2.3 webmarketing-apresentation
 
Felicidade no trabalho - Coach Juliana Emer
Felicidade no trabalho - Coach Juliana EmerFelicidade no trabalho - Coach Juliana Emer
Felicidade no trabalho - Coach Juliana Emer
 
Lojas Leader
Lojas LeaderLojas Leader
Lojas Leader
 
APSotW - Posicionando o Brasil
APSotW - Posicionando o BrasilAPSotW - Posicionando o Brasil
APSotW - Posicionando o Brasil
 
Informação na catástrofe
Informação na catástrofeInformação na catástrofe
Informação na catástrofe
 
Lets talk english convers networking
Lets talk english convers networkingLets talk english convers networking
Lets talk english convers networking
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
BPM Made Easy - 5. Business Case: Travel Request
BPM Made Easy - 5. Business Case: Travel RequestBPM Made Easy - 5. Business Case: Travel Request
BPM Made Easy - 5. Business Case: Travel Request
 
EGuide - Apresentação (Guias de Turismo)
EGuide - Apresentação (Guias de Turismo)EGuide - Apresentação (Guias de Turismo)
EGuide - Apresentação (Guias de Turismo)
 
Design e Planejamento
Design e PlanejamentoDesign e Planejamento
Design e Planejamento
 
Why English
Why EnglishWhy English
Why English
 
Results tally
Results tallyResults tally
Results tally
 
Analysis of content pages1
Analysis of content pages1Analysis of content pages1
Analysis of content pages1
 
Hladczuk Advocacia - Apresentação
Hladczuk Advocacia - ApresentaçãoHladczuk Advocacia - Apresentação
Hladczuk Advocacia - Apresentação
 
Trabalho de historia periodo arcaico
Trabalho de historia   periodo arcaicoTrabalho de historia   periodo arcaico
Trabalho de historia periodo arcaico
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Apresentação inglês para taxistas
Apresentação inglês para taxistasApresentação inglês para taxistas
Apresentação inglês para taxistas
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Apresentação cursos de Inglês. Saiba mais!!!
Apresentação cursos de Inglês. Saiba mais!!!Apresentação cursos de Inglês. Saiba mais!!!
Apresentação cursos de Inglês. Saiba mais!!!
 
Why english?
Why english?Why english?
Why english?
 

Semelhante a Portlets: Let them make your virtual world

Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaBreno Vitorino
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoIgor Sobreira
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMarcelo Linhares
 
Introdução de web
Introdução de webIntrodução de web
Introdução de webSedu
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
Desenvolvimento Web Com Ajax
Desenvolvimento Web Com AjaxDesenvolvimento Web Com Ajax
Desenvolvimento Web Com Ajaxelliando dias
 

Semelhante a Portlets: Let them make your virtual world (20)

Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em Java
 
Apache Wicket
Apache WicketApache Wicket
Apache Wicket
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
 
Software Livre Java
Software Livre JavaSoftware Livre Java
Software Livre Java
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
IBM WebSphere Portal
IBM WebSphere PortalIBM WebSphere Portal
IBM WebSphere Portal
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Desenvolvimento Web Com Ajax
Desenvolvimento Web Com AjaxDesenvolvimento Web Com Ajax
Desenvolvimento Web Com Ajax
 
Mini Curso Mashup Coreu
Mini Curso Mashup CoreuMini Curso Mashup Coreu
Mini Curso Mashup Coreu
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 

Mais de elliando dias

Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojureelliando dias
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypseelliando dias
 

Mais de elliando dias (20)

Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introduction
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojure
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypse
 

Portlets: Let them make your virtual world

  • 1. 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!
  • 2. Agenda • Gerenciamento de informação • Framework Jetspeed – Overview – Instalação e configuração • Porlets API • Study Case Portlets: Let them make your virtual world!
  • 3. Proposta • Pesquisa e desenvolvimento de soluções para a integração e gerenciamento de informação, baseada em projetos Open Source e seguindo o conceito Web based • Pesquisa e desenvolvimento de novas features para o Framework Jetspeed • Contribuições para a Apache Software Foundation • Publicações periódicas Portlets: Let them make your virtual world!
  • 4. Gestão do Conhecimento • Durante as primeiras décadas da Informática a ênfase foi em gerenciar dados • Estruturas de dados, arquiteturas de dados, bancos de dados, data warehouses, e assim por diante • Transformar os dados transacionais em conhecimento e inteligência para suportar as tomadas de decisões • O fluxo de informações integrado aumentou vertiginosamente, proporcionando uma difusão de conhecimento Portlets: Let them make your virtual world!
  • 5. As mudanças • Prover informações organizadas – Visão liner versus visão holística • Obter meios efetivos de uma empresa se relacionar com seus fornecedores e clientes – ERP(Enterprise Resource Planning) – CRM(Customer Relationship Management) – KM(Knowledge Management) – SCM(Supply Chain Management) • Data Mining, junto às demais funcionalidades do ERP transforma dados em informações relevantes Portlets: Let them make your virtual world!
  • 6. Integração Web based • Tecnologias Web based para suportar as transaçõ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 “back office” 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 Portlets: Let them make your virtual world!
  • 7. ### ????? ### • Mas o que nos falta? – Integrar sistemas tecnológicos num único ponto de acesso Portlets: Let them make your virtual world!
  • 8. 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 Portlets: Let them make your virtual world!
  • 9. Exemplo: Portlets: Let them make your virtual world!
  • 10. JetSpeed | Visão Geral • Um Framework da Apache Software Foundation • O principal projeto Open Source de um Portal Server • Usa o Portal Structure Markup Language para definir o page layout, contents, decorations, etc – Jetspeed prove uma ferramenta de customização / administração para ser utilizada durante o carregamento da página • Usa XML para definir serviços Portlets: Let them make your virtual world!
  • 11. Portal | Topologia Portlets: Let them make your virtual world!
  • 12. JetSpeed | Arquitetura • Dentro do Jetspeed, o Framework Turbine é responsável por gerenciar a autenticação dos usuários e as suas configuração de layout de página. • Portlets podem interagir com os serviços do Turbine através do RunData object. • Uso de templates – JSP, Velocity etc Portlets: Let them make your virtual world!
  • 13. JetSpeed | Page Layout • Pense nos portlets como componentes ativos que mostram dados dentro de uma página HTML. A figura ilustra os portlets dentro da página de um portal. São exibidos três portlets Portlets: Let them make your virtual world!
  • 14. Jetspeed | Screen/Page • Essa figura mostra a anatomia da página contendo os portlets. Dentro dessa página, o conteúdo do portlet é gerenciado pelo PortletControl e PortletController. Portlets: Let them make your virtual world!
  • 15. Jetspeed | Screen/Page • PortletControl – Dentro da página do Portlet, gerencia o título e corpo do Portlet • PortletController – Gerencia múltiplos portletControl (cada um gerenciando seu portlet), provendo uma página de entrada de informações para os portlets Portlets: Let them make your virtual world!
  • 16. Jetspeed | Portlets Goals • Possuem pequenas web applications para o usuário • quot;skin“: essas web applications possibilitam ao usuário definir background color, title bar color, icons, etc • Gerenciamento de performace entre múltiplos portlets através da utilização de cache • Facilmente customizado pelo usuário Portlets: Let them make your virtual world!
  • 17. Jetspeed | Portlets Goals • Facilmente desenvolvidos e não requerem que o desenvolvedor conheça os detalhes da implementação da Engine JetSpeed • Facilmente desenvolvidos, pois a AbstractPortlet class definine a maioria das ações ocorridas em grande parte das situações • Permite automaticamente a apresentação através dos formatos HTML e WML Portlets: Let them make your virtual world!
  • 18. Jetspeed | Portlets Goals • Prove métodos para o portlet determinar o estado atual ou anterior de apresentação. Todos os portlets devem suportar o VIEW mode • Clicando em um desses controles apresentados pela figura, o usuário pode, facilmente, alterar o modo e/ou estado de exibição do portlet. Exemplo: Portlets: Let them make your virtual world!
  • 19. Jetspeed | Portlets Padrão • Esses são os portlets padrão e mais comumente usados: – WebPage Portlet – HTML Portlet – JSP Portlet – RSS Portlet – XSL Portlet Portlets: Let them make your virtual world!
  • 20. 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 qualquer interação com o browser do usuário, como cookies, sendo gerenciada pelo seu sub- sistema de cache – O WebPagePortlet irá converter, ou apagar, algumas tags do HTML, resultando em uma página que será apresentada em um portlet Portlets: Let them make your virtual world!
  • 21. 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 Portlets: Let them make your virtual world!
  • 22. Jetspeed | Portlets Padrão • HTML Portlet Example <portlet-entry name=“OneDayquot; hidden=quot;falsequot; type=quot;ref“ parent=quot;HTMLquot;application=quot;falsequot;> <meta-info> <title>One Day Java</title> <description>HTML Example</description> </meta-info> <url>/OneDay.html</url> </portlet-entry> Portlets: Let them make your virtual world!
  • 23. 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 Portlets: Let them make your virtual world!
  • 24. Jetspeed | Portlets Padrão • JSP Portlet Example <portlet-entry name=“OneDayJSPquot; hidden=quot;falsequot; type=quot;refquot; parent=quot;JSPquot; application=quot;falsequot;> <meta-info> <title>One Day JSP Example</title> <description>Simple JSP Portlet</description> </meta-info> <parameter name=quot;templatequot; value=“OneDay.jspquot; hidden=quot;falsequot;/> </portlet-entry> Portlets: Let them make your virtual world!
  • 25. 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 objetivo do RSS é o de propogar as alterações em um site, incluindo seu portal desenvolvido com o Jetspeed, dinamizando o processo de publicação de conteúdo Portlets: Let them make your virtual world!
  • 26. 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 Portlets: Let them make your virtual world!
  • 27. Jetspeed | Portlets Padrão • RSS Portlets Example <portlet-entry name=“Apacheweekquot; hidden=quot;falsequot; type=quot;refquot; parent=quot;RSSquot; application=quot;falsequot;> <meta-info> <title>Apacheweek</title> </meta-info> <url> http://www.apacheweek.com/issues/apacheweek-headlines.xml </url> </portlet-entry> Portlets: Let them make your virtual world!
  • 28. Jetspeed | Portlets Padrão • XSL Portlet – Apresenta um documento XML transformado dentro de um portlet Portlets: Let them make your virtual world!
  • 29. 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 propriedades TurbineResources.properties, o qual se encontra em webapps/jetspeed/WEB-INF/conf Portlets: Let them make your virtual world!
  • 30. 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 Portlets: Let them make your virtual world!
  • 31. 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 Portlets: Let them make your virtual world!
  • 32. Jetspeed | DataBases • Banco default – Hypersonic – Configuração default no TurbineResource.properties database.default.driver=org.hsql.jdbcDriver database.default.url=jdbc:HypersonicSQL:${webappRoot}/WE B-INF/db/jetspeed database.default. username=sa database.default. password= Portlets: Let them make your virtual world!
  • 33. Jetspeed | New DataBase • Script de criação e preechimento das tabelas para: – 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 Portlets: Let them make your virtual world!
  • 34. Jetspeed | MySQL Example • MySQL Connector/J 2.0.14 (ZIP) – mm.mysql-2.0.4-bin.jar • TurbineResource.properties database.default.driver=org.gjt.mm.mysql.Driver database.default.url=jdbc:mysql://localhost:3306/nec_db database.default.username=root database.default.password= Portlets: Let them make your virtual world!
  • 35. 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. AbstractPortlet 9. { • public ConcreteElement getContent • (RunData runData) 12. { 13. return (new StringElement (quot;Hello World!quot;)); 14. } 15. } Portlets: Let them make your virtual world!
  • 36. Jetspeed | Study Case • A classe utilizada como base para novos portlets é a classe AbstractPortlet. Ela está localizada no package org.apache.jetspeed.portal.portlets • Extendendo a AbstractPortlet, você terá que realizar a implementação do método getContent( ) Portlets: Let them make your virtual world!
  • 37. Jetspeed | Study Case • getContent( ) – Também implementa a interface RunData do Turbine como um parâmetro. Através dos métodos getters e setters da RunData interface, você tem acesso em runtime as informações armazenadas no Turbine, incluindo cookies, locale, e dados do usuário. A maioria dos dados atualmente, são gerenciados pelo próprio Jetspeed, e não precisamos nos preocupar com eles na hora do desenvolvimento dos portlets Portlets: Let them make your virtual world!
  • 38. Jetspeed | Study Case • O método getContent( ) retorna um ConcreteElement de um ECS • ECS (Element Construction Set) – Para mostrar o conteúdo, portlets usam o ECS API. Este vem com o JetSpeed, o qual gera markup elements a partir de objetos Java. Você pode usar servlet template ou JSP para gerar conteúdo como saída, o qual é capturado por uma ECS que mostra o seu conteúdo. ECS suporta tanto WML como HTML Portlets: Let them make your virtual world!
  • 39. Jetspeed | Exemplo ECS out.println(quot;<HTML>quot;); out.println(quot;<HEAD><TITLE>Demo<TITLE><HEAD>quot;); out.println(quot;<BODY>quot;); Construção Manual de HTML out.println(quot;<H1>Demo Header<H1>quot;); out.println(quot;<H3>Sub Header:<H3>quot;); out.println(quot;<FONT SIZE=quot;+1quot; FACE=quot;Timesquot; COLOR=quot;#FFFFFFquot;>); out.println(quot;The big dog &amp; the little cat chased each other.quot;); out.println(quot;<FONT>quot;); out.println(quot;<BODY>quot;); out.printL>quot;); Html html = new Html() .addElement(new Head() .addElement(new Title(quot;Demoquot;))) .addElement(new Body() .addElement(new H1(quot;Demo Headerquot;)) .addElement(new H3(quot;Sub Header:quot;)) Construção com ECS .addElement(new Font().setSize(quot;+1quot;) .setColor(HtmlColor.WHITE) .setFace(quot;Timesquot;) .addElement(quot;The big dog & the little cat chased each other.quot;))); out.println(html.toString()); // or write to the outputstream directly output(out); Portlets: Let them make your virtual world!
  • 40. 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ções de versões do Jetspeed, se faz necessário criar o seu próprio catálogo de portlets Portlets: Let them make your virtual world!
  • 41. Jetspeed | Study Case • Desenvolvendo Portlets – Arquivo de Registro do Portlet (.xreg) 1. <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> 2. <registry> 3. <portlet-entry name=quot;HelloWorld“ 4. hidden=quot;falsequot; type=quot;instance“ 5. application=quot;falsequot;> 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=quot;htmlquot;/> 16. </portlet-entry> 17. </registry> Portlets: Let them make your virtual world!
  • 42. Jetspeed | Study Case • Catálogo de portlets Portlets: Let them make your virtual world!
  • 43. Jetspeed | Study Case • Adicionando o portlet do catálogo ao portal personalizado do usuário Portlets: Let them make your virtual world!
  • 44. Jetspeed | Study Case • Página personalizada do usuário Portlets: Let them make your virtual world!
  • 45. Jetspeed | Study Case • Você deverá publicar o seu novo portlet no Jetspeed de forma manual, utilizando um “dialeto do XML” denominado Portal Structure Markup Language (PSML) • O Jetspeed utiliza o PSML para descrever configurações internas, disponíveis nos portlets, e configurações do usuário • O portlet deverá estar disponível através de seu portlet registry (.xreg) Portlets: Let them make your virtual world!
  • 46. Jetspeed | Study Case • Desenvolvendo Portlets – Arquivo de Publicação do Portlet (.psml) 1. <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> 2. <portlets 3. xmlns=quot;http://www.apache.org/2000/02/CVSquot;> 4. <controller name=quot;ThreeColumnsquot;/> 5. <skin name=quot;NECPortletStylesquot;/> 6. <entry parent=quot;HelloWorldquot;> 7. <layout> 8. <property name=quot;columnquot; value=quot;1quot;/> 9. <property name=quot;rowquot; value=quot;1quot;/> 10. </layout> 11. </entry> 12. </portlets> Portlets: Let them make your virtual world!
  • 47. Jetspeed | Study Case • Jetspeed e Wireless – Wap de uma forma transparente – Utilizando o Nokia Mobile Internet Toolkit Portlets: Let them make your virtual world!
  • 48. Jetspeed | Study Case Tela de Login Página Personalizada do Usuário Portlets: Let them make your virtual world!
  • 49. 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 ☺ Portlets: Let them make your virtual world!
  • 50. Jetspeed | Study Case • Perguntas – … e respostas … Portlets: Let them make your virtual world!
  • 51. Portlets: Let them make your virtual world! jug-petropolis-subscribe@yahoogroups.com Portlets: Let them make your virtual world!
  • 52. Portlets: Let them make your virtual world! Fabiano Cruz fabianoc@acm.org Marcelo Mayworm mmayworm@acm.org Portlets: Let them make your virtual world!