sábado, 31 de maio de 2008

Instalando o Lotus Notes R8 no Linux

Este é um post simples e rápido, mas nem por isso menos importante. Muitas pessoas ainda acham o Linux uma mudança muito forte nas organizações, principalmente quando se trata do usuário final.

Uma mudança que a IBM/Lotus está fazendo é tentar ajudar os administradores/gerentes de TI a verem o ambiente Linux com bons olhos e para isso está suportando o Lotus Notes, Sametime e Symphony nativamente neste ambiente.

A versão R8 do Lotus Notes trás muitos melhoramentos, inclusive a utilização de aplicações compostas e a possibilidade de agregação de aplicações dentro do cliente, ou seja, o usuário só precisa de uma única interface para usar seus principais aplicativos. É claro que isso não se aplica a todos os usuários de uma corporação, mas se você pensar no dia-a-dia de uma organização, a maioria dos usuários utilizam no máximo uns 10 programas para trabalhar e muitos até já estão com interfaces Web. Em termos de custo, a mudança para um ambiente em Linux pode ser bem atrativa e de certa forma mais segura também, visto que a existência de vírus para esse ambiente é muito baixa, ou quase nula.

Aqui neste post estarei mostrando a instalação do Lotus Notes R8 em um ambiente Linux (SuSe Linux Enterprise Desktop 10). Veja como é simples a instalação do Lotus Notes R8 nos passos abaixo:

SNAG-0000 Utilizando um usuário administrador ou o próprio "root" você pode descompactar o pacote do Lotus Notes R8 ou simplesmente rodar através de um CD o instalador. Nesse meu exemplo eu estou utilizando um pacote (.tar), e descompactei em uma pasta no desktop.
SNAG-0001 Com o pacote descompactado, basta dar um clique duplo com o mouse no arquivo SETUP.SH. O ambiente irá perguntar se você quer executar ou verificar o script. Clique na opção RUN.
SNAG-0002 Após a inicialização, o programa de instalação já é aberto e começa a pedir as informações para instalar o Lotus Notes R8. Nesse primeira tela clique em NEXT para continuar.
SNAG-0003 Aceite o contrato de utilização do Lotus Notes R8 e clique em NEXT.
SNAG-0004 Nesta tela o ambiente está perguntando onde será feita a instalação dos arquivos de programa. O programa de instalação dá como opção o seguinte diretório:

/opt/ibm/lotus/notes

Essa é apenas uma sugestão, você precisa colocar o arquivo de programas do Lotus Notes R8 em uma pasta que todos os usuários que irão usar essa máquina poderão acessar. No meu exemplo eu apenas diminuí um pouco o campo: /opt/lotus/notes. Clique em NEXT para continuar.
SNAG-0005 Selecione o idioma que você deseja instalar. Clique em NEXT.
SNAG-0006 Selecione quais são os componentes que você quer instalar. Aqui fiz a seleção dos seguinte componentes:

* Activities (para gerenciar atividades, esse componente requer o Lotus Connections)
* Sametime (para IM e aviso de presença, esse componente requer o Lotus Sametime)
* Lotus Symphony (Editor de Texto, Planilha e Apresentação)

Clique em NEXT.
SNAG-0007 Nesta tela tem um resumo da instalação, clique em NEXT para iniciar a instalação do Lotus Notes R8.
SNAG-0009 Barra de progresso da instalação do Lotus Notes R8.
SNAG-0010 Se a instalação terminar sem problemas, o programa irá apresentar uma mensagem de sucesso. Clique em FINISH.

Após o término da instalação você deve entrar com um usuário comum no ambiente para configurar o Lotus Notes R8. Não utilize o usuário administrativo para executar o Lotus Notes. Um exemplo de configuração do Lotus Notes você pode pegar nesse post.

Ao final você terá o Lotus Notes R8 no Linux.

SNAG-0008

Figura 01 - Lotus Notes R8 no SLED 10.

