Este blog mostra coisas interesantes que passam pelo olhar de um arquiteto de softwares IBM que vê muita coisa interessante e agora está pronto para compartilhar.
quarta-feira, 30 de dezembro de 2009
Mais exemplos de como implementar AJAX no Portal
Encerraremos 2009 com um post de AJAX com WPF.
Otimo artigo que mostra como implementar recursos de AJAX no WebSphere Portal sem a necessidade de codificação.
Para mais informações clique aqui.
terça-feira, 20 de outubro de 2009
Site em Portugues com Webcast de Lotus
Esta disponível no site do developerworks um lugar para vc. consultar e baixar informações e webcasts de Lotus em Portugues.
Maiores informações em http://www.ibm.com/developerworks/br/lotus/
segunda-feira, 19 de outubro de 2009
Novidades do Portal Excelence Conference 2009
Quero detalhar algumas das novidades nos proximos posts, mas já aproveito para fazer aquele resumão dos higlights de Portal e WCM.
A IBM vai lançar o Portal 6.1.5 e junto com ele a diretriz de tonar o produto mais fácil de utilizar reduzindo desta forma o TCO. Dado o direcionamento estratégico vamos a parte técnica.
O Portal está disponível para as versões 6.1 e 7 do WebSphere Application Server. Para a versão 7 está disponível o WSRP 2.0 e JSR 286 (full implementation) que permite entre outras coisas a troca de mensagens entre portets WSRP. No catálogo de portlets há disponível o portlet que permite troca de mensagens com aplicações PHP em WSRP. Esta alteração permite a troca de mensagens com os webparts do Microsoft Share Point.
Na parte de Mashups o Portal implementa o container de Mashups do Mashup Center 2.0. Este container permite que você execute formulários do Lotus Forms Turbo dentro do Lotus Mashup de forma nativa. Também é possível gerar um mashup a partir dos dados coletados do Forms Turbo e consumir e tratar os dados por meio de chamadas JSON. Na prática isso possibilita uma forma fácil de consumir os dados coletados do formulário conhecendo 0% da api's de Forms.
Na parte de tema agora é possível gerar um thema no portal com tableless. O thema do portal foi customizado para gerar customizações usando JSTL e Expression Language. Isso diminuiu sensivelmente a quantidade de código gerado no JSP do Portal.
Na parte de menu é possível integrar a navegação dos menus de WCM com a navegação de menus no portal. Toda a parte de manutenção de menus foi recriada usando ajax para melhorar a forma de criação de itens no menu. Isso faz com que na própria página você consiga alterar as navegações incluindo sub-itens com drag and drop. Essa parte ficou ótima.
Na parte de Page Builder você pode incluir novos portlets de maneira mais intuitiva. O novo Page Builder permite redefinir colunas e cores das páginas.
Na parte de análise de navegação de páginas no portal há integração com o Coremetrics e webtrends por meio de injeção de código javascript no tema. Eu vi o exemplo com o Webtrends onde era possível saber quem está logando e quais os portlets e páginas que estavam sendo acessados.
Na parte de segurança uma mudança importante foi a aderência do Portal com TAI e TAI++. Para colocar de forma prática, esta integração permite integrar certificados digitais sem a necessidade de desenvolver uma CUR (Custom User Registry). O Uso de TAI++ limpou bastante as customizações de autenticação necessárias para o Portal.
Ainda sobre segurança o portal incluiu um conceito chamado impersonificação que permite mudar o Token de autenticação do portal via programação. Com isso eu posso reescrever o Principal gerado pelo LTPA Token.
Vamos ao WCM.
A primeira mudança foi que agora o portlet de WCM está no padrão JSR286 permitindo a inclusão de comentários, blogs e wikis no template de conteúdo. Outro recurso importante foi o WCM consumir recursos de CMS (Content Management System) através de RSS e publicar o resultado via conteúdo.
Houve melhorias no Inlide editing do WCM permitindo edição em popup e como página web modal. Este recurso ficou muito bonito e ótimo para ser utilizado pelos usuários.
Outro recurso é o Document Picker do WM quer permite você criar conteúdos referenciando links de documentos obtidos diretamente do seu ECM. No syndication foi disponibilizado um portlet que apresenta quais conteúdos tiveram problemas no syndication. Relatório muito útil para a tomada de ações.
Agora o WCM suporta WebDAV. Na prática isso faz com que você consiga fazer download ou atualizados componentes no WCM com uma ferramenta externa cmo Adobe Dreamweaver.
Qualquer ferramenta que suporte WebDAV pode navegar nos metadados e menus do WCM.
Para finalizar gostaria de destacar uma apresentação de Portal com Flex. A direção do Portal em RIA é trabalhar com Doko e javscript, entretando houve uma preocupação de não excluir o Flex como Front End. A equipe do laboratório apresentou o thema 100% em Flex. Programadores Flex podem usar e abusar dos recursos do Portal.
Vou tentar conseguir o vídeo desta demo e colocar neste blog.
terça-feira, 29 de setembro de 2009
Webcast gratuito de Portal
O objetivo deste call é compartilhar as experiências de melhores práticas com tunning de portal e explicar alguns dos parâmetros mais importantes na configuração do portal. Serão discutidos métodos para coletar dados e como estebelecer um painel comparativo de benchmarking antes e após o tunning.
Palestrante: Alex Coqueiro
Como participar:
Você terá que ligar para um dos números locais abaixo dependendo de sua região.
Senha de participante: 725566
Para ver a apresentação:
Acesse: http://www.webdialogs.com/join/?schedid=8422658
Conference ID: 8422658
domingo, 13 de setembro de 2009
Wizard Pattern no Portlet Factory
Este é um recurso de grande potencial para a criação de componentes pré-desenvolvidos de software que pode ser composto com artefatos mais específicos do seu sistema
No developerworks saiu um artigo muito bom sobre a construção de wizard pattern. Para maiores informações clique aqui.
sexta-feira, 11 de setembro de 2009
Casamento do Portal com tecnologia Web2
quarta-feira, 26 de agosto de 2009
Autenticação do Portal com o Desktop do Windows
Na versão 6.1 do Portal o SPNego (componente presente no TAM), funciona como um TAI (trust association interceptor). Desta forma você consegue configurar o portal sem a necessidade de utilizar um software externo de autenticação para estabelecer uma comunicação kerberos com o IIS (Internet Information Server). O módulo kerberos que está no IIS consegue obter um token de confiança entre o Microsoft AD e o Windows.
Para fazer isso a configuração é bem simples. Abaixo segue um passo-a-passo.
1) Enabling and configuring the SPNEGO TAI
Enabling :
Perform the following steps to enable the Simple and Protected GSS-API Negotiation Mechanism trustassociation interceptor:
1. Log on to the WebSphere Application Server administrative console.
2. Click Security > Secure administration, applications, and infrastructure.
3. Click Web security and then click Trust association.
4. Ensure that the Enable trust association checkbox is checked and then click Interceptors.
5. Click New and then type com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl in theInterceptor class name text field.
6. Click OK and then click the Save link to save changes to the master configuration.
Configuring:
1.Log on to the WebSphere Application Server administrative console.
2.Click Security > Secure administration, applications, and infrastructure.
3.Click Web security and then click Trust association.
4.Ensure that the Enable trust association checkbox is checked and then click Interceptors.
5.Click com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl
6.Click Custom properties
7.Click New
8.Name : com.ibm.ws.security.spnego.SPN1.hostName
9.Value : portal61.ibdemo.com
10.Click Save
11.Click new to create a new property :
12.Name : com.ibm.ws.security.spnego.SPN1.filterClass
13.Value : com.ibm.ws.security.spnego.HTTPHeaderFilter
14.Click Save
15.You might have properties in the Custom Properties list as below :
Name = Value
com.ibm.ws.security.spnego.SPN1.hostName = portal61.ibdemo.com
com.ibm.ws.security.spnego.SPN1.filterClass = com.ibm.ws.security.spnego.HTTPHeaderFilter
quinta-feira, 20 de agosto de 2009
Dica: Performance em buscar conteúdos no WCM
Apesar desse problema ter sido bem reduzido a partir da versão 6.1, para quem ainda está na 6.0 vai uma dica: Usar o Menu Component, se possível, para buscar os conteúdos que você precisa.
Quando usamos o Menu Component do WCM ao invés do searchContent(), nota-se um ganho imenso de performance, já que o Menu Component é gerenciado internamente para cachear os resultados e fazer o melhor método de acesso.
Para quem usa Portal 6.0:
A dica é escrever um XML como saída do Menu Component e os valores que você vai precisar exibir, já que não é possível pegar o conteúdo da iteração corrente no menu.
Ex:
Cabeçalho:
No WPF você converte o resultado do componente usando uma classe LJO e XmlUtil.parseXml(workspace.render(rc, menuComponent));
Para quem usa Portal 6.1:
Se precisar mesmo usar o WPF, faça como no exemplo acima, porém se puder resolver seu problema com um JSP incluído no resultado do menu, use o método renderingContext.getCurrentResultId();
;)
quarta-feira, 19 de agosto de 2009
Limitações no uso de Ajax em portlets
Andei implementando essa funcionalidade esses dias, e notei algumas limitações importantes.
1. Toda requisição Ajax é delegada a um Servlet dentro da sua aplicação de portlet, e assim, você não possui o contexto de Portal. Ou seja, nem pense em recuperar o PortletRequest ou PortletResponse.
2. O contexto de segurança também não é passado, fiz alguns testes tentando recuperar o UserPrincipal da requisição, e o mesmo sempre retorna nulo. Conversei com o suporte da IBM e me informaram que isso não seria mesmo possível, NA VERSÃO 6.0, pois na versão 6.1 (Spec 286) o contexto do portlet é mantido através do Resource Serving.
Do resto, achei expetacular a facilidade de se implementar chamadas Ajax com o WebSphere Portlet Factory. Sem uma linha de código, consegui trazer algumas aplicações de portlet para o mundo Web 2.
Mais informações:
http://www.ibm.com/developerworks/websphere/library/techarticles/0711_cooke/0711_cooke.html
http://www-10.lotus.com/ldd/pfwiki.nsf/dx/learning-websphere-portlet-factory
terça-feira, 7 de julho de 2009
Lançamento do Webphere Mobile
Este bundle contem o WebSphere Mobile Portal Enable na versão 6.1. Ele vem com suporte ao WebSphere Portal 6.1 permitindo disponibilizar conteúdo móvel para o Websphere Portal.
Para detalhes sobre o produto clique aqui.
segunda-feira, 6 de julho de 2009
Federação de bases de autenticação no WebSphere Portal
Clique aqui para ver os procedimentos de como configurar este recurso.
quarta-feira, 1 de julho de 2009
WCM gerando conteúdo para smarthphones
Em termos práticos, os conteúdos gerados no WCM poderão ser disponibilizado em diversos dispositivos como smartphones, celulares 2g, tablets entre outros.
Link com a documentação explicativa.
terça-feira, 30 de junho de 2009
APIs de Segurança no WebSphere Portal 6.1
O artigo descreve o funcionamento do Login Portlet Service fazendo uma comparação entre o serviço do WebSphere Portal 6.0 e 6.1, além disso, traz um exemplo de como utilizar o recurso do remember me.
Por último, fala sobre alguns filtros que podem ser utilizados com o serviços de login/logout e session timeout/session validation.
Vale a pena conferir!!!
http://www.ibm.com/developerworks/websphere/library/techarticles/0905_buchwald/0905_buchwald.html
quinta-feira, 25 de junho de 2009
Websphere Portal disponivel na Amazon
Quer saber mais sobre o assunto.....
Clique aqui e confira voce mesmo.
quarta-feira, 10 de junho de 2009
Mashup Center 1.1 - Primeiros testes
Na instalação a primeira boa impressão. É muito fácil, next > next > finish e ele instala na sua máquina o Infhosphere mashup Hub (responsável por gerar feeds) e o Lotus Mashups (responsável por apresentar estes feeds em um formato de apresentação).
Este produto premite você criar feeds que acessam banco de dados, informações do Domino ou mesmo planilhas Excel em segundos e disponibilizá-lo na Web. Vc. ainda pode apresentar este feed no WebSphere Portal ou em qualquer site que vc. queira.
Se você gostou da idéia que tal dar uma olhada neste vídeo para ver do que o Mashup Center é capaz.
quarta-feira, 20 de maio de 2009
Funcionamento de um processo de Single Sign On no Portal
O LTPA (Lightweight Third-Party Authentication)é o mecanismo baseado em um token de sessão criptografado, que estabelece uma relação de confiança entre servidores com arquiteturas diferentes, como por exemplo WebSphere Portal e Domino.
Para exemplificar mais sobre o assunto eu trago um trabalho preparado pelo meu amigo Marcelo Savio bastante interessante e que eu acredito que possa ajudar.
1 - Como o Portal da IBM (WebSphere Portal) faz SSO com o Domino, para entendimento geral de como funciona o mecanismo.
http://www.ibm.com/developerworks/websphere/zones/portal/proddoc/dw-w-sso-portal-domino/
2 - Informações sobre configuração de LTPA no Domino:
2.1 Importing the WebSphere LTPA key into Lotus Domino
http://publib.boulder.ibm.com/infocenter/lqkrhelp/v8r0/topic/com.ibm.lotus.quickr.admin.wp.doc/collab/i_domi_t_sv_dom_all_sso_key_imp.html
2.2 - Observação sobe o mapeamento de nomes
http://www-01.ibm.com/support/docview.wss?rs=463&uid=swg21214269
2.3 - Observações gerais sobre SSO
http://www-01.ibm.com/support/docview.wss?uid=swg21216978
Sites não-IBM
3 - Implementação de suporte a LTPA no Apache Tomcat (com código)
http://www.automatedlogic.com/domblog.nsf/dx/DominoTomcatSSOIntegration
4 - Blogs independentes que exploram o assunto (alguns com código)
4.1 - http://blogs.nil.com/jeds/2009/04/04/ltpa-token/
4.2 - http://offbytwo.github.com/2007/08/21/working-with-ltpa.html
4.3 - http://vivekagarwal.wordpress.com/2008/07/15/need-to-decode-webspheredomino-ltpa-token-for-sso/
terça-feira, 19 de maio de 2009
Autoria de Conteúdos WCM com Ephox EditLive!
A boa notícia é que a possibilidade de customização desse editor é nativa do produto, e quem viu bem essa oportunidade e se deu bem é uma empresa chamada Ephox, que desenvolveu um editor Rich Text avaçado para integração com o IBM Web Content Management em todas as suas versões.
Conforme anunciado no Lotusphere 2009, esse editor agora vem nativo nas versões 6.1+ do ILWCM, mas você pode baixar uma versão trial no próprio site da Ephox para as outras versões do produto.
A instalação é muito simples, ao fazer o download, é necessário apenas:
1. Editar o build.properties com os parâmetros de sua instalação.
2. Executar o install.sh|bat
3. Indicar, nas configurações do portlet de autoria, o arquivo EditLiveJavaEditor.jsp
Demo do produto:
Mais informações em:
http://www.ephox.com/products/editlive/
quinta-feira, 14 de maio de 2009
Gerenciar conteúdo Web com Lotus Web Content Management
Desta forma nada mais justo que um blog de portal dedicar uma parte do seu tempo neste segmento. O produto da IBM responsável por este gerenciamento é o Lotus Web Content Management (WCM).
O WCM ajuda a simplificar o processo de gerenciamento de conteúdo da Web administrando sites de Internet, intranet, extranet e portal. Ele permite que qualquer usuário crie rapidamente Web sites sem a programação de html, de forma que o conteúdo possa ser rapidamente canalizado nos sites.
Além disso, o WCM ajuda as empresas a gerenciar o ciclo de vida do conteúdo com um processo de aprovação, atualizando informações rapidamente. A versão deste produto acompanha a versão do WebSphere Portal e atualmente ele está disponível na versão 6.1.
Abaixo referencio uma apresentação bem completa do produto focando nas funcionalidades mais novas.
segunda-feira, 11 de maio de 2009
O que ocorre é que em um portal não são geradas URL's para Portlets e sim para PÁGINAS (API IBM ou JSR168). Existem algumas recursos para contornar este problema, umas passam por utilizar WSRP ou Click to Action (C2A), mas se ainda é necessário utilizar o recurso de URL's vejam abaixo alguns links que já me ajudaram a resolver este tipo de problema em alguns projetos.
How to create a link to target the action of a struts portlet
Portal 6.0 Advanced URL Generation Helper classes
How to create a link to a portlet (Standard API) that passes parameters to that portlet
Creating a link from a servlet to a page in a virtual Portal
quarta-feira, 22 de abril de 2009
Usando BI e relatório no Portal
Para integrá-las ao Portal há um wiki bem interessante que demonstra isso.
http://wiki.eclipse.org/Portlet_Example_(BIRT)_2.1
quarta-feira, 1 de abril de 2009
Video do Lotus Expeditor na IBM
Me orgulhei muito disso. Conquista pessoal.
Integrando o Lotus Forms no WebSphere Portal
O WPF tem um builder chamado Lotus Forms Embed onde você pode definir qual o formulário que será apresentado. A informação do formulário fica na propriedade Form Source. Nesta propriedade você pode definir a origem do formulário como InputStream sendo lido pelo Builder Variable retornando um object ou pelo Builder Linked Java Object no caso de manipulação dinâmica do xml (XFDL) do Lotus Forms.
O WebSphere Portal irá apresentar a página conforme figura abaixo:
sexta-feira, 20 de março de 2009
Escrevendo Código Java no Portlet Factory
Entretanto, há momentos em que você precisa escrever código Java para executar tarefas específicas que o ambiente gráfico não propicia e para estes casos você tem duas opções de builders. São eles:
- Linked Java Object (Você criar uma classe Java que pode ser ligada a qualquer builder)
- Method (Você criar um método Java que pode ser ligada a qualquer builder).
De posse deste objeto você pode manipular os objetos usados na portlet API. No exemplo abaixo eu mostro como setar valores no portlet preferences via API manipulando o portlet request.
String codCliente = webAppAccess.getVariables().getString("codigoCliente");
PortletRequest portletRequest = (PortletRequest) webAppAccess.getHttpServletRequest().getAttribute(Constants.PORTLET_REQUEST);
PortletPreferences prefs = portletRequest.getPreferences();
prefs.setValue("codigoCliente", codCliente);
prefs.store();
No próximo exemplo eu mostro como recuperar estes mesmos valores.
PortletRequest portletRequest = (PortletRequest) webAppAccess.getHttpServletRequest().getAttribute(Constants.PORTLET_REQUEST);
PortletPreferences prefs = portletRequest.getPreferences();
String codCliente = prefs.getValue("codigoCliente","");
webAppAccess.getVariables().setString("codCliente", codCliente);
Para finalizar gostaria de agradecer o Thiago Moretti por ter trabalhado comigo no entendimento desta solução.
segunda-feira, 2 de março de 2009
Estratégia IBM para mobilidade
Para esclarecer as dúvidas eu trago uma apresentação bem compacta que fala sobre os produtos que a IBM comercializa nesta linha. Se tiver dúvidas e queiram mais informações é só me procurar e mostro estes aplicativos no meu próprio celular.
terça-feira, 27 de janeiro de 2009
Desenvolvendo Wires com Portlet Factory
quarta-feira, 21 de janeiro de 2009
Mecanismo de Persistência ideal
Abaixo vou manifestar as minhas opiniões.
Caso você possa e queira deixar o controle da transação por responsabilidade do portal, voce pode usar o WebSphere Portlet Factory utilizando o SQL Call. Ele usa chamadas JDBC e no geral possui um bom tempo de resposta para operações de CRUD.
Entendo que há casos em que vc. precisa trabalhar com a granularidade de transações no banco de dados e até mesmo compartilhar o desenvolvimento de uma classe de persistencia com outros projetos que não necessariamente utilizem a plataforma de portal.
Para estes casos onde o desenvolvimento parece ser a melhor opção eu recomendo o uso de JPA utilizando anotações. Agora o problema é saber qual JPA Provider é mais adequado ao Portal. Posso adiantar que o melhor JPA Persitence Provider pode variar em função da sua experiencia, caracteristica da sua aplicação ou quantidade de registros.
Aqui vai um link com uma comparação bem interessantes entre alguns dos principais JPA de mercado.