quarta-feira, 30 de dezembro de 2009

Mais exemplos de como implementar AJAX no Portal

Feliz 2010 para os meus leitores com muita paz e alegria.

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

Pessoal,

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

Encerrou mais um Portal Excelence Conference e como resultado há um caminhão de novidades e coisas para estudar e aprender. No geral o evento foi excelente.

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 de Portal tunning

Webcast gratuito de Portal

Não perca a oportunidade de participar de mais um WEBCAST Lotus em Português dia 29/09 ás 16:00

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

O desenvolvimento de portlets com WebSphere Portlet Factory possui grande produtividade e isto não é novidade. Entretanto um forma de encapsular ainda mais os componentes e aumentar a produtivade auxiliando o desenvolvimento no modelo fabril de software é usar o wizard pattern do WPF.

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

Sem dúvida alguma a tecnologia de Web2.0 vem influenciando no modelo de trabalho dos Portais. Abaixo segue uma apresentação que mostra qual a relação entre as tecnologias de Web 2.0 e o WebSphere Portal.

quarta-feira, 26 de agosto de 2009

Autenticação do Portal com o Desktop do Windows

Este tema já foi explorado neste blog para a versão 6.0 do Portal. No post de hoje eu gostaria de explorar esta funcionalidade no Portal 6.1.

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

Muitas vezes os usuários pedem alguns layouts de conteúdos WCM bem complexos, e uma coisa é fato: O WCM tem algumas limitações na forma de exibir seus conteúdos. Uma das alternativas é usar a API do WCM para trazer seus conteúdos e apresentar da forma que quiser, já que assim estará trabalhando num JSP. Eis que vem um probleminha chato: Performance.

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: [resultado]
Cada resultado: [conteudo][nome][placeholder...][url][placeholder...][/url]
Rodapé: [/resultado]

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

Não tem nada mais eficiente hoje em dia do que atender as requisições dos usuários em uma chamada Ajax, principalmente em Portais, onde as vezes o conteúdo requisitado é apenas de um pequeno portlet dentre uma página cheia deles. Para isso, o WebSphere Portlet Factory provê alguns builders para trabalhar com Ajax, e a famosa seção "Post-action behavior" nos builders que o suportam.
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

A IBM lançou o IBM Websphere Mobile Portal Accelerator 6.1.

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

Um dos recursos interessantes do WebSphere Portal é o Federation. Este recurso permite que você configure múltiplos repositórios de autenticação em uma mesma instância de 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

Muito eu tenho falado e ouvido sobre conteúdo para dispositivos móveis e hoje encontrei uma documentação ótima que ensina como mostrar conteúdos de WCM no WebSphere Mobile Portal Enable.

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

Essa semana saiu uma artigo muito útil para quem desenvolve aplicações com WebSphere Portal.
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

Isso mesmo, este post nao esta errado. Ha uma versao do Websphere Portal na Amazon para desenvolvedores.

Quer saber mais sobre o assunto.....

Clique aqui e confira voce mesmo.

quarta-feira, 10 de junho de 2009

Como integrar o Mashup Center e o WebSphere Portal

PDF com explicações bem legais de como integrar estes dois produtos.

Faça o download aqui.

Mashup Center 1.1 - Primeiros testes

Na semana passada fiz um curso de Mashup Center e achei a proposta do produto muito interessante. Eu o conhecia via apresentações ou pequenas demos, mas agora eu tive a oportunidade de instalar na minha máquina e ver como realmente funciona.

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 SSO (single sign on) é um ponto chave na integração de serviços heterogeneos de um Portal corporativo. Boa parte das ferramentas da IBM baseiam-se em LTPA Token.

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!

Durante a implementação de projetos com ILWCM, percebo que é comum as pessoas reclamarem do seu editor Rich Text nativo do WCM. Devemos reconhecer que ele não é dos melhores.
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

Durante muitos destes anos focando em portais de integração, venho percebendo uma importância cada vez maior do processo de publicação de conteúdo dentro do contexto de portal. Muitas vezes é a publicação de conteúdo que norteia toda a navegação do portal onde aspectos de integração de aplicações estão engajados.

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

Um desafio que enfrentamos no desenvolvimento de Portais (considerando aqui Portal = WebSphere Portal) é a geração de URL's para passar parâmetros ou mesmo para criar links amigáveis, já que as páginas do portal não são geradas de forma amigável. Este problema advém, na minha opinião, de como as coisas são feitas no mundo das aplicações web tradicionais (tradicional = sem portal) onde é simples endereçar, através de URL, um servlet ou chamar um componente, passar os parâmetros requeridos e obter o resultado.
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

O Business Intelligence and Reporting Tools (BIRT) é um projeto open source que provê relatórios e capacidades de BI (business intelligence) para aplicações web baseado na Java. BIRT é um projeto da Eclipse Foundation bem popular.

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

É com grande alegria que escrevo este Post. Há 2 anos atrás escrevi um redbook de Lotus Expeditor e junto com o redbook eu trabalhei no desenvolvimento de uma aplicação demo. Fui informado que esta demo foi disponibilizada em formato de vídeo para a IBM no site de vendas.

Me orgulhei muito disso. Conquista pessoal.

Integrando o Lotus Forms no WebSphere Portal

O Lotus Forms é um produto extremamente poderoso para a montagem de eForms agregando funcionalidades como assinatura digital, impressão em modo pixel perfect, armazenamento de estados, ente outros. Entretanto muitas vezes é necessário fazer com que o formulário possa fazer parte de uma página do WebSphere Portal. Para isto uma das possibilidades é usar o WebSphere Portlet Factory 6.1 (WPF).

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

Conforme visto em post anteriores, o WebSphere Portlet Factory (WPF) é um ambiente de desenvolvimento rápido baseado na parametrização de componentes.

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).
Tanto na classe como no método é necessário interagir com os objetos que foram criados pelo portlet. Para recuperar os estados destes objetos você pode utilizar a classe webAppAccess do WPF.

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

A IBM vem trabalhando de forma muito forte para prover soluções de mobilidade que atenda a demanda crescente dos clientes.

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

Abaixo um vídeo de como criar Wires utilizando o Portlet Factory

quarta-feira, 21 de janeiro de 2009

Mecanismo de Persistência ideal

Nas minhas andanças pelos clientes, muitos me questionam sobre o 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.