Como você pode ver, o Lotus Notes em Linux pode sim ajudar a trazer as suas aplicações para esse sistema operacional e mudar a ideia que Linux só server para servidores.

sexta-feira, 30 de maio de 2008

Lotus Symphony 1

Foi lançada a versão 1 do Lotus Symphony hoje. Para baixar essa versão entre no site do Symphony.

Como vocês podem ver hoje foi um dia com muitas novidades.

IBM Lotus Notes/Domino 8.5 Public Beta

Já está disponível o Beta 1 público do Lotus Notes/Domino 8.5. Para baixar esse beta veja as informações clicando no link.

O link faz parte do fórum deste beta, não deixe de participar colocando suas sugestões e fazendo comentários.

quinta-feira, 29 de maio de 2008

STEW de Lotus Mobile Connect 6.1.1

1225788354_e93f8f808a_o O Lotus Mobile Connect atua na área de segurança, implementando túnel VPN – Virtual Private Network entre servidor central e notebooks / PDAs. Possui elevados níveis de criptografia, e provê diversas funcionalidades como compressão de dados, redução de header TCP/IP, roaming (mudança de interface física sem interromper sessão), etc. Pode ser utilizado como complemento a outras soluções de software como Lotus Expeditor, ou outro sistema que requer um nível adicional de segurança e/ou otimização de comunicações. Lotus Mobile Connect é o novo nome para o software WECM – WebSphere Everyplace Connection Manager.
       
Idioma: Inglês    
Instrutor: Will Cline - IBM US    
Data: 01 a 03 de Julho de 2008    
Horário: 9h às 18h    
Local: IBM Brasil – São Paulo - Sala de aula TU16 - Rua Tutóia, 1157– Esquina com Av. 23 de Maio – 16 andar
       
 

AGENDA

 
Dia 1
Administrative Detail and Introductions
Unit 1 – Lotus Classroom and Machine Environment
Unit 2 – Product Overview / Architecture
Unit 3 – Hardware and Software Requirements
Unit 4 – Wireless Networking Fundamentals
Unit 5 – Install and Configure Gatekeeper
Lunch – 1:00 pm – 1 hour
Lab 0 – Remote Machine Environment
Lab 1 – Install and Configure Prerequisites
Lab 2 – Install Connection Manager, Gatekeeper and Configure Access Manager
Lab 3 – Configure Connection Manager
Dia 2
Morning Review
Unit 6 – Install and Configure Connection Manager
Unit 7 – Install and Configure Mobility Client
Unit 8 – Security
Unit 9 – High Availability / Clustering
Lunch – 12:00 pm – 1 hour
Lab 4 – Configure Mobility Client using PPC Emulator
Lab 5 – LMC Administration
Lab 6 – HTTP Access Services
Lab 7 – Accessing Backend Servers
Lab 8 – Roaming
Lab 9 – wg_monitor
Dia 3
Morning Review
Unit 10 – Problem Determination
Unit 11 – Additional Resources
Lunch – 12:00 pm – 1 hour
Lab 10 – Mobility Client Trace Viewer
Lab 11 – LMC Toolkit
Lab 12 – LDAP-Bind with Active Directory
Lab 13 – Single Sign-on (Prerequisite LDAP-Bind lab)
Lab 14 – Problem Determination
Lab 15 – RedHat Enterprise Linux Installation
Lab 16 – RADIUS Authentication and Accounting (optional)
       
Pré-requisitos: Conceitos básicos de ambiente de redes    
Audiência: Este treinamento é direcionado a Administradores, Arquitetos de TI , Técnicos e profissionais que necessitam de desenvolver soluções para a área de segurança / otimização de acesso a aplicativos.
Inscrição: Participação gratuita - vagas limitadas.
Faça sua inscrição pelo e-mail: ibmtec@br.ibm.com
ou telefone 0 XX 11 2132-5441 c/ Sonia.
Inscrições até o dia 25 de Junho de 2008.

