terça-feira, 13 de novembro de 2007

Desenvolvimento de aplicações em Lotus Notes & Domino 8


No Lotus Collaboration Summit, foram apresentadas as novidades para desenvolvimento de aplicações em Lotus Domino e Lotus Notes R8. Neste post vou estar fazer um resumo do que foi apresentado. O objetivo é demonstrar um pouco das funcionalidades que podem ser utilizadas com mais freqüência pelos desenvolvedores. Existe uma parte sobre composite applications que estarei tratando em um outro post, juntamente com a criação de plugins para o Lotus Notes Client. O objetivo aqui é falar sobre Web Services, Bases Relacionais e Aplicações para Web.

Web Services

Na versão R8 você pode utilizar o Lotus Domino como um provider ou um consumer para web servicer, ou seja, você consegue ler dados do Lotus Domino e também fazer o Lotus Domino pegar informações de outras aplicações, inclusive .NET.

Os Web Services são criados utilizando o Lotus Domino Designer e você poderá escrever em LotusScript ou Java. Na versão R8 foram feitos alguns melhoramentos:
  • Preview no browser utilizando databases (NSF) locais;
  • Expansão de suporte a bibliotecas de script;
  • Suporte a array;
  • Suporte a mapeamento WSDL para o elemento XML Schema <any>;
  • Novas propriedades para LotusScript WS_FAULT class;
  • Manipulação de Time Zone com novos métodos em LSXSD.LSS.


Figura 01 - Web Service Provider pelo Lotus Domino


Quando trabalhamos para consumir um web service, podemos utilizar tanto o Domino quanto o Notes para isso. As principais funcionalidades são:
  • Localizar WSDL do web service provider;
  • Criar novas bibliotecas de script via Lotus Domino Designer;
  • Selecionar o botão 'Import WSDL';
  • Salvar e nomear uma biblioteca de script;
  • Utilizar bibliotecas de script de outros NSF.


Figura 02 - Web Service Consumer pelo Lotus Domino ou Notes


Utilizando uma base de dados relacional

Você pode utilizar o DB2 como alternativa para o NSF (Lotus Notes Storage Facility). Existe um artigo no developerworks que faz um teste de performance do DB2 como storage para e-mail e sua performance ficou muito parecida com a do NSF, por tanto, em minha opnião o DB2 é uma opção (IBM Lotus Domino with IBM DB2 storage for Lotus Notes mail users). Na versão R8 é importante ressaltar que o suporte ao DB2 está presente nas seguintes plataformas: Microsoft Windows, IBM AIX e Linux. Algumas das funcionalidades são:

DB2 Access View

Exposição de dados selecionados do Lotus Domino para uso relacional através do software do DB2
  • Em adição estão campos especiais, tais como DB, valores do server



Figura 03 - DB2 Access View


Dados selecionados com as visões do DB2 são protegidos pelo sistema de segurança do Lotus Domino


Figura 04 - Dados do Lotus Domino no DB2


Query Views

Uso de SQL para especificar dados da visão
  • Incluindo DAV expondo dados NSF, DB2 e DB2 com dados federados

Visões parametrizadas do Lotus Notes client e do browser


Figura 05 - Criação de uma Query View


Outras informações sobre a utilização do DB2 com aplicações Lotus Domino podem ser encontradas nesse artigo.

Aplicações Web


Foram criados novos campos para controle de aplicações que são feitas para trabalhar na web. A tabela abaixo está a descrição desses campos:
$$HTMLTagOptions Controle de  lang e dir tags
$$HTMLFrontMatter Controle de quirks versus standards mode
$$HTMLOptions
ou
$$HTMLOptions_FieldName
Controle de comportamentos de HTML de um formulário ou campo
  • Tabbed tables
  • Expandable Sections
  • Preserve Intraline spacing
  • Disable PassThru HTML
    • Field formula "DisablePassThru = #"
    • 1 (bracket) = passthru delimited with [< >]
    • 2 (style)     = passthru indicated with Notes editor paragraph style
    • 4 (richtext) = passthru marked with richtext passthru attribute


Outra grande melhoramento foram as adições de novos argumentos para as visões quando são abertos via browser. Abaixo segue a lista:
  • &NavigateReverse = row number
  • &ResortAscending = column number
  • &ResortDecending = column number
  • &KeyType= text|time|number for &StartKey= keyvalue

Também é possível converter uma visão no formato JSON utilizando o seguinte argumento:
  • ?ReadViewEntries&Outputformat=JSON

Essas são as principais novidades para Web Services, Bases Relacionais e Aplicações Web. Como disse no começo, estarei fazendo um artigo sobre composite applications mais para frente. Se você quiser ver outras funcionalidades do Lotus Notes e Domino, poderá encontrar essas informações nesse artigo do DeveloperWorks.

3 comentários:

Loammy P. Lima disse...

Preciso fazer integração de um qmail para ele consultar a base de dados de usuarios do ldap do lotus domino. Pois este qmail sera um proxy smtp para o lotus domino. Sera que vc pode me ajudar? No momento gostaria de saber como faço pra descobrir qual o dominio do lotus domino, e como é a estrutura do ldap que o lotus domino usa?
Obrigado.

Edson Oliveira disse...

Loammy, se vc tiver o LDAP ativo no domino, poderá utilizar um LDAP Browser para ver a configuração do Domino, sugiro o Softerra.
No base DN para procura deixe em branco, assim ele mostrará tudo.

Qualquer dúvida avise-me.

Karina disse...

Boa tarde! Sou analista na UFMG e comecei a trabalhar com Lotus Notes há pouco tempo. Não temos profissionais qualificados e estamos com um problema de segurança em uma aplicação web em lotus notes. Tem algum e-mail de contato para que eu possa descrever nosso problema e quem sabe nos ajudar?
Desde já agradeço,