Enviar pesquisa
Carregar
Construindo portlets para IBM WebSphere Portal – Parte 1
•
3 gostaram
•
2,494 visualizações
R
rodrigoareis
Seguir
Workshop de introdução ao desenvolvimento de portlets para IBM WebSphere Portal
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 75
Baixar agora
Baixar para ler offline
Recomendados
Asp.net caching
Asp.net caching
Mindfire Solutions
Oracle Applications R12 Architecture
Oracle Applications R12 Architecture
Viveka Solutions
Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
Rudson Kiyoshi Souza Carvalho
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
Joeldson Costa Damasceno
IBM TechDay - SEO para Desenvolvedores Web e Web desginers
IBM TechDay - SEO para Desenvolvedores Web e Web desginers
Fabio Ricotta
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here!
Dev_Events
IBM Design Studio Brasil - IBM Design Thinking Workshop - Oxigenar 2015
IBM Design Studio Brasil - IBM Design Thinking Workshop - Oxigenar 2015
Adilson Chicória
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
IBM UrbanCode Products
Recomendados
Asp.net caching
Asp.net caching
Mindfire Solutions
Oracle Applications R12 Architecture
Oracle Applications R12 Architecture
Viveka Solutions
Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
Rudson Kiyoshi Souza Carvalho
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
Joeldson Costa Damasceno
IBM TechDay - SEO para Desenvolvedores Web e Web desginers
IBM TechDay - SEO para Desenvolvedores Web e Web desginers
Fabio Ricotta
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here!
Dev_Events
IBM Design Studio Brasil - IBM Design Thinking Workshop - Oxigenar 2015
IBM Design Studio Brasil - IBM Design Thinking Workshop - Oxigenar 2015
Adilson Chicória
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
IBM UrbanCode Products
Mod06 licao01-apostila
Mod06 licao01-apostila
Reinaldo Moraes
IBM WebSphere Portal
IBM WebSphere Portal
Edson Oliveira
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
Fabian Gehrke
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
michellobo
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Rodolfo Fadino Junior
Web Services
Web Services
Igor Gonalves
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
Norton Guimarães
Aula 05 - Java Script Básico
Aula 05 - Java Script Básico
Fabio Moura Pereira
Fundamentos de arquitetura Web
Fundamentos de arquitetura Web
Denis L Presciliano
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Rafael T. C. Soares (tuelho)
ASP.NET - Conceitos Básicos
ASP.NET - Conceitos Básicos
Leonardo Lourenço Silva
Aplicativo aula03
Aplicativo aula03
Cláudio Amaral
Web Sphere
Web Sphere
Fabricio Carvalho
Fundamentos do asp.net
Fundamentos do asp.net
leojr_0
Um pouco sobre APIs
Um pouco sobre APIs
Luiz Paulo dos Prazeres Júnior
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
Eric Silva
DotNet vs. Java
DotNet vs. Java
armeniocardoso
The twelve factor apps and openruko
The twelve factor apps and openruko
Éverton Ribeiro
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
Comunidade NetPonto
Asp.net core
Asp.net core
Tanato Cartaxo
Mais conteúdo relacionado
Semelhante a Construindo portlets para IBM WebSphere Portal – Parte 1
Mod06 licao01-apostila
Mod06 licao01-apostila
Reinaldo Moraes
IBM WebSphere Portal
IBM WebSphere Portal
Edson Oliveira
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
Fabian Gehrke
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
michellobo
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Rodolfo Fadino Junior
Web Services
Web Services
Igor Gonalves
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
Norton Guimarães
Aula 05 - Java Script Básico
Aula 05 - Java Script Básico
Fabio Moura Pereira
Fundamentos de arquitetura Web
Fundamentos de arquitetura Web
Denis L Presciliano
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Rafael T. C. Soares (tuelho)
ASP.NET - Conceitos Básicos
ASP.NET - Conceitos Básicos
Leonardo Lourenço Silva
Aplicativo aula03
Aplicativo aula03
Cláudio Amaral
Web Sphere
Web Sphere
Fabricio Carvalho
Fundamentos do asp.net
Fundamentos do asp.net
leojr_0
Um pouco sobre APIs
Um pouco sobre APIs
Luiz Paulo dos Prazeres Júnior
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
Eric Silva
DotNet vs. Java
DotNet vs. Java
armeniocardoso
The twelve factor apps and openruko
The twelve factor apps and openruko
Éverton Ribeiro
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
Comunidade NetPonto
Asp.net core
Asp.net core
Tanato Cartaxo
Semelhante a Construindo portlets para IBM WebSphere Portal – Parte 1
(20)
Mod06 licao01-apostila
Mod06 licao01-apostila
IBM WebSphere Portal
IBM WebSphere Portal
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
Web Services
Web Services
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
Aula 05 - Java Script Básico
Aula 05 - Java Script Básico
Fundamentos de arquitetura Web
Fundamentos de arquitetura Web
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
ASP.NET - Conceitos Básicos
ASP.NET - Conceitos Básicos
Aplicativo aula03
Aplicativo aula03
Web Sphere
Web Sphere
Fundamentos do asp.net
Fundamentos do asp.net
Um pouco sobre APIs
Um pouco sobre APIs
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
DotNet vs. Java
DotNet vs. Java
The twelve factor apps and openruko
The twelve factor apps and openruko
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
Asp.net core
Asp.net core
Construindo portlets para IBM WebSphere Portal – Parte 1
1.
Construindo Portlets para
IBM WebSphere Portal – Parte 1 Rodrigo Reis IT Specialist & Application Architect IBM Collaboration Solutions © 2013 IBM Corporation
2.
Agenda Introdução Parte 1: Portal
& Portlets Parte 2: Construindo Portlets para IBM WebSphere Portal Parte 3: Especificação JSR 286 Parte 4: Ambiente de Desenvolvimento 2 © 2013 IBM Corporation
3.
Introdução ● ● ● 3 Este workshop não
é de introdução a Java ou IBM WebSphere Portal Necessário conhecimento básico de Programação Java para Web (JSP, HTML, XML, JavaScript, Frameworks) O objetivo do workshop é introduzir ao desenvolvimento de portlets © 2013 IBM Corporation
4.
Parte 1: Portal
& Portlets 1878A 4 © 2013 IBM Corporation
5.
Definições O que é
um Portlet? "Um portlet é um aplicativo que fornece um conteúdo especifico (informação ou serviço) para ser incluido como parte de uma página de Portal." O que é Portal? "Um portal é um container que executa portlets e os disponibiliza com o ambiente de execução requerido." 5 © 2013 IBM Corporation
6.
Definições - Portal Para
entender o que é um portlet, primeiro é necessário entender o que é um portal: Portal é uma aplicação web que oferece personalização e agregação de conteúdos de diferentes fontes, aglomerando e distribuindo estas informações de forma direcionada a um publico alvo Um portal possui 3 funcionalidades básicas: ● ● Agregador de Conteúdo ● 6 Portlet Container Serviços Comuns © 2013 IBM Corporation
7.
Definições Portlet Container: o
portlet container é responsável por controlar o ciclo de vida de um portlet Agregador de Conteúdo: uma das principais tarefas de um portal é agregar conteúdo gerado por aplicações de diversos portlet Serviços Comuns: Um dos principais pontos fortes de um servidor de portal é o conjunto de serviços comuns que ela proporciona. Alguns serviços comuns que você pode encontrar na maioria das implementações de portais são: ● ● 7 Logon único: Permite ter acesso a todas as outras aplicações uma vez que você entrar no servidor do portal Personalização: Permitir ao usuário personalizar sua página, alterando cores, layout e decidindo quais portlets incluir na página © 2013 IBM Corporation
8.
Definições ● ● ● 8 No passado, com
o surgimento de um número crescente de portais corporativos, vários fabricantes criaram diferentes APIs para componentes do portal Esta variedade de interfaces incompatíveis geraram problemas para os fornecedores de aplicações Para solucionar estes problemas, foi criada a JSR (Java Specification Request) 168, uma especificação de Portlets, que nasceu para oferecer interoperabilidade entre portlets e portais © 2013 IBM Corporation
9.
Definições O propósito da
JSR 168 era: ● Definir o ambiente de execução, ou portlet container, para portlets ● Definir a API entre o portlet container e portlets ● ● Fornecer mecanismos para armazenar dados temporários e persistentes para portlets Fornecer um mecanismo que permite incluir servlets e JSP (JavaServer Pages) nos portlets ● Definir um pacote de portlets para permitir uma implantação fácil ● Permitir a portabilidade entre os portlets do portal ● 9 Executar portlets JSR 168 como portlets remotos usando o Web Services for Remote Portlets (WSRP) protocolo © 2013 IBM Corporation
10.
Definições ● Java Portlet 1.0
Specification (JSR 168) Liberada em: 27 de Outubro de 2003 ● Java Portlet 2.0 Specification (JSR 286) Liberada em: 03 de Março de 2008 ● Java Portlet Specification 3.0 (JSR 362) Em desenvolvimento Lider: Martin Scott Nicklous, IBM 10 © 2013 IBM Corporation
11.
Checkpoint NÃO é um
dos propósitos da especificação JSR168: A – Definir um pacote de portlets para permitir uma implantação fácil B – Permitir a portabilidade entre os portlets do portal C – Definir o modelo de segurança do portlet container D – Definir a API entre o portlet container e portlets E – Definir o ambiente de execução, ou portlet container, para portlets 11 © 2013 IBM Corporation
12.
Parte 2: Contruindo
Portlets para IBM WebSphere Portal 1878A 12 © 2013 IBM Corporation
13.
Arquitetura do WebSphere
Portal A arquitetura do ambiente de execução do WebSphere Portal possui as seguintes caracteristicas: ● ● ● É executado dentro de um web container do WebSphere Application Server chamado de WebSphere_Portal Possui seu próprio componente de transporte HTTP Possui 6 banco de dados de apoio que por padrão é instalado em Derby 13 © 2013 IBM Corporation
14.
Arquitetura do WebSphere
Portal Banco de dados do WebSphere Portal: ● ● ● ● ● ● 14 Release – Armazena configurações do WebSphere Portal Customization – Contém dados associados com cada usuário do portal, como por exemplo, preferências de portlet Community – Contém recursos que são modifcados em produção JCR – Armazena todo conteúdo do Web Content Management e Personalization Feedback – Armazena logs de utilização do site LikeMinds – Contém classificassões e dados sugestão para personalização © 2013 IBM Corporation
15.
Arquitetura do WebSphere
Portal Principais serviços do WebSphere Portal: ● ● ● ● ● 15 Model SPI – Fornece acesso leitura para todos WebSphere Portal Data Model PUMA – Gerência associação e atributos de usuários Credential Vault – Prover acesso seguro as credencias de usuário Tagging e Ratting – Novidade no Portal 8, fornece serviços de classificação e marcação de conteúdos Personalization – Disponibiliza mecanismos para personalização de conteúdos para usuários © 2013 IBM Corporation
16.
Visão Geral Web Experience
Suite Browser / Systems Out of the box features Theme / Portlets Custom Portlets Client Engine Markup (HTML) Custom Development REST SPI (Client Side) Model SPI WebDAV SPI Third Party IBM products Data (ATOM,binary…) Custom Development (Server Side – Theme, Extensions) 16 © 2013 IBM Corporation
17.
Portlets e Servlets ● Portlets
e Servlets são parecidos em alguns aspectos, mas sem nenhuma conexão direta ● Portlets são executados em um Portlet Container ● Portlet Container é uma extensão de um Servlet Container ● Portlet Application é uma extensão de uma Web Application web.xml + portlet.xml são os Deployment Descriptors ● Podemos ter Portlets e Servlets dentro da mesma aplicação web 17 © 2013 IBM Corporation
18.
Portlet Modes ● O Portal
monitora o modo do portlet ● Um portlet pode conter 3 modos padrões: ● ● Edit – Usuário personaliza o portlet ● ● View – Modo de exibição padrão Help – Exibe janela de ajuda Portais podem conter modos adicionais (muitos são sugeridos na especificação), o WebSphere Portal contem: ● ● 18 Edit Shared Settings – Configurações comuns a todos usuários Configure – Configurações administrativas © 2013 IBM Corporation
19.
Portlet Modes ● Portlets podem
modificar seu próprio modo de operação ● O acesso a cada modo depente das permissões do usuário ● ● Por exemplo, um usuário do tipo Privileged User tem acesso ao modo Edit mas não ao Edit Shared Settings O desenvolvedor deve implementar os Portlet Modes. As configurações ficam armazenadas no arquivo portlet.xml <supports> <mimetype>text/html</mimetype> <portletmode>view</portletmode> <portletmode>edit</portletmode> <portletmode>help</portletmode> </supports> 19 © 2013 IBM Corporation
20.
Portlet States ● Diferente de
aplicações web tradicionais, portlets utilizam apenas uma fração da página ● O estado da janela de cada portlet é controlado individualmente ● Os seguintes estados de janela estão disponiveis: ● ● Maximize – exibe apenas o portlet na janela ● 20 Minimize – exibe apenas o titulo da janela Restore – exibe o portlet no modo padrão © 2013 IBM Corporation
21.
Checkpoint Quais são os
Portlets Modes suportados pelo WebSphere Portal? A – View, Edit, Configure B – View, Edit, Help, Configure C – View, Edit, Help, Personalize D – View, Edit, Help, Configure, Edit Shared Settings 21 © 2013 IBM Corporation
22.
Checkpoint Qual das alternativas
a seguir é FALSA? A – Portlets podem modificar seu próprio modo de operação B – O desenvolvedor deve informar os modos de operação do portlet dentro do arquivo web.xml C – O desenvolvedor pode implementar novos Portlet States D – O desenvolvedor pode implementar novos Portlet Modes 22 © 2013 IBM Corporation
23.
public class HelloWorld
extends GenericPortlet { Criando um Portlet public void init (PortletConfig portletConfig) throws UnavailableException, PortletException { super.init(portletConfig); } Desenvolvendo ● public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException Parte 1: Código do Portlet { response.setContentType("text/html"); response.getWriter().println("Hello Portal World!</p>"); } } <?xml version="1.0" encoding="UTF-8"?> + <portlet-app ...> <portlet> <portlet-name>HelloWorld portlet name</portlet-name> <display-name>Hello World portlet (JSR)</display-name> ● <display-name xml:lang="en">Hello World portlet (JSR)</display-name> Part 2: Portlet descriptor <portlet-class>HelloWorld</portlet-class> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> </supports> <supported-locale>en</supported-locale> </portlet> </portlet-app> Empacotando & Publicando 23 WAR © 2013 IBM Corporation
24.
Criando um Portlet ● Estrutura
de um Portlet (arquivo WAR) ● ● Arquivos de classe Java ● Arquivos JSP ● O deployment descriptor, portlet.xml ● Arquivos JAR contendo qualquer biblioteca usada pelo porltet ● ● Arquivos WAR contém os seguintes artefatos: Arquivos Web (HTML, XML, XHTML, JavaScript, CSS, …) Um aplicativo de portlet pode conter um ou mais portlets 24 © 2013 IBM Corporation
25.
Laboratório 1: Criando
o primeito Portlet ● Criar um projeto de Portlet ● Implementar a lógica de negócios ● Fazer Deploy do portlet 25 © 2013 IBM Corporation
26.
Parte 3: Especificação
JSR 286 1878A 26 © 2013 IBM Corporation
27.
Introdução ao JSR
286 ● ● ● O IBM WebSphere Portal inclui um ambiente de execução que suporta Portlets desenvolvidos seguindo as especificações JSR 168 e JSR 286 A API JSR 168 define a maior parte dos objetos, sendo a base do JSR 286, que resolve limitações da especificação anterior Principais recursos da JSR 286: ● ● Portlet events Portlet filters que permitem adicionar mais lógica de negócio antes de processar as fases do ciclo de vida do portlet, como: render(), processAction(), processEvent(), serveResource() ● ● 27 Public Render parameters Resource Serving portlets © 2013 IBM Corporation
28.
Portlet Diagrama do Java
Portlet Specification, Version 2.0 28 © 2013 IBM Corporation
29.
Ciclo de vida
de um portlet Portal Iniciado Portlet init() Usuário solicita página ProcessAction(), render() [doView(), doEdit(), ...] Portal Retorno da página Portal Terminado 29 Portlet Portlet marckup Portlet destroy() © 2013 IBM Corporation
30.
Interface Portlet Cada portlet
deve implementar a interface de portlet, ou estender de uma classe que implementa essa interface. A interface de portlet é composta dos seguintes métodos: ● ● init(PortletConfig config) - para inicializar o portlet. - Este método é chamado apenas uma vez após instancia-lo. - Pode ser usado para criar objetos / recursos utilizados por ele. ProcessAction(ActionRequest request, ActionResponse response) para notificar o portlet que o usuário executou uma ação sobre este portlet. - Apenas uma ação por solicitação do cliente é disparada. - Em uma ação, um portlet pode emitir um redirecionamento, alterar seu modo de portlet ou estado da janela, alterar o seu estado persistente, ou os parâmetros de render. 30 © 2013 IBM Corporation
31.
Interface Portlet ● ● render(RenderRequest request,
RenderResponse response) para gerar a marcação. Para cada portlet na página atual, o método de renderização é chamado, e o portlet pode produzir marcação que pode depender do modo de portlet ou estado da janela, os parâmetros de renderização, atributos pedido, estado persistente, os dados da sessão, ou dados de back-end. destroy() - para indicar o fim do ciclo de vida do portlet. Este método permite liberar recursos e atualizar os dados persistentes que pertencem a este portlet. 31 © 2013 IBM Corporation
32.
Relacionamento entre classes
JSR286 32 © 2013 IBM Corporation
33.
Classe PortletConfig ● A classe
PortletConfig funciona de maneira similar a classe ServletConfig que utiliza os seguintes metódos comuns para conceder acesso a configuração do portlet: - getInitParameter() - getPortletName() - getResourceBundle() - getSupportedLocales() ● Exemplo de uso PortletConfig que carrega o ResourceBundle para a localidade atual do usuário: ResourceBundle portletBundle = null; portletBundle = getPortletConfig().getResourceBundle(request.getLocale()); 33 © 2013 IBM Corporation
34.
Classe PortletContext ● ● ● A classe
PortletContext também funciona de maneira similar a classe ServletContext e fornece acesso a informações do portlet container Existe um contexto por aplicativo de portlet e instância do servidor de portal Atributos armazenados no contexto são globais para todos usuários e componentes do aplicativo de portlet setAttribute() e getAttribute() ● Exemplo usando getRequestDispatcher() para iniciar um JSP PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/jsp/UserForm.jsp"); rd.include(request, response); 34 © 2013 IBM Corporation
35.
Classe PortletRequest A classe
PortletRequest usa as seguintes subinterfaces ● ● ● ● ActionRequest – passada dentro do método processAction() RenderRequest – passada dentro dos métodos doView() e doEdit() EventRequest – passada dentro do método processEvent() para portlets que utilizam eventos ResourceRequest – passada dentro do método serveResource() para portelts que fornecem recursos 35 © 2013 IBM Corporation
36.
Classe PortletRequest Dicas sobre
a utilização da classe ActionRequest: ● Por padrão atributos na ActionRequest não são repassados para para RenderRequest ● Quando a opção ActionScopedRequestAttributes está definida como true, atributos em ActionRequest são repassados para RenderRequest <containerruntimeoption> <name>javax.portlet.actionScopedRequestAttributes</name> <value>true</value> </containerruntimeoption> ● Coloque atributos que necessitam estar disponiveis em mais que um simples request na Session 36 © 2013 IBM Corporation
37.
Classe PortletResponse ● Cada fase
do cliclo de vida de um portlet possui uma implementação da classe PortletResponse ActionReponse, RenderResponse, EventResponse, Resource Response ● Métodos da classe ActionResponse - setPortletMode() - para adicionar parametros no RenderRequest - setPortletMode() - para alterar o modo de operação do portlet - setWindowState() - para mudar o estado da janela ● Métodos da classe RenderResponse - setNamespace() - para retornar o namespace do portlet - createActionUrl() e createRenderUrl() - para criar urls para o portlet 37 © 2013 IBM Corporation
38.
Classe PortletSession ● ● A classe
PortletSession fornece acesso rápido a objetos em nome do usuário Caracteristicas - Dados da sessão são especificos para cada usuário. Objetos em uma sessão estão disponiveis durante o ciclo de vida da sessão, tanto para um usuário e portlet especifico qaunto para um usuário e todos portlets dentro do aplicativo de portlet - Objetos são removidos quando o objeto não é mais necessário - Sessões são invalidas manualmente ou após certo tempo de inatividade 38 © 2013 IBM Corporation
39.
Classe PortletSession A classe
PortletSession define dois escopos para armazenamento de objetos: ● ● 39 AAPLICATION_SCOPE – Objetos armazenados estão disponiveis para todos portlets, servlets e jsp que pertencem ao mesmo aplicativo de portlet PORTLET_SCOPE – Objetos estão disponiveis para o portlet durante requests na mesma janela de portlet © 2013 IBM Corporation
40.
Classe PortletSession Usando portlet
sessions de forma eficiente: ● Armazene objetos na session quando: - O objeto precisa estar disponivel para um request subsequente - O objeto é compartilhado com multiplos portlets dentro da mesma aplicação ● ● 40 Remova objetos quando não são mais necessários Certifique-se de que todos objetos armazenados na session são serializable. © 2013 IBM Corporation
41.
Object Scoping A expectativa
de vida do objeto ou escopos Request scope - tem vida durante requisição atual ● Session scope - abrange os pedidos para o usuário conectado ● Application scope - aplica-se quando o aplicativo é carregado Dicas para lidar com objetos ● Coloque objetos no escopo apropriado para a aplicação ● Remova os objetos do escopo quando eles não são mais necessários ● Limitar o tamanho do objeto quando se trabalhar em sessão ● Objeto de sessão em um portal de cluster pode ser mantido em um banco de dados ● Se um objeto não é específico do usuário, armazenar no portletContext ● 41 © 2013 IBM Corporation
42.
Object Scoping Lazy Instantition ● ● É
uma tecnica para criação de objetos É vantajosa quando o uso do processador para recuperar os dados é maior que aquele associado com a manutenção dos objetos dentro de uma referência escopo local Passos para implementa o Lazy Instantition: ● Passo 1 - Crie o objeto no primeiro pedido ● Passo 2 - Realizar acesso ao banco ● Passo 3 – Faça Cache do objeto no escopo de portlet - Session scope - se o mesmo usuário acessa-lo - Application scope - para vários usuários 42 © 2013 IBM Corporation
43.
Checkpoint Como você compartilha
dados entre portlets de um aplicativo de portal? A – Armazena objetos dentro do Portlet Scope B – Armazena objetos dentro do Application Scope C – Usa Inter-Portlet Communication D – Alternativas B e C estão corretas 43 © 2013 IBM Corporation
44.
Laboratório 2: Trabalhando
com recursos do Portlet ● Trabalhar com recursos do portal ● Recuperar dados de um arquivo de propriedades ● Implementar uma prática sugerida para cache ● Implementar Lazy Instantiation 44 © 2013 IBM Corporation
45.
Compartilhando dados entre
Portlets ● Requisitos comuns em portlets: - Portlets precisam se comunicar uns com os outros para que uma ação em um portlet desencadeie uma resposta em outro portlet - Portlets precisam compartilhar e enviar dados para outro ● Vários métodos são utilizados para compartilhamento de dados entre portlets: - Alguns métodos são interativos, e alguns são passivos - Alguns métodos requerem que portlets pertencam ao mesmo aplicativo de portlet, e outros não exigem 45 © 2013 IBM Corporation
46.
Compartilhando dados entre
Portlets Você pode compartilhar dados entre portlets das seguintes formas: ● Compartilhar RenderParameters entre portlets: - Eles estão disponíveis para subscribing pelos aplicativos - Declare RenderParameters públicos no descritor de implementação do portlet (portlet.xml). ● Compartilhar dados sobre no PortletSession: - Adicionando atributos no APPLICATION_SCOPE 46 © 2013 IBM Corporation
47.
Compartilhando dados entre
Portlets ● Compartilhar dados usando eventos: - Especificação JSR 286 - Um portlet publica o evento - Um ou mais portlets processam o evento ● Compartilhe dados através de portlets cooperativos: - Somente aplicável à portlets JSR 168 - Um portlet atua como fonte - Um ou mais portlets agem como alvos 47 © 2013 IBM Corporation
48.
Novidades do JSR
286 – Render Parameters ● Shared RenderParameters: - Funcionam de forma semelhante a outros parâmetros que entram no request - Também pode ser chamados de Public RenderParameters ● ● Na especificação JSR 286, RenderParameters podem ser declarados públicos no portlet.xml para que possam ser acessados em outro portlet RenderParameters são strings: - Recupera-se da mesma forma como os campos de um formulário - IBM WebSphere Portal re-entregam RenderParameters através de uma atualização de janela ou a ação por outro portlet 48 © 2013 IBM Corporation
49.
Novidades do JSR
286 – Portlet Events ● ● ● ● Nova fase no Ciclo de Vida: Event Processing Events podem ser gerados durante a Action Phase ou Event Phase - não durante a Render Phase Event model é um modelo mediado flexível ● Um portlet publica um evento ● Um ou mais portlets processam o evento Ambos os Events publishes e os Events process devem ser portlets JSR 286 ● Portlets não precisam estar no mesmo aplicativo de portlet ● Forma versátil de compartilhar dados entre portlets 49 © 2013 IBM Corporation
50.
Novidades do JSR
286 – Portlet Events Interface EventPortlet ● Contém um método: void processEvent(EventRequest, eventResponse) ● ● O objeto EventRequest fornece carga do evento e outras informações típicas de portlet (modo, estado da janela, etc) Os eventos podem ser publicados através de métodos em ActionResponse ou EventResponse - setEvent() ou setEvents() - Várias chamadas para setEvent e setEvents são permitidas ● 50 A entrega e processamento de pedidos não é garantida © 2013 IBM Corporation
51.
Novidades do JSR
286 – Portlet Events ● ● ● ● 51 Eventos devem ser definidos no arquivo portlet.xml Após a definição do evento, cada portlet deve declarar quais os eventos que irá publicar ou receber Eventos definidos no Portal não precisam ser declarados no portlet.xml Nomeando um evento: - Deve-se usar o padrão W3C QName - Receiving events podem terminar com um caracter curinga * - Pode declarar default-event-namespace no portlet.xml e usar apenas nomes locais © 2013 IBM Corporation
52.
Novidades do JSR
286 – Portlet Events ● Suportando eventos no arquivo portlet.xml <portletapp xmlns:x="http://mycompany.com/portlet" xmlns:std="http://somestandardsbody.org/interopevents"> <portlet> <supportedprocessingevent> <qname>x:address.showForUpdate</qname> </supportedprocessingevent> <supportedpublishingevent> <qname>x:address.updated</qname> </supportedprocessingevent> </portlet> <eventdefinition> <qname>x:address.showForUpdate</qname> <alias>std:address</alias> <valuetype>com.mycompany.portlets.common.Address</valuetype> </eventdefinition> <eventdefinition> <qname>x:address.updated</qname> <alias>std:address</alias> <valuetype>com.mycompany.portlets.common.Address</valuetype> </eventdefinition> </portletapp> 52 © 2013 IBM Corporation
53.
Novidades do JSR
286 – Portlet Events ● Suportando eventos na classe Java public class MyPortlet extends GenericPortlet { public static String NAMESPACE = "http://mycompany.com/portlet"; @ProcessAction(name="address.updated") public void addressUpdated(ActionRequest request, ActionResponse response) { ... Address myAddress = ...; response.setEvent(new QName(NAMESPACE, "address.updated"), myAddress); } @ProcessEvent(name="address.showForUpdate") public void addressUpdated(EventRequest request, EventResponse response) { Address myAddress = (Address) request.getEvent(); ... } … } 53 © 2013 IBM Corporation
54.
Novidades do JSR
286 – Resource Serving ● Nova operação no Ciclo de Vida: serveResource() ● O método serveResource() é iniciado usando Resource URLs ● ● O container forcece um ResourceRequest e um ResourceResponse ao método serveResource() A chamada para o método serveResource() não é seguida por uma chamada a fase de renderização public class UserInfoPortlet extends GenericPortlet implements ResourceServingPortlet { ... public void serveResource (ResourceRequest request,ResourceResponse response) throws PortletException, IOException { ... 54 © 2013 IBM Corporation
55.
Novidades do JSR
286 – Resource Serving ● Resource Serving é um recurso fundamental para o desenvolvimento Ajax: - Permite iniciar um Resource serving portlet diretamente, ignorando IBM WebSphere Portal - Ajuda a servir os recursos e manter o acesso ao contexto do portlet e seus dados ● Portlets podem produzir conteúdo com - OutputStream - ResourceResponseWriter - Delegate com uma chamada RequestDispatcher 55 © 2013 IBM Corporation
56.
Checkpoint Na especificação JSR
286, portlets podem compartilhar dados através de: A – Render Parameters, Resource Serving, Cooperative Portlets B – Render Parameters, Resource Serving, Event Portlets C – Render Parameters, Event Portlets, PortletSession D – Render Parameters, Event Portlets, Cooperative Portlets 56 © 2013 IBM Corporation
57.
Laboratório 3: Trabalhando
com comunicação entre Portlets ● Ativar um portlet para publicar eventos ● Ativar um portlet para processar eventos ● Definir uma relação publish-process 57 © 2013 IBM Corporation
58.
Parte 4: Ambiente
de Desenvolvimento 1878A 58 © 2013 IBM Corporation
59.
Ambiente de Desenvolvimento Ferramentas
a serem consideradas: Eclipse ● IBM Rational Application Developer ● IBM Web Experience Factory ● Frameworks a serem considerados: JSF ● Spring ● Struts ● Dojo ● jQuery ● 59 © 2013 IBM Corporation
60.
Ferramentas: Eclipse ● IDE Open
source mais utilizada do mercado ● Vasto número de plugins ● Curva de aprendizado pequena ● Road map bem elaborado ● Alguns processos de automação ● Recursos de WYSIWYG limitados ● ● Falta de ambiente de desenvolvimento dedicado ao Portal (plugin para WP) Deployment manual no WebSphere Portal 60 © 2013 IBM Corporation
61.
Ferramentas: Rational Application
Developer ● Baseado em Open Source e padrões da indústria ● Excelente automação e geração automática de codigo ● Assistentes para criação de Portlets ● Componentes de UI facilmente integrados em portlets ● Fácil realizar testes locais com um Portal Test server ● Completamente integrado ao WAS & WebSphere Portal ● Integração com outros produtos IBM: WebSphere Portlet Factory ● Lotus Forms Designer ● Rational Automation Framework ● Rational Team Concert e muito mais... ● 61 © 2013 IBM Corporation
62.
Ferramentas: Web Experience
Factory ● ● ● ● ● Ferramenta de desenvolvimento baseada em modelos para criação de Portlets e aplicações Web Fácil de aprender, constroi aplicações complexas sem necessidade de escrever código Java Mais de 150 builders incluidos para acelerar o desenvolvimento Conhecimento de Java só é necessário para criação de novos builders Inclui builders para integração com backends (REST and WebServices, SQL...), soluções proprietárias (SAP, Oracle CRM, Peoplesoft), Camadas de Negócio e Apresentação, etc... 62 © 2013 IBM Corporation
63.
Ferramentas: RAD vs
WEF ● ● ● É comum ambas serem utilizadas dentro de uma organização para criação de portlets Rational Application Developer é voltada para desenvolvedores Java mais experientes Web Experience Factory é indicada para usuários com pouca ou nenhuma experiência em Java 63 © 2013 IBM Corporation
64.
Frameworks: Struts 2 ● Framework
Web desenvolvido sobre o padrão MVC ● Arquitetura Simples e fácil de estender ● Não é padrão da industria, mas chegou a ser o framework web mais utilizado no mercado ● Struts 2 é uma grande mudança, junção do Struts 1.x e WebWork ● O Struts 2 aceita plug-ins disponibilizados por terceiros ● Struts 2 inclui suporte Ajax ● Configurações baseadas em Anotações e XML 64 © 2013 IBM Corporation
65.
Frameworks: Spring MVC ● Spring
MVC é parte do Spring, que é muito mais abrangente ● Flexível e Leve ● ● ● Apesar de não ser padrão da instustria, é um framework bastante popular Integração com a maioria dos frameworks de apresentação como JSP & JSTL, XSLT, JSF, Velocity, FreeMarker, Tiles Configurações baseadas em anotações e XML 65 © 2013 IBM Corporation
66.
Frameworks: JavaServer Faces
(JSF) ● ● ● É mais do que um framework, é uma espeficifcação baseada em MVC Desenvolvimento WSYWIG Padrão de mercado e muitas bibliotecas de terceiros disponiveis (RichFaces, PrimeFaces, IceFaces, etc) ● Inclui suporte Ajax ● Facilidade para criação de componentes ● JSF v2.0 é uma grande atualização ● Suportado pelo IBM Rational Application Developer: ● 66 RAD v8.5 e WP v8.0 suportam JSF v2.0 © 2013 IBM Corporation
67.
Frameworks: jQuery ● Framework JavaScript
rápido e fácil de usar ● Baseado em plugins (centenas disponiveis) ● Suporte Ajax incluso ● Documentação ampla e de boa qualidade ● Comunidade grande e participativa 67 © 2013 IBM Corporation
68.
Frameworks: Dojo Toolkit ● Poderoso
framework JavaScript, Open Source, rápido e modular ● Suporte Ajax incluso ● Dojo fornece um grande conjunto de wigets (Dijit) ● Documentação ampla e de boa qualidade ● Comunidade grande e participativa ● Suporte incluso no IBM Rational Application Developer: RAD v8.5 e WP v8.0 suportam Dojo v1.7 68 © 2013 IBM Corporation
69.
Avaliando Frameworks: Metricas
de comparação ● Facilidade de uso ● Facilidade de manutenção ● Performance ● Escalabilidade ● Segurança ● Recursos embutidos ● Integração com IDEs ● Comunidade e documentação ● Futuro da tecnologia e roadmap* ● Suporte a longo prazo / Dependencia de Fornecedor 69 © 2013 IBM Corporation
70.
Avaliando Frameworks: Como
escolher? 70 © 2013 IBM Corporation
71.
Avaliando Frameworks: Como
escolher? ● Evite utilizar estudos ou comparações prontas ● Coloque sua aplicação em perspectiva ● Selecione uma pequena lista de frameworks ● Avalie cada um e conduza testes ● Documente prós e contras de cada um 71 © 2013 IBM Corporation
72.
Recursos disponíveis para
desenvolvedores ● Página de documentação do produto ● Wiki do WebSphere Portal ● Forum do WebSphere Portal no developerWorks ● IBM RedBooks ● IBM Lotus GreenHouse 72 © 2013 IBM Corporation
73.
Para saber mais... WebSphere
Portal and IBM Web Content Manager Information Center http://www.ibm.com/developerworks/websphere/zones/portal/proddoc.html WebSphere Portal and Web Content Manager Business Solutions Catalog https://greenhouse.lotus.com/catalog/ WebSphere Portal developerWorks forum http://www.ibm.com/developerworks/forums/forum.jspa?forumID=168 The WebSphere Portal wiki http://www-10.lotus.com/ldd/portalwiki.nsf/xpViewCategories.xsp?lookupNa me=IBM%20WebSphere%20Portal%208%20Product%20Documentation IBM Redbooks® publications http://www.redbooks.ibm.com/portals/websphere © 2013 IBM Corporation
74.
Obrigado!!! Rodrigo Reis rodrigoareis@br.ibm.com IT Specialist
& Application Architect IBM Software Services for Collaboration © 2013 IBM Corporation
75.
© IBM Corporation
2013. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software . References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. ries in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. All references to OpenFinancial, Greenwell and Open Bier refer to a fictitious company and are used for illustration purposes only. © 2013 IBM Corporation
Baixar agora