segunda-feira, 26 de maio de 2008

Domino App com DojoX

Em continuação sobre a utilização do Dojo junto com aplicações Lotus Domino, nesse post vou falar um pouco sobre DojoX. Quando estamos trabalhando com a biblioteca Dojo, ela pode ser divida em três partes:

  • Dojo Base: É a parte mais básica do Dojo, que trabalhar com dados, drag-and-drop, etc.
  • Dijit: É a parte que trabalha com interfaces, campos, etc. O Dijit foi utilizando no meu post anterior
  • DojoX: É a parte que trabalha com gráficos, como imagens, gráficos, layout, etc.

O objetivo deste post é explorar um pouco mais sobre o DojoX, ou seja, uma parte mais visual do Dojo. Aqui vou estar fazendo uma visualização de fotos utilizando o componente SlideShow do DojoX. Abaixo você poderá ver a criação desta aplicação.

A aplicação

A aplicação é muito simples, existem dois formulários, um para fazer a criação dos documentos de imagens e outro para a apresentação das imagens no formato SlideShow. Também foram criadas duas visualizações e um agente para trazer os dados das fotos.

O primeiro formulário que criei serve para fazer o upload das fotos, neste formulário eu colocquei os seguintes campos:

Campo Tipo   Fórmula
Nome Text Editável  
Descricao Text Editável  
Foto RichText Editável  
NomeFoto Text Computado @AttachmentNames

figura01[5]

Figura 01 - Formulário para upload das fotos

JSON

O componente que iremos utilizar para mostrar as fotos, recebe os dados através de JSON (JavaScript Object Notation), que é um formato leve para intercâmbio de dados. O Lotus Domino gera as visões (views) no formato JSON, bastando chamar a visão da seguinte forma:

http://<servidor>/<database.nsf>/<visão>?ReadViewEntries&outputformat=JSON

Apesar do Lotus Domino já ter essa facilidade, o código é gerado genericamente para atender qualquer aplicação e para trabalhar com as informações seria necessário criar um código JavaScript para separar todos os campos.

Quando comecei a mexer com o DojoX, vi que muitos dos dados vindos de JSON para os componentes eram bastantes simples e ao invés de escrever um código JavaScript para separar os elementos, resolvi construir um agente mais simples para montar os dados em JSON.

A estrutura utilizada pelo componente SlideShow para pegar as fotos é a seguinte:

{ items: [ {

"thumb":"http://<endereço>/<foto>",

"large":"http://<endereço>/<foto>",

"title":"<Descrição>",

"link":""http://<endereço>/<documento ou página da foto>"

} ]}

Para facilitar a criação desta estrutura eu montei uma visão bem simples com todos os campos necessários e depois criei um agente que lê esta visão e monta a saída no formato correto. Essa visão é composta pelas seguintes colunas:
Título Fórmula
Nome Nome
title Descricao
thumb "/bases/dojo.nsf/ViewSlideShow/" + @Text(@DocumentUniqueID) + "/$File/" + NomeFoto + "?OpenElement"
large "/bases/dojo.nsf/ViewSlideShow/" + @Text(@DocumentUniqueID) + "/$File/" + NomeFoto + "?OpenElement"
link "/bases/dojo.nsf/ViewSlideShow/" + @Text(@DocumentUniqueID) + "?OpenDocument"

 

figura02

Figura 02 - View com os dados das fotos

A apresentação

O objetivo da apresentação é criar uma forma de escolher o nome (categoria) e mostrar todas as fotos no formato SlideShow. Para isso eu criei um formulário para a apresentação. Abaixo você pode ver o formulário pronto:

figura03

Figura 03 - Formulário de apresentação do SlideShow.

No formulário eu coloquei dois campos:

Campo Tipo   Fórmula
nome_selecao Combobox Editável @Subset(@DbColumn( "Notes" : "ReCache" ; @DbName ; "ViewSlide" ; 1 );1)
fotoID Text Computado @DbLookup( "Notes" : "ReCache" ; @DbName ; "ViewSlide" ; nome_selecao ; 1; [ReturnDocumentUniqueID])

O primeiro campo (nome_selecao) lê uma visão bem simples que criei. O nome desta visões é ViewSlide e abaixo você pode ver as definições das colunas:

Título Fórmula
Nome Nome
Descrição Descricao

A coluna Nome está categoriazada. Abaixo você pode ver a visão:

figura04

Figura 04 - Visão ViewSlide.

O segundo campo eu utilizo para pegar o ID do primeiro documento selecionado no campo nome_selecao. Quando eu chamar o agente para montar a estrutura JSON, eu passo esse ID como parâmetro, assim ele irá pegar todos os documento com o nome "SLIDESHOW", por exemplo.

Continuando no formulário, eu coloquei a chamada para os componentes do Dojo no campo HTML Head Content:

"<style type='text/css'>" +
"@import '/js/dijit/themes/tundra/tundra.css';" +
"@import '/js/dijit/themes/soria/soria.css';" +
"@import '/js/dijit/themes/nihilo/nihilo.css';" +
"@import '/js/dojox/image/resources/image.css';" +
"@import '/js/dojo/resources/dojo.css'" +
"</style>" +
"<script type='text/javascript' src='/js/dojo/dojo.js' djConfig='parseOnLoad: true'></script>"+

"<script type='text/javascript'>"+
"dojo.require('dojo.parser');"+
"dojo.require('dojo.data.ItemFileReadStore');"+
"dojo.require('dojox.image.SlideShow');"+

"</script>"

As linhas que deixei em negrito são as referências para o SlideShow e para o componente que lê os dados do JSON.

Na apresentação o código para criar o SlideShow é o seguinte:

<div jsId="imageItemStore" dojoType="dojo.data.ItemFileReadStore"
  url="/bases/dojo.nsf/slide-show-dojo?openagent&key=<Computed Value>"></div>

<div id="slideshow1" dojoType="dojox.image.SlideShow" imageWidth="600" imageHeight="600">
  <script type="dojo/connect">
    //This function runs when the widget has finished constructing
    //It sets the data store to use
    this.setDataStore(
      //The data store
      imageItemStore,
      //The request object
      { query: {}, count:200 },
      //The names of the attributes to get
      {
        imageThumbAttr: "thumb",
        imageLargeAttr: "large",
      }
    );
  </script>
</div>

A linha que deixei em negrito é referente a chamada do agente que irá montar o código JSON. No campo Computed Value, ele passa o ID do documento da foto. O resto do código eu peguei em um exemplo, e como vocês podem ver é bastante simples o entendimento.

A última parte deste exemplo é a construção do agente slide-show-dojo. Esse agente é responsável por montar a estrutura JSON para a apresentação das fotos. Abaixo segue o código:

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim vc As NotesViewEntryCollection
    Dim entry As NotesViewEntry
    Dim doc As NotesDocument   
    Dim doc_selecao As NotesDocument
    Dim saida As String
    Dim pkey As String
    Dim QueryString As String

    //Pega a base e documento corrente criado na chamada
    Set db = session.CurrentDatabase
    Set doc = session.DocumentContext

    //Pega o parâmetro passado na URL (QueryString). Esse parâmetro é o ID do primeiro documento de fotos
    QueryString =doc.Query_String(0)
    pkey =  ExtractParameter (QueryString, "key" )

    //Abre o documento de foto
    Set doc_selecao = db.GetDocumentByUNID(pkey)

    //Pega todos os documentos com o mesmo nome (categoria)
    Set view = db.GetView("ViewSlideShow")
    Set vc = view.GetAllEntriesByKey(doc_selecao.Nome(0))

    //Inicia um loop para a criação da saída JSON. Um ponto importante é a criação da saída. Quando você manda uma saída pelo HTTP do documento utilizando o comando print, o Domino monta uma página HTML por padrão, só que utilizarmos uma página HTML, a função ItemFileReadStore do Dojo não consegue entender os dados passados. Para evitar isso você precisa mandar um primeiro print falando que a saída é um documento do tipo texto e não HTML. Abaixo você pode ver esse print.
    Print |Content-type: text/plain|   
    saida = "{ items: ["
    For i = 1 To vc.Count
        saida = saida + "{"
        Set entry = vc.GetNthEntry(i)
        saida = saida + "'thumb':" + "'" + entry.ColumnValues(2) + "',"
        saida = saida + "'large':" + "'" + entry.ColumnValues(3) + "',"
        saida = saida + "'title':" + "'" + entry.ColumnValues(1) + "',"
        saida = saida + "'link':" + "'" + entry.ColumnValues(4) + "'"
        If i = vc.Count Then
            saida = saida + "}"
        Else
            saida = saida + "},"
        End If
    Next
    saida = saida + "]}"

    //Manda a saída para o HTTP do Domino
    Print saida
End Sub

Essa função eu peguei no site OpenNTF e seu objetivo é separar os valores dentro da QueryString.

Function ExtractParameter ( QueryString As String, ParamName As String ) As String
    Dim ParameterName As String
    ParameterName = ParamName & "="
    Dim startPosition, endPosition, queryStringLength, parameterLength As Integer
    Dim parameterValue As String
    queryStringLength = Len ( QueryString )
    parameterLength = Len ( ParameterName )
    startPosition = Instr ( 1, QueryString, ParameterName, 5 )
    If startPosition = 0 Then ' can be used to flag that no match param was sent
        parameterValue = ""
    Else
        startPosition = startPosition + parameterLength
        endPosition= Instr ( startPosition, QueryString, "&" )
        If ( endPosition = 0 ) Then
            endPosition = queryStringLength + 1
            parameterLength = endPosition - startPosition
            parameterValue = Mid ( QueryString, startPosition,parameterLength )
        Elseif ( endPosition <> 0 ) Then
            parameterLength = endPosition - startPosition
            parameterValue = Mid ( QueryString, startPosition,parameterLength )
        End If
    End If
    ExtractParameter = Replace(parameterValue,"_"," ")
End Function

Resultado

O resultado final desta aplicação é o seguinte:

DojoX

Figura 05 - Resultado final da aplicação de Slide Show.

O que foi criando aqui não está baseado nas melhores práticas de programação, isto é um simples exemplo de como utilizar o DojoX dentro de uma aplicação Lotus Notes/Domino. Esse código pode ser melhorado com outras técnicas mais apuradas de desenvolvimento.

As referências que utilizei para fazer esse exemplo são:

DojoCampus.org - Deste site que tirei o exemplo acima, é uma ótima referência para começar a trabalhar com Dojo.

Dojotoolkit - Site com o código do Dojo e Documentação.

segunda-feira, 12 de maio de 2008

Performance basics for IBM Lotus Notes developers

Um bom documento para desenvolvedores Lotus Notes/Domino. Nesse white paper o autor explora vários itens sobre fatores que podem afetar a performance de aplicações Lotus Notes/Domino. Vale a pena dar uma olhada no documento.

O link para o documento está aqui.

Lotus ActiveInsight v6.1 Beta

dash-50x50 Já está disponível o Beta do Lotus ActiveInsight v6.1. O IBM Lotus ActiveInsight é uma solução que ajuda as organizações a definir e comunicar objetivos, visualizar em tempo ral as métricas e tomar ações via scorecars e dashboards baseados em papeis, desta forma pode ajudar a melhorar o desempenho no geral.

Os principais pontos desta nova versão são:

  • Rapid Integration with BI Data
    • New builders for Cognos, Hyperion and Business Objects
  • New and Improved: Tutorial Sample Application and Documentation for WebSphere Portal and WebSphere Application Server
    • Builds upon sample tutorial in a new Redbook, and showcases all of the WDF builders
  • Support Notes 8 and Expeditor
    • With Portlet Factory, ability to create dashboards and deploy them to WebSphere Portal, Notes 8 or Sametime
  • Performance Scorecard Flexibility 
    • More ways to organize, navigate, customize and deploy scorecards

Maiores informações você pode pegar no site do Beta Program.

sábado, 10 de maio de 2008

Interface Gráfica no AIX

A maioria dos produtos Lotus podem ser instalados em ambientes IBM AIX. Esse produtos já disponibilizam a interface de instalação via CONSOLE MODE, porem podemos utilizar a interface gráfica dos programas de instalação para facilitar esse processo. Abaixo vou descrever como exportar a interface gráfica do AIX para o ambiente Windows e assim utilizar os programas de instalação com interface gráfica.

O primeiro passo para a exportação da interface gráfica é alterar uma configuração no lado do servidor. Veja os passos abaixo:

  • Editar o arquivo /etc/ssh/sshd_config (você pode utilizar o vi para isso);
  • Adicionar/alterar/descomentar as seguintes linhas:
    • X11Forwarding yes
    • XAuthLocation  /usr/X11R6/bin/xauth
  • Reiniciar o processo de SSH
    • # stopsrc -s sshd
    • # startsrc -s sshd

Do lado do cliente é bastante simples também. O primeiro passo é escolher os clientes que serão utilizados. No meu ambiente eu estou utilizando o PUTTY para fazer o SSH e o Xmanager para exportar a interface gráfica. Para a interface gráfica você pode utilizar outros programas como o Cygwin ou o Reflection.

Veja os passos abaixo para fazer a configuração do client.

  • Após instalar o Xmanager, execute o modo passivo dele (veja figura abaixo)

ssh1 

Figura 01 - Executando o Xmanager no modo passivo

  • No PUTTY você precisa fazer uma configuração antes de iniciar uma nova sessão, essa configuração é para habilitar o recebimento da interface gráfica. Para isso selecione a opção Enable X11 Forwarding.

ssh2

Figura 02 - Tela de confiração do PUTTY

  • Após esse passo você já pode fazer a conexão SSH com o seu servidor AIX. Neste ponto você verá a tela normal (console) e poderá executar dois comandos para exportação da interface gráfica. Veja abaixo:
    • echo $DISPLAY ou export DISPLAY=<ip do seu client>:0.0

Depois disso, você já irá começar a receber a interface gráfica do AIX. Se você executar qualquer aplicação gráfica, ela será apresentada no WINDOWS.

Esses passos de configuração foram passados pelo Marcelo Ramos, que é técnico em AIX da IBM. Obrigado Marcelo!

sexta-feira, 2 de maio de 2008

Desenvolvimento em Lotus Domino

O desenvolvimento de aplicações Lotus Domino/Notes continua muito forte. Hoje li a notícia abaixo, onde a Jadworks lançou seu pacote para construções de sites de Intranet baseado em Lotus Domino. Veja a notícia:

Jadworks lança aplicativo de Intranet baseado em IBM Lotus Notes Domino para empresas globais

SAN FRANCISCO, 1º de maio /PRNewswire/ -- Jadworks anuncia o lançamento geral do seu novo Aplicativo de Intranet baseado em IBM Lotus Domino para grandes empresas (Jadworks Suite). Com a Jadworks Suite, os departamentos de TI e usuários finais podem construir com segurança intranets e aplicativos colaboradores, incluindo sistema de gestão de documentos, portais de recursos humanos, acompanhamento de gestão de projetos, comunicações de marketing e outros aplicativos de informação intensiva. As principais funções e capacidades do sistema são os blogs de discussão, postagem própria de anúncios internos, diretório de funcionários e criador de agenda de telefone, kits de ferramentas de gerentes, quadro de avisos, busca rápida, notificação de email e assinatura eletrônica.

Maiores informações você pode ver no site http://www.jadworks.com