View
1
Download
0
Category
Preview:
Citation preview
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
S517-7939-00
���
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
S517-7939-00
���
Nota
Antes
de
utilizar
estas
informações
e
o
produto
suportado
por
elas,
leia
as
informações
gerais
em
Apêndice
B,
“Avisos”,
na
página
77.
Primeira
Edição
(novembro
de
2003)
Esta
edição
se
aplica
à
versão
5,
release
2
do
IBM
Tivoli
Directory
Integrator
e
a
todos
os
releases
e
modificações
subseqüentes
até
que
seja
substituída
em
novas
edições.
©
Copyright
International
Business
Machines
Corporation
2002,
2003.
Todos
os
direitos
reservados.
Prefácio
Este
documento
contém
as
informações
que
você
precisa
para
administrar
o
IBM
Tivoli
Directory
Integrator.
Quem
Deve
Ler
este
Manual
Este
manual
destina-se
a
administradores
de
sistema,
a
usuários
e
a
qualquer
pessoa
interessada
em
aprender
mais
sobre
o
IBM
Tivoli
Directory
Integrator.
Publicações
Leia
as
descrições
da
biblioteca
doIBM
Tivoli
Directory
Integrator
para
determinar
quais
publicações
são
úteis
para
você.
Depois
de
determinar
as
publicações
necessárias,
consulte
as
instruções
para
acessar
as
publicações
on-line.
Biblioteca
do
IBM
Tivoli
Directory
Integrator
As
publicações
que
fazem
parte
da
biblioteca
do
IBM
Tivoli
Directory
Integrator
são:
IBM
Tivoli
Directory
Integrator
5.2:
Leia-me
Contém
as
informações
recentes
sobre
o
IBM
Tivoli
Directory
Integrator
5.2.
IBM
Tivoli
Directory
Integrator
5.2:
Guia
Básico
Um
breve
tutorial
e
instruções
para
oIBM
Tivoli
Directory
Integrator
5.2.
IBM
Tivoli
Directory
Integrator
5.2:
Guia
do
Administrador
Inclui
informações
completas
sobre
a
instalação
do
IBM
Tivoli
Directory
Integrator.
Inclui
informações
sobre
como
fazer
a
migração
de
uma
versão
anterior
do
IBM
Tivoli
Directory
Integrator.
Inclui
informações
sobre
como
configurar
a
funcionalidade
de
registro
do
IBM
Tivoli
Directory
Integrator.
IBM
Tivoli
Directory
Integrator
5.2:
Guia
do
Usuário
Contém
informações
sobre
como
utilizar
a
ferramenta
do
IBM
Tivoli
Directory
Integrator
5.2.
Contém
instruções
para
projetar
soluções
utilizando
a
ferramenta
(ibmditk)
do
IBM
Tivoli
Directory
Integrator
ou
executando
soluções
previamente
feitas
a
partir
da
linha
de
comando
(ibmdisrv).
Além
disso,
fornece
informações
sobre
interfaces,
conceitos
e
criação
e
gerenciamento
de
AssemblyLine/EventHandler.
Inclui
exemplos
para
criar
interação
e
aprendizado
acessível
do
IBM
Tivoli
Directory
Integrator
5.2.
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Referência
Contém
informações
detalhadas
sobre
cada
um
dos
componentes
doIBM
Tivoli
Directory
Integrator
5.2
AssemblyLine
(Conectores,
EventHandlers,
Analisadores,
Plug-ins
e
assim
por
diante).
Publicações
Relacionadas
As
informações
relacionadas
ao
IBM
Tivoli
Directory
Integrator
estão
disponíveis
nas
seguintes
publicações:
v
O
IBM
Tivoli
Directory
Integrator
5.2
utiliza
o
cliente
JNDI
da
Sun
Microsystems.
Para
obter
informações
sobre
o
cliente
JNDI,
consulte
as
Especificações
do
Java
Naming
and
Directory
Interface™
1.2.1
no
site
da
Web
da
©
Copyright
IBM
Corp.
2002,
2003
iii
Sun
Microsystems
em
http://java.sun.com/products/jndi/1.2/javadoc/index.html.
v
A
Tivoli
Software
Library
fornece
uma
variedade
de
publicações
sobre
oTivoli
como
documentos,
planilha
de
dados,
demonstrações,
livros
de
registros
e
cartas
de
lançamento.
A
Tivoli
Software
Library
está
disponível
na
Web
em:
http://www.ibm.com/software/tivoli/library/
v
O
Tivoli
Software
Glossary
inclui
definições
para
muitos
dos
termos
técnicos
relacionados
ao
software
do
Tivoli.
O
Tivoli
Software
Glossary
está
disponível,
somente
em
inglês,
no
link
Glossary
no
lado
esquerdo
da
página
da
Web
da
Tivoli
Software
Library
http://www.ibm.com/software/tivoli/library/
Acessando
Publicações
On-line
As
publicações
para
este
produto
estão
disponíveis
on-line
nos
formatos
(Portable
Document
Format)
e/ou
HTML
(Hypertext
Markup
Language)
na
Tivoli
software
library:
http://www.ibm.com/software/tivoli/library.
Para
localizar
as
publicações
do
produto
na
biblioteca,
clique
no
link
Product
manuals
no
lado
esquerdo
da
página
Library.
Depois,
localize
e
clique
no
nome
do
produto
na
página
do
centro
de
informações
sobre
o
software
Tivoli.
As
informações
estão
organizadas
por
produto
e
incluem
LEIA-MEs,
guias
de
instalação,
guias
do
usuário,
guias
do
administrador
e
referências
do
desenvolvedor,
conforme
necessário.
Nota:
Para
garantir
a
impressão
correta
das
publicações
em
PDF,
selecione
a
caixa
de
opções
Fit
to
page
na
janela
de
Impressão
do
Adobe
Acrobat
(que
fica
disponível
quando
você
clica
em
File->Print).
Acessibilidade
Recursos
de
acessibilidade
ajudam
um
usuário
que
possui
necessidades
especiais,
como
mobilidade
restrita
ou
visão
limitada,
a
utilizar
os
produto
de
software
com
êxito.
Com
este
produto,
você
pode
utilizar
tecnologias
de
assistência
para
escutar
e
navegar
na
interface.
Depois
da
instalação,
é
possível
utilizar
também
o
teclado
em
vez
do
mouse
para
operar
todos
os
recursos
da
interface
gráfica
do
usuário.
Entrando
em
Contato
com
o
Suporte
do
Software
Antes
de
entrar
em
contato
com
o
suporte
do
IBM
Tivoli
Software
para
resolver
um
problema,
consulte
o
IBM
System
Management
e
o
site
da
Web
do
Tivoli
em:
http://www.ibm.com/software/sysmgmt/products/support/
Se
precisar
de
ajuda
adicional,
entre
em
contato
com
o
suporte
do
software
utilizando
os
métodos
descritos
no
Guia
de
Suporte
do
Software
IBM
no
seguinte
site
da
Web:
http://techsupport.services.ibm.com/guides/handbook.html
O
guia
fornece
as
seguintes
informações:
v
Requisitos
de
registro
e
elegibilidade
para
o
recebimento
de
suporte
v
Números
de
telefone
e
endereços
de
e-mail,
dependendo
do
país
no
qual
você
se
encontra.
iv
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
v
Uma
lista
de
informações
que
devem
ser
reunidas
antes
de
entrar
em
contato
com
o
suporte
do
software.
Prefácio
v
vi
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Índice
Prefácio
.
.
.
.
.
.
.
.
.
.
.
.
.
. iii
Quem
Deve
Ler
este
Manual
.
.
.
.
.
.
.
.
. iii
Publicações
.
.
.
.
.
.
.
.
.
.
.
.
.
. iii
Biblioteca
do
IBM
Tivoli
Directory
Integrator
.
. iii
Publicações
Relacionadas
.
.
.
.
.
.
.
.
. iii
Acessando
Publicações
On-line
.
.
.
.
.
.
. iv
Acessibilidade
.
.
.
.
.
.
.
.
.
.
.
.
. iv
Entrando
em
Contato
com
o
Suporte
do
Software
.
. iv
Capítulo
1.
Introdução
.
.
.
.
.
.
.
.
. 1
Sobre
este
Manual
.
.
.
.
.
.
.
.
.
.
.
. 1
Linguagem
de
Criação
de
Scripts
.
.
.
.
.
.
. 2
Instalando
o
IBM
Tivoli
Directory
Integrator
.
.
.
. 2
Instalando
os
Arquivos
Tutoriais
.
.
.
.
.
.
.
. 2
Capítulo
2.
Simplificar
e
solucionar
.
.
. 3
Como
Comer
um
Elefante?
.
.
.
.
.
.
.
.
. 3
Integração
é
Comunicação
.
.
.
.
.
.
.
.
.
. 3
Arquitetura
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 6
AssemblyLines
.
.
.
.
.
.
.
.
.
.
.
.
. 7
Conectores
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 7
Analisadores
.
.
.
.
.
.
.
.
.
.
.
.
.
. 9
EventHandlers
.
.
.
.
.
.
.
.
.
.
.
.
.
. 9
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
.
.
.
.
.
.
.
.
. 11
Desenvolvimento
Rápido
de
Integração
.
.
.
.
. 11
Criando
uma
Nova
Configuração
.
.
.
.
.
.
. 12
Criando
um
AssemblyLine
.
.
.
.
.
.
.
.
. 14
Incluindo
o
Conector
de
Entrada
.
.
.
.
.
.
. 17
Mapeando
Atributos
no
AssemblyLine
.
.
.
.
. 24
Incluindo
o
Conector
de
Saída
.
.
.
.
.
.
.
. 34
Executando
o
Seu
AssemblyLine
.
.
.
.
.
.
. 39
Trabalhando
com
Ganchos
.
.
.
.
.
.
.
.
. 43
Conversão
do
Esquema
.
.
.
.
.
.
.
.
.
. 46
Incluindo
o
Conector
de
Ligação
.
.
.
.
.
.
. 48
Configurando
os
Critérios
de
Links
.
.
.
.
.
. 52
EventHandlers
.
.
.
.
.
.
.
.
.
.
.
.
. 58
Considerações
Finais
.
.
.
.
.
.
.
.
.
.
. 73
Apêndice
A.
index.html
e
OtherPage.html
.
.
.
.
.
.
.
.
.
.
. 75
index.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 75
OtherPage.html
.
.
.
.
.
.
.
.
.
.
.
.
. 75
Apêndice
B.
Avisos
.
.
.
.
.
.
.
.
. 77
Instruções
para
Componentes
de
Terceiros
.
.
.
. 79
Instrução
para
Apache
.
.
.
.
.
.
.
.
.
. 79
Instrução
para
Rhino
.
.
.
.
.
.
.
.
.
. 80
Marcas
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 80
©
Copyright
IBM
Corp.
2002,
2003
vii
viii
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Capítulo
1.
Introdução
Sobre
este
Manual
Este
manual
é
uma
introdução
simples
para
um
sistema
simples.
Sem
dúvida,
a
palavra
simples
é
usada
aqui
em
seu
contexto
mais
positivo
e
forte,
porque
a
melhor
maneira
de
envolver
sua
mente
em
um
problema
complexo
é
simplificá-lo.
Divida-o
em
partes
mais
gerenciáveis
e,
em
seguida,
controle
as
partes
que
compõem
o
todo.
Dividir
e
conquistar.
Essa
é
uma
técnica
que
você
utiliza
instintivamente
para
resolver
igualmente
problemas
diários
e
que
é
igualmente
pertinente
à
troca
de
informações
de
engenharia
entre
escritórios,
empresas
ou
ao
redor
do
mundo.
O
IBM
Tivoli
Directory
Integrator
foi
projetado
e
construído
na
premissa
de
que
os
problemas
de
integração
podem
ser
divididos
em
três
componentes
básicos:
v
Os
sistemas
envolvidos
na
comunicação.
v
Os
fluxos
de
dados
entre
esses
sistemas.
v
E
os
eventos
que
acionam
os
fluxos
de
dados.
Com
o
IBM
Tivoli
Directory
Integrator
você
transforma
esse
entendimento
atômico
do
problema
de
integração
diretamente
na
solução.
Você
pode
construir
sua
solução
em
incrementos,
um
fluxo
por
vez,
com
feedback
e
verificação
contínuos.
Isso
significa
tornar
os
projetos
de
integração
mais
fáceis
de
estimar
e
planejar.
Às
vezes,
o
planejamento
pode
ser
reduzido
para
simplificar
a
contabilidade
e
determinar
o
custo
dos
fluxos
de
dados
individuais
a
serem
implementados.
E,
já
que
está
desenvolvendo
a
solução
fluxo-a-fluxo
de
maneira
visual
e
interativa,
você
pode
relatar
(e
demonstrar)
o
progresso
da
solução
para
a
gerência
do
projeto
e
da
empresa
de
uma
só
vez.
O
IBM
Tivoli
Directory
Integrator
gerencia
a
parte
técnica
da
conexão
e
da
interação
com
diversas
origens
de
dados
às
quais
você
deseje
se
integrar,
afastando-se
dos
detalhes
sobre
suas
APIs,
transporte,
protocolos
e
formatos.
Em
vez
de
concentrar-se
nos
dados,
o
IBM
Tivoli
Directory
Integrator
direciona
sua
atenção
para
o
nível
de
informações,
permitindo
que
você
se
concentre
na
transformação,
filtragem
e
outra
lógica
de
negócios
necessária
para
executar
cada
troca.
O
IBM
Tivoli
Directory
Integrator
permite
que
você
construa
bibliotecas
de
lógica
de
negócios
e
componentes
que
possam
ser
mantidas,
estendidas
e
reutilizadas
para
vencer
novos
desafios.
Os
projetos
de
desenvolvimento
de
sua
organização
podem
compartilhar
os
recursos
do
IBM
Tivoli
Directory
Integrator,
o
que
resulta
em
projetos
independentes
(mesmo
em
soluções
de
ponta)
que
se
adaptam
imediatamente
a
uma
infra-estrutura
integrada
e
coerente.
Essa
abordagem
resulta
em
uma
utilização
de
recursos
mais
racional
e
previsível,
uma
vez
que
sua
origem
de
dados
e
seus
especialistas
em
tecnologia
são
incluídos
logo
no
início
de
um
projeto
para
configurar
suas
bibliotecas.
Quando
estabelecidos,
esses
recursos
de
integração
são
disponibilizados
em
toda
a
rede,
permitindo
que
você
os
utilize
como
uma
alavanca
para
criar
novas
soluções
e
aperfeiçoar
as
soluções
já
existentes.
©
Copyright
IBM
Corp.
2002,
2003
1
Este
documento
fornece
uma
introdução
a
essa
abordagem,
bem
como
informações
sobre
como
penetrar
na
elegante
e
fundamental
simplicidade
do
IBM
Tivoli
Directory
Integrator.
Linguagem
de
Criação
de
Scripts
O
IBM
Tivoli
Directory
Integrator
fornece
um
ambiente
elegante
e
intuitivo
para
construir
rapidamente
a
estrutura
de
sua
solução
de
integração.
No
entanto,
você
poderá
querer
adicionar
uma
lógica
mais
avançada
de
manipulação
e
transformação
de
dados,
bem
como
regras
de
negócios
para
filtragem
dos
dados
e
controle
do
comportamento
dos
fluxos
de
dados.
Tudo
isso
é
feito
com
a
escrita
do
script
em
sua
solução.
Como
o
IBM
Tivoli
Directory
Integrator
utiliza
o
Beans
Scripting
Framework,
você
pode
escolher
em
uma
seleção
ampla
de
linguagens
de
script,
incluindo
JavaScript,
VBScript
e
PerlScript.
Para
obter
informações
adicionais
sobre
linguagens
de
criação
de
scripts,
consulte
o
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Referência.
Instalando
o
IBM
Tivoli
Directory
Integrator
O
IBM
Tivoli
Directory
Integrator
é
um
middleware
de
integração
leve
e
rapidamente
implementado.
Ao
contrário
do
middleware
tradicional,
o
IBM
Tivoli
Directory
Integrator
é
instalado
em
minutos
e
você
pode
começar
a
construir,
testar
e
implementar
soluções
imediatamente.
O
sistema
é
executado
em
várias
plataformas,
incluindo
o
Windows
e
uma
série
de
versões
do
UNIX
e
Linux.
Para
obter
informações
adicionais
sobre
a
instalação
do
IBM
Tivoli
Directory
Integrator,
consulte
as
″instruções
de
instalação
do
IBM
Tivoli
Directory
Integrator
no
IBM
Tivoli
Directory
Integrator
5.2:
Guia
do
Administrador.
Instalando
os
Arquivos
Tutoriais
Para
trabalhar
com
os
exemplos
neste
manual,
você
precisa
dos
arquivos
de
dados
do
Tutorial
(embora,
possa
reproduzi-los
a
partir
do
texto
neste
manual).
Para
acessar
esses
arquivos
de
exemplo,
vá
para
o
diretório
root_directory/examples
nos
diretórios
de
instalação.
diretório_raiz
indica
o
diretório
em
que
o
IBM
Tivoli
Directory
Integrator
está
instalado.
2
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Capítulo
2.
Simplificar
e
solucionar
Como
Comer
um
Elefante?
A
resposta
é
um
pedaço
de
cada
vez.
Essa
é
também
a
melhor
abordagem
para
assimilar
grandes
projetos
de
integração
e
de
implementação
de
sistemas.
A
chave
para
o
sucesso
está
em
reduzir
a
complexidade
dividindo
o
problema
em
segmentos
menores
e
gerenciáveis.
Isso
significa
iniciar
o
processo
tomando
apenas
uma
parte
da
solução,
de
preferência
uma
que
possa
ser
concluída
em
uma
semana
ou
duas.
O
ideal
é
que
uma
parte
posse
ser
colocada
em
produção
independentemente.
Dessa
forma,
já
está
havendo
um
retorno
de
investimento
enquanto
você
lida
com
o
resto
da
solução.
Depois
de
isolada
a
parte
que
será
trabalhada,
simplifique
ainda
mais
focalizando
as
unidades
básicas
de
comunicação
(os
fluxos
de
dados
propriamente
ditos).
Agora
você
tem
condições
para
começar
a
implementá-las.
O
desenvolvimento
da
integração
é
feito
com
o
IBM
Tivoli
Directory
Integrator
através
de
uma
série
de
ciclos
de
tentar-testar-aperfeiçoar,
fazendo
do
processo
um
processo
interativo
e
até
mesmo
exploratório.
Isso
não
só
ajuda
a
aprender
mais
sobre
sua
própria
instalação,
mas
também
permite
que
você
desenvolva
sua
solução
de
integração
a
medida
que
sua
compreensão
do
conjunto
de
problemas
e
de
seu
impacto
na
infra-estrutura
aumenta.
Uma
ótima
maneira
de
se
obter
uma
boa
imagem
mental
do
problema
em
mãos
é
desenhá-lo.
Com
um
lápis
e
um
pedaço
de
papel,
faça
um
esboço
de
um
fluxograma
que
mapeia
a
solução
em
movimentos
abrangentes.
Esse
exercício
não
ajuda
apenas
a
visualizar
o
escopo
da
tarefa,
mas
serve
também
como
um
plano
para
a
implementação
da
tarefa
no
IBM
Tivoli
Directory
Integrator.
Integração
é
Comunicação
Os
problemas
de
integração
são
todos
relacionados
à
comunicação
e,
como
tal,
podem
normalmente
ser
divididos
em
três
partes
básicas:
v
Os
sistemas
e
os
dispositivos
que
se
comunicam.
v
Os
fluxos
de
dados
entre
esses
sistemas.
v
Os
eventos
que
acionam
os
fluxos
de
dados.
Esses
elementos
que
constituem
um
cenário
de
comunicação
podem
ser
descritos
da
seguinte
forma:
Fontes
de
Dados
Estes
são
os
os
repositórios
de
dados,
os
sistemas
e
dispositivos
que
conversam
entre
si.
Por
exemplo:
v
O
Enterprise
Directory
que
você
está
implementando
ou
tentando
manter.
v
O
aplicativo
CRM.
v
O
sistema
de
telefones
do
escritório.
v
O
banco
de
dados
Access
com
a
lista
de
equipamentos
da
empresa
e
para
quem
o
equipamento
foi
enviado.
©
Copyright
IBM
Corp.
2002,
2003
3
As
origens
de
dados
representam
uma
grande
variedade
de
sistemas
e
repositórios,
como
bancos
de
dados
(por
exemplo
DB2,
Oracle,
SQL
Server),
diretórios
(por
exemplo
iPlanet,
IBM
Directory
Server,
Domino,
eDirectory
e
Active
Directory),
serviços
de
diretórios
(Exchange),
arquivos
(por
exemplo,
arquivos
XML,
LDIF
ou
SOAP),
em
formatos
especiais
ou
qualquer
número
de
mecanismos
de
interface
utilizados
por
sistemas
internos
e
parceiros
de
negócios
externos
para
se
comunicarem
com
seus
serviços
e
recursos
de
informações.
Fluxos
de
Dados
São
os
encadeamentos
das
comunicações
e
de
seu
conteúdo,
e
normalmente
são
representados
como
flechas
apontando
na
direção
do
movimento
dos
dados.
Cada
fluxo
de
dados
representa
uma
comunicação
entre
dois
ou
mais
sistemas.
No
entanto,
para
que
uma
conversação
seja
significativa
para
todos
os
participantes,
todas
as
pessoas
envolvidas
devem
compreender
o
que
está
sendo
comunicado.
Você
pode,
provavelmente,
esperar
que
as
origens
de
dados
representem
seu
conteúdo
de
dados
de
diferentes
maneiras.
Um
sistema
pode
representar
um
número
de
telefone
como
uma
informação
textual,
incluindo
os
hífens
e
parênteses
utilizados
para
facilitar
a
leitura
do
número.
Outro
sistema
pode
armazenar
os
números
de
telefone
como
dados
numéricos.
Caso
esses
dois
sistemas
precisem
comunicar
esses
dados,
então
as
informações
deverão
ser
traduzidas
durante
a
conversação.
Além
disso,
as
informações
de
uma
origem
de
dados
podem
não
estar
completas
e
podem
precisar
ser
complementadas
com
atributos
de
outras
origens
de
dados.
Além
do
mais,
apenas
partes
dos
dados
no
fluxo
podem
ser
pertinentes
para
os
sistemas
de
recebimento.
Portanto,
um
fluxo
de
dados
também
deve
incluir
o
mapeamento,
a
filtragem
e
a
transformação
de
informações,
deslocando
seu
contexto
das
origens
de
entrada
para
aquelas
dos
sistemas
de
destino.
Eventos
Os
eventos
podem
ser
descritos
como
as
circunstâncias
impostas
quando
um
conjunto
de
origem
de
dados
se
comunica
com
outro.
Um
exemplo
é
a
inclusão,
atualização
e
exclusão
de
um
funcionário
no
sistema
de
RH.
Outro
exemplo
é
quando
o
sistema
de
controle
de
acesso
detecta
a
utilização
de
um
cartão
em
uma
área
restrita.
Um
evento
também
pode
ser
baseado
em
um
calendário
ou
em
um
temporizador
baseado
em
relógio,
por
exemplo,
iniciar
a
comunicação
a
cada
10
minutos
ou
à
meia-noite,
aos
domingos.
Ele
também
pode
ser
um
evento
desativado
iniciado
manualmente,
como
ocupar
um
diretório
ou
limpar
os
dados
em
um
sistema.
Os
eventos
estão
normalmente
ligados
a
uma
origem
de
dados
e
a
fluxos
de
dados
acionados
quando
surge
um
determinado
conjuntos
de
circunstâncias.
Cada
um
desses
elementos
é
manipulado
pelo
IBM
Tivoli
Directory
Integrator
utilizando
seus
três
tipos
de
componentes:
Conectores,
Analisadores
e
EventHandlers.
v
Os
conectores
são
componentes
que
se
conectam
e
acessam
dados
em
uma
origem
de
dados.
Por
exemplo,
você
pode
utilizar
um
Conector
JDBC
para
ler
e
4
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
gravar
em
um
banco
de
dados
SQL,
enquanto
um
Conector
LDAP
permite
acessar
um
diretório.
Alguns
tipos
de
origens
de
dados
não
armazenam
dados
como
objetos
estruturados
(registros,
entradas
e
assim
por
diante),
utilizando
no
lugar
fluxos
de
bytes.
Dois
exemplos
são
dados
através
de
IP
e
arquivos
simples.
É
onde
entram
os
Analisadores,
transformando
fluxos
de
bytes
em
informações
estruturadas
ou
informações
estruturas
em
fluxos
de
bytes.
v
Os
fluxos
de
dados
são
implementados
através
da
conexão
de
um
ou
mais
Conectores
juntos
(associando
Conectores
com
Analisadores,
onde
necessário).
v
Finalmente,
os
EventHandlers
podem
ser
configurados
para
selecionar
notificações
de
alteração
em
sistemas
conectados
(como
diretórios
ou
caixas
de
correio
POP3/IMAP)
e,
em
seguida,
despachar
esses
eventos
para
os
AssemblyLines
designados.
Antes
de
se
aprofundar
sobre
como
esses
componentes
trabalham,
você
precisa
obter
uma
visão
geral
dos
fluxos
de
dados
que
deseja
implementar.
Conforme
mencionado
anteriormente,
uma
boa
maneira
de
fazer
isso
é
criar
um
fluxograma.
Há
diversas
convenções
e
estilos
de
diagramação
disponíveis
para
se
escolher,
mas
a
forma
atual
e
o
tipo
dos
símbolos
é
menos
importante
do
que
a
compreensão
do
problema.
Utilize
caixas,
círculos,
bolhas
ou
qualquer
forma
que
deseje,
mas
seja
consistente
e
certifique-se
de
identificar
tudo
de
forma
clara
e
legível.
Dessa
forma,
ao
olhar
seu
diagrama
dois
meses
depois
(ou
caso
outra
pessoa
o
faça),
ele
continua
fazendo
sentido.
Uma
origem
de
dados
de
saída
(DS3)
obtém
dados
a
partir
de
uma
origem
de
dados
inicial
(DS1).
Ao
longo
do
percurso,
o
fluxo
de
dados
coleta
informações
de
uma
segunda
origem
de
dados
(DS2).
No
IBM
Tivoli
Directory
Integrator,
tal
fluxo
de
dados
é
referido
como
um
AssemblyLine.
É
importante
compreender
que
cada
AssemblyLine
implementa
um
fluxo
de
dados
unidirecional
único.
Caso
deseje
realizar
uma
sincronização
bidirecional
entre
duas
origens
de
dados
ou
mais,
você
deve
utilizar
um
AssemblyLines
separado
para
tratar
o
fluxo
em
cada
direção.
A
razão
para
isso
é
que
a
forma
e
o
conteúdo
dos
dados,
assim
como
as
operações
neles
executadas,
normalmente
são
diferentes
para
cada
direção.
Nota:
O
IBM
Tivoli
Directory
Integrator
fornece
tudo
o
que
é
necessário
para
criar
soluções
para
informações
do
tipo
pergunta-resposta,
como
Serviços
da
Web.Embora
não
haja
limites
para
o
número
de
Conectores
que
um
AssemblyLine
pode
conter,
o
AssemblyLines
deve
conter
o
menor
número
possível
de
Conectores
(por
exemplo,
um
para
cada
origem
de
dados
que
participe
do
fluxo),
enquanto
deve,
ao
mesmo
tempo,
incluir
componentes
e
lógica
de
script
suficientes
para
tornar
o
AssemblyLine
o
mais
autônomo
possível.
O
raciocínio
por
trás
disso
é
tornar
o
AssemblyLine
fácil
de
compreender
e
manter.
Essa
procedimento
também
resulta
em
soluções
mais
simples,
rápidas
e
redimensionáveis.
A
filosofia
do
IBM
Tivoli
Directory
Integrator
baseia-se
em
tratar
os
fluxos
de
dados
um
a
um,
simplificando
o
conjunto
dos
problemas,
portanto
vamos
iniciar
no
fluxo
que
vai
do
DS1
para
o
DS3.
A
forma
como
os
dados
são
organizados
pode
diferir
muito
de
sistema
para
sistema:
v
Normalmente,
os
bancos
de
dados
armazenam
informações
em
registros
com
um
número
fixo
de
campos.
v
Por
outro,
os
diretórios
trabalham
com
objetos
variáveis
chamados
entradas.
v
Outros
sistemas
podem
utilizar
mensagens
ou
pares
de
chave-valor.
Capítulo
2.
Simplificar
e
solucionar
5
O
IBM
Tivoli
Directory
Integrator
simplifica
essa
questão
coletando
e
armazenando
todos
os
tipos
de
informações
em
um
contêiner
de
dados
eficaz
e
flexível
chamado
Entry.
Por
sua
vez,
os
próprios
valores
de
dados
são
mantidos
em
objetos
chamados
Attributes
que
Entry
recebe
e
gerencia.
Outro
problema
potencial
é
que
essas
origens
utilizam
tipos
diferentes
para
representar
valores
armazenados.
O
IBM
Tivoli
Directory
Integrator
também
cuida
disso
para
você.
Tudo
que
é
enviado
para
o
fluxo
de
dados
é
convertido
em
um
formato
consistente
com
regras
predefinidas
(objetos
Java).
Como
resultado,
suas
regras
de
negócios
e
lógica
de
transformação
não
precisam
lidar
com
conflitos
de
tipo.
Quando
os
dados
estão
prontos
para
saída,
o
IBM
Tivoli
Directory
Integrator
os
converte
de
volta
para
os
tipos
pertinentes
específicos
da
origem
de
dados.
Para
concluir
a
visualização
do
fluxo
de
dados,
registre
como
os
atributos
da
origem
de
dados
de
entrada
são
mapeados
(e
possivelmente
modificados)
para
se
tornarem
os
atributos
do
sistema
de
destino.
Por
exemplo,
DS3
poderá
ser
semelhante
ao
seguinte:
Nome
=DS1.First
Sobrenome
=DS1.Last
Nome
Completo
=DS1.First+"
"+DS1.Last
Ocupação
=DS1.Title
Correio
=<nome_do_computador>
Para
manter
a
simplicidade
do
exemplo,
utilize
um
arquivo
de
valor
separado
por
vírgulas
como
o
DS1
que
contém
os
campos
First,
Last
e
Title.
Sua
origem
de
dados
de
saída
(DS3)
é
o
documento
em
XML.
Agora
que
você
possui
uma
boa
representação
da
solução,
vamos
ver
como
o
IBM
Tivoli
Directory
Integrator
trata
os
fluxos
de
dados.
Arquitetura
A
arquitetura
do
IBM
Tivoli
Directory
Integrator
é
dividida
em
duas
partes:
v
O
sistema
principal,
no
qual
a
maior
parte
da
funcionalidade
do
sistema
é
fornecida.
O
núcleo
do
IBM
Tivoli
Directory
Integrator
trata
de
arquivos
de
log,
detecção
e
despacho
de
erros
e
parâmetros
de
execução
do
fluxo
de
dados.
E
nele
também
que
são
mantidas
a
configuração
personalizada
e
a
lógica
de
negócios.
v
Os
componentes,
que
servem
para
separar
os
detalhes
técnicos
dos
sistemas
e
formatos
de
dados
com
os
quais
deseja
trabalhar.
O
IBM
Tivoli
Directory
Integrator
fornece
três
tipos
de
componentes:
–
Conectores
–
Analisadores
–
EventHandlers
Como
cada
um
é
agrupado
pela
funcionalidade
principal
que
trata
de
coisas
como
controle
de
fluxo
de
integração
e
personalização,
os
próprios
componentes
podem
permanecer
pequenos
e
leves.
Por
exemplo,
se
você
quiser
implementar
seu
próprio
Analisador,
será
necessário
fornecer
apenas
duas
funções:
uma
para
interpretar
a
estrutura
de
um
fluxo
de
bytes
de
entrada
e
outra
para
adicionar
a
estrutura
a
um
fluxo
de
bytes
de
saída.
Se
você
examinar
o
subdiretório
jars
do
IBM
Tivoli
Directory
Integrator
verá
como
são
leves
os
componentes
padrão,
o
que
facilita
sua
criação
e
a
extensão.
O
design
desse
componente/principal
torna
o
IBM
Tivoli
Directory
Integrator
facilmente
extensível.
Isso
também
significa
que
você
pode
construir
rapidamente
a
6
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
estrutura
das
soluções
selecionando
os
componentes
pertinentes
e
clicando
neles
no
local.
Os
componentes
são
intercambiáveis
e
podem
ser
trocados
sem
afetar
a
lógica
personalizada
e
o
comportamento
configurado
dos
fluxos
de
dados.
Isso
significa
que
você
pode
construir
soluções
de
integração
que
são
rapidamente
adicionadas
e
estendidas,
enquanto
as
mantêm
menos
vulneráveis
para
alterações
na
infra-estrutura
subjacente.
AssemblyLines
As
setas
do
fluxo
de
dados
no
diagrama
convertem
do
IBM
Tivoli
Directory
Integrator
para
o
AssemblyLines,
que
trabalha
de
maneira
similar
às
linhas
de
montagem
industriais
do
mundo
real.
As
linhas
de
montagem
reais
são
constituídas
por
um
número
de
máquinas
especializadas
que
diferem
tanto
na
função
quanto
na
construção,
mas
possuem
um
atributo
significativo
em
comum:
podem
ser
interligadas
para
formarem
um
caminho
contínuo,
desde
as
origens
de
entrada
até
a
saída.
Uma
linha
de
montagem
normalmente
possui
uma
ou
mais
unidades
projetadas
para
aceitarem
qualquer
que
seja
a
matéria-prima
necessária,
por
exemplo,
filés
de
peixe,
xarope
de
cola,
peças
de
automóveis
e
assim
por
diante.
Esses
ingredientes
são
processados
e
misturados
em
conjunto.
Algumas
vezes,
produtos
secundários
são
extraídos
da
linha
de
montagem
ao
longo
do
caminho.
No
final
da
linha
de
produção,
as
mercadorias
prontas
são
entregues
para
as
unidades
de
saída
à
espera.
Se
a
equipe
de
produção
recebe
ordem
para
produzir
outra
coisa,
eles
desmontam
a
linha,
mantendo
as
máquinas
que
ainda
são
relevantes
para
a
nova
ordem.
As
novas
unidades
são
conectadas
nos
lugares
corretos,
a
linha
é
ajustada
e
a
produção
começa
novamente.
Os
AssemblyLines
do
IBM
Tivoli
Directory
Integrator
trabalham
de
maneira
similar.
Os
AssemblyLines
do
IBM
Tivoli
Directory
Integrator
recebem
informações
de
diversas
unidades
de
entrada,
realizam
operações
nessas
entradas
e
transportam
os
produto
finalizado
através
das
unidades
de
saída.
Os
AssemblyLines
do
IBM
Tivoli
Directory
Integrator
trabalham
com
um
item
por
vez,
por
exemplo,
um
registro
de
dados,
uma
entrada
de
diretório,
uma
chave
de
registro
e
assim
por
diante.
Os
atributos
de
dados
das
origens
de
entrada
conectadas
são
acumulados
em
um
depósito
Java
(chamado
de
objeto
de
trabalho)
e
os
scripts
que
são
adicionados
trabalham
com
essas
informações:
verificando
o
conteúdo
dos
dados,
computando
novos
valores
e
atributos,
bem
como
alterando
os
já
existentes,
até
que
os
dados
estejam
prontos
para
a
entrega
de
uma
linha
para
uma
ou
mais
origens
de
saída.
As
unidades
de
entrada
e
saída
de
um
AssemblyLine
do
IBM
Tivoli
Directory
Integrator
são
chamadas
Conectores
e
cada
Conector
está
vinculado
a
um
armazenamento
de
dados.
Os
conectores
ligam
o
fluxo
de
dados
ao
mundo
exterior
e
também
estão
onde
ocorrem
a
transformação
e
agregação
de
dados.
Também
se
encontram
onde
você
possa
criar
camadas
para
sua
lógica
comercial,
de
segurança
e
de
gerenciamento
de
identificação.
Conectores
Os
conectores
são
como
peças
de
um
quebra-cabeças
que
se
encaixam,
enquanto
ao
mesmo
tempo
se
vinculam
a
uma
origem
de
dados
específica.
Capítulo
2.
Simplificar
e
solucionar
7
Cada
vez
que
você
seleciona
uma
dessas
peças
de
quebra-cabeças
e
a
inclui
em
um
AssemblyLine,
você
deve
fazer
o
seguinte:
1.
Escolher
o
tipo
de
Conector.
2.
Atribuir
ao
Conector
sua
função
no
fluxo
de
dados.
Isso
é
chamado
de
modo
Conector
e
informa
ao
IBM
Tivoli
Directory
Integrator
como
utilizar
o
Conector:
v
Um
Conector
de
entrada
interagindo
ou
buscando
informações
em
sua
origem.
v
Um
Conector
de
saída,
inserindo,
atualizando
ou
excluindo
dados
no
sistema
ou
no
dispositivo
conectado.
Nota:
Os
dados
devem
ser
retirados
das
origens
de
entrada
e
em
seguida
colocados
nos
destinos
de
saída.
É
esse
o
trabalho
que
os
conectores
desempenham.
Você
pode
alterar
o
tipo
e
o
modo
de
um
Conector
de
acordo
com
a
sua
vontade
para
atender
às
alterações
na
infra-estrutura
ou
nos
objetivos
da
solução.
Se
você
tiver
planejado
isso
eventualmente,
então
o
restante
do
AssemblyLine,
incluindo
transformações
e
filtragem
de
dados,
não
será
influenciado.
Por
isso
é
importante
tratar
cada
Conector
como
uma
caixa
preta
que
tanto
entrega
quanto
cruza
dados,
ou
extrai
parte
deles
para
enviar
para
uma
origem
de
dados.
Quanto
mais
independente
for
um
Conector,
mais
fácil
será
ampliar
e
manter
sua
solução.
Tornando
seus
Conectores
o
mais
autônomos
possível,
você
também
pode
transferi-los
prontamente
para
sua
Biblioteca
de
Conectores
e
reutilizá-los
para
criar
novas
soluções
de
maneira
mais
rápida
e
compartilhá-las
com
outros.
A
utilização
do
recurso
de
biblioteca
do
IBM
Tivoli
Directory
Integrator
também
facilita
a
manutenção
e
o
aperfeiçoamento
de
seus
Conectores,
uma
vez
que
tudo
o
que
você
tem
de
fazer
é
atualizar
o
gabarito
do
Conector
em
sua
biblioteca
e
todos
os
AssemblyLines
derivados
desse
gabarito
herdarão
esses
aperfeiçoamentos.
Quando
sua
solução
estiver
pronta
para
funcionar,
você
poderá
reconfigurar
sua
biblioteca
de
Conectores
para
se
conectar
às
origens
de
dados
de
produção,
em
vez
daquelas
em
seu
ambiente
de
testes,
e
mover
sua
solução
do
laboratório
para
a
implementação
real
em
questão
de
minutos.
Sempre
que
precisar
incluir
novos
dados
ao
fluxo,
simplesmente
adicione
o
Conector
pertinente
ao
AssemblyLine.
IBM
Tivoli
Directory
Integrator
fornece
uma
biblioteca
de
Conectores
a
sua
escolha,
como
LDAP,
JDBC,
Microsoft
NT4
Domain,
Lotus
Notes
e
POP3/IMAP.
E,
caso
não
encontre
o
que
está
procurando,
você
pode
estender
um
Conector
existente
substituindo
uma
ou
todas
as
suas
funções
utilizando
uma
das
linguagens
de
criação
de
scripts
líderes
de
mercado,
incluindo
JavaScript,
VBScript
e
PerlScript.
Você
pode
até
mesmo
criar
seu
próprio
Conector,
com
uma
linguagem
de
criação
de
scripts
dentro
do
wrapper
Conector
de
Scripts,
ou
a
partir
de
esboço
utilizando
Java
ou
C/C++.
Além
disso,
o
IBM
Tivoli
Directory
Integrator
suporta
a
maioria
dos
protocolos
e
mecanismos
de
transporte,
como
TCP/IP,
FTP,
HTTP
e
JMS
(MQ)
com
ou
sem
SSL
ou
outros
mecanismos
de
criptografia
para
proteger
o
fluxo
de
informações.
Para
obter
informações
adicionais
sobre
linguagens
de
criação
de
scripts
e
como
criar
a
sua
própria
linguagem,
consulte
o
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Referência.
8
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Analisadores
Mesmo
dados
não
estruturados,
como
arquivos
de
texto
e
fluxos
de
bytes
provenientes
de
uma
porta
IP,
são
tratados
de
forma
rápida
e
simples
com
o
IBM
Tivoli
Directory
Integrator
transmitindo
o
fluxo
de
bytes
através
de
um
ou
mais
Analisadores.
Analisadores
são
outro
tipo
de
componente
do
IBM
Tivoli
Directory
Integrator
e
o
sistema
é
fornecido
com
vários
Analisadores,
incluindo
LDIF,
DSML,
XML,
CSV
e
Campo
de
comprimento
fixo.
E,
exatamente
como
os
Conectores,
você
pode
estendê-los
ou
modificá-los,
bem
como
criar
o
seu
próprio.
Dando
continuidade
ao
exemplo
da
página
6,
a
próxima
etapa
é
identificar
as
origens
de
dados.
Uma
vez
que
a
origem
de
dados
entrada
é
um
arquivo
de
texto
em
formato
de
valor
separado
por
vírgula,
você
pode
utilizar
o
Conector
File
System
emparelhado
com
o
Analisador
CSV.
Utilize
um
Conector
Sistema
de
Arquivos
também
para
a
saída,
mas
dessa
vez
escolha
o
Analisador
XML
para
formatar
o
arquivo
como
um
documento
XML.
Nota:
Os
exemplos
deste
manual
foram
criados
em
uma
plataforma
UNIX
e
utilizam
as
convenções
de
nomenclatura
de
caminho
do
UNIX.
Para
que
sua
solução
seja
independente
de
plataformas,
utilize
a
barra
(/)
ao
invés
da
barra
invertida
(\)
nos
nomes
do
seu
caminho,
por
exemplo
examples/Tutorial/Tutorial1.cfg.
Isso
funciona
nas
plataformas
Windows
e
UNIX/Linux.
EventHandlers
EventHandlers
são
o
terceiro
tipo
de
componente
do
IBM
Tivoli
Directory
Integrator
e
fornecem
funcionalidade
para
construir
soluções
de
integração
em
tempo
real.
Da
mesma
forma
que
os
Conectores,
os
EventHandlers
podem
ter
a
inteligência
da
origem
de
dados
que
pode
permitir
que
se
conectem
a
um
sistema
ou
serviço
e
aguardem
uma
notificação
de
evento.
Exemplos
são
o
EventHandler
Mailbox
que
pode
detectar
quando
novas
mensagens
chegam
em
uma
caixa
postal
POP3
ou
IMAP
ou
o
EventHandler
LDAP
que
pode
capturar
as
alterações
feitas
em
um
diretório.
Quando
ocorre
um
evento,
o
EventHandler
armazena
informações
específicas
do
evento
e,
em
seguida,
executa
a
lógica
e
inicia
os
AssemblyLines
de
acordo
com
as
regras
de
condição/ação
configuradas.
Às
vezes,
os
Conectores
também
podem
ser
utilizados
para
capturar
eventos,
como
é
o
caso
com
o
Conector
JMS
ou
o
Conector
LDAP
Changelog,
que
podem
ser
configurados
para
aguardar
até
os
novos
dados
aparecerem
e,
então,
recuperá-los.
No
entanto,
como
o
EventHandler
opera
em
seu
próprio
thread,
eles
podem
ser
utilizados
para
despachar
eventos
para
vários
AssemblyLines.
Isso
fornece
um
limpador
e
um
método
mais
direto
de
filtragem
e
tratamento
de
vários
tipos
de
eventos
da
mesma
origem
(por
exemplo,
chamadas
SOAP
ou
Serviços
da
Web).
Os
EventHandlers
também
podem
ser
configurados
para
Início
Automático,
o
que
significa
que
se
você
inicializar
um
servidor
com
o
Config,
esses
EventHandlers
serão
imediatamente
ativados.
Isso
evita
de
precisar
nomear
especificamente
os
AssemblyLines
para
execução
nos
parâmetros
da
linha
de
comandos
para
o
servidor.
Agora
que
já
foi
apresentado
aos
componentes
que
o
IBM
Tivoli
Directory
Integrator
utiliza,
você
estará
pronto
para
construir
o
AssemblyLine.
No
entanto,
antes
de
continuar,
você
precisa
de
um
arquivo
de
entrada.
Você
pode
localizar
um
exemplo
de
tal
arquivo
no
subdiretório
examples\Tutorial
no
diretório
em
que
o
Capítulo
2.
Simplificar
e
solucionar
9
IBM
Tivoli
Directory
Integrator
foi
instalado
ou
criar
o
seu
próprio
com
um
editor
de
texto.
Os
dados
de
amostra
incluídos
são
semelhantes
ao
seguinte:
First;Last;Title
Bill;Sanderman;Chief
Scientist
Mick;Kamerun;CEO
Jill;Vox;CTO
Roger
Gregory;Highpeak;VP
Product
Development
Ernie;Hazzle;Chief
Evangelist
Peter;Belamy;Business
Support
Manager
Esse
arquivo
chama-se
People.csv
e
está
localizado
na
pasta
examples/Tutorial
do
diretório
de
instalação
do
IBM
Tivoli
Directory
Integrator.
Quando
ele
está
no
local,
você
está
pronto
para
construir
sua
solução
utilizando
o
IBM
Tivoli
Directory
Integrator.
10
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
Desenvolvimento
Rápido
de
Integração
O
IBM
Tivoli
Directory
Integrator
é
realmente
composto
de
dois
programas:
Toolkit
IDE
Este
programa
oferece
uma
interface
gráfica
para
criar,
testar
e
depurar
suas
soluções
de
integração.
O
Toolkit
Integrated
Development
Environment
é
utilizado
para
criar
um
arquivo
de
configuração
(chamado
de
arquivo
Config)
que
é
iniciado
pelo
mecanismo
de
tempo
de
execução.
O
arquivo
executável
do
Toolkit
IDE
chama-se
ibmditk.
Servidor
de
Tempo
de
Execução
Utilizando
o
Config
que
foi
criado
com
o
Toolkit
IDE
(e
que
está
armazenado
como
um
documento
XML
altamente
estruturado),
o
Run-time
Server
fortalece
a
solução
de
integração.
Este
arquivo
de
programa
é
chamado
ibmdisrv
e
você
pode
implementar
sua
solução
utilizando
quantas
instâncias
do
servidor
desejar.
Não
há
limitações
impostas
pela
tecnologia
IBM
Tivoli
Directory
Integrator.
Inicie
o
Toolkit
IDE.
Após
alguns
instantes
aparecerá
a
Tela
Principal.
Daqui
você
pode
criar
um
novo
Config,
que
pode
ser
revisitado.
Nota:
Se
a
tela
que
você
vir
for
diferente
das
capturas
de
tela
neste
manual,
seu
sistema
poderá
estar
com
uma
definição
de
exibição
diferente.
Faça
o
seguinte
para
alterar
a
definição
de
exibição:
1.
Clique
em
Arquivo–>Editar
Preferências.
2.
Clique
na
guia
Aparência.
3.
Clique
na
guia
Look
&
Feel.
A
janela
IBM
Tivoli
Directory
Integrator
é
redimensionável.
Se
as
capturas
de
tela
neste
manual
não
corresponderem
à
sua
própria
experiência,
tente
alterar
o
tamanho
da
janela
da
tela.
A
seleção
Arquivo–>Editar
Preferências
abre
um
diálogo
no
qual
você
pode
definir
uma
série
de
outros
parâmetros
de
interface
com
o
usuário,
como
se
a
barra
de
ferramentas
de
botões
principal
ficará
visível
ou
não
ou
se
você
deseja
que
o
IBM
Tivoli
Directory
Integrator
utilize
a
Barra
de
Status
na
parte
inferior
da
janela.
O
Menu
Principal
e
a
barra
de
ferramentas
de
botões
estão
na
parte
superior
da
tela.
©
Copyright
IBM
Corp.
2002,
2003
11
A
Barra
de
Ferramentas
Principal
fornece
comandos
para
criação
de
novos
Configs,
abrindo
os
existentes
e
salvando
seu
trabalho
atual,
bem
como
alguns
botões
de
navegação.
Estes
mesmos
comandos
também
estão
disponíveis
sob
os
menus
Arquivo
e
Janela,
onde
você
também
encontra
a
seleção
Salvar
como
para
salvar
suas
configurações
para
um
novo
nome
do
arquivo.
Criando
uma
Nova
Configuração
Os
Configs
do
IBM
Tivoli
Directory
Integrator
são
armazenados
como
documentos
XML.
Eles
são
criados
e
mantidos
no
Toolkit
IDE
e
implementados
com
o
Servidor.
Cada
Config
contém
os
AssemblyLines
que
um
Servidor
executa,
bem
como
os
componentes
do
IBM
Tivoli
Directory
Integrator
que
compõem
essas
linhas.
O
Config
também
contém
as
preferências
do
usuário,
como
cores
e
o
estilo
da
interface
GUI.
Nota:
Os
Configs
também
podem
ser
espalhados
por
diversos
arquivos
e
armazenados
em
diversas
localizações.
O
IBM
Tivoli
Directory
Integrator
monta
sua
configuração
de
forma
dinâmica
na
inicialização,
utilizando
URLs
inclusivas
e
caminhos
de
arquivos
especificados
por
você.
Isso
significa
que
você
pode
criar
e
manter
definições
e
componentes
empresariais
que
podem
12
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
ser
compartilhados
por
diversas
configurações
de
servidores.
Você
também
pode
abrir
e
trabalhar
em
vários
Configs
de
uma
vez,
arrastando
e
soltando
componentes
entre
eles.
Ao
iniciar
o
sistema
pela
primeira
vez,
você
será
apresentado
à
tela
vazia,
conforme
figura
anterior.
Se
criar
um
novo
Config,
IBM
Tivoli
Directory
Integrator
perguntará
se
você
deseja
criar
o
Config
padrão,
chamado
rs.xml.
Em
vez
de
utilizar
o
nome
Config
padrão,
dê
ao
arquivo
um
nome
diferente.
Clique
no
botão
Criar
uma
raiz
de
Nova
Configuração
ou
utilize
a
seleção
de
menu
Arquivo–>Novo
para
criar
um
Config
chamado
Tutorial1
(observe
que
a
extensão
.xml
é
adicionada
para
você).
Este
arquivo
deve
ser
salvo
no
diretório
examples/Tutorial.
Nota:
Os
nomes
de
caminhos
podem
ser
escritos
como
relativos
ao
diretório
por
você
especificado
ao
instalar
o
IBM
Tivoli
Directory
Integrator.
A
exibição
em
árvore
no
lado
esquerdo
da
tela
é
chamada
de
Navegador
de
Configuração
e
apresenta
um
conjunto
de
pastas
que
contêm
vários
aspectos
da
solução.
A
pasta
na
parte
superior
rotulada
AssemblyLines
contém
os
AssemblyLines
criados.
Logo
abaixo
há
três
pastas
nas
quais
você
armazena
sua
biblioteca
de
componentes
(uma
pasta
para
cada
tipo
de
componente).
Isso
permite
configurar
Conectores
padrão
(por
exemplo,
LDAP,
JDBC,
Notes
e
assim
por
diante)
com
parâmetros
de
configuração
e
comportamento,
transformações
de
dados
e
outras
regras
de
negócios
e,
em
seguida,
utilizá-los
e
reutilizá-los
para
criar
novas
soluções.
Sem
entrar
em
detalhes
sobre
a
interface
Toolkit
IDE,
aqui
está
o
layout
geral
dessas
telas
de
configuração:
v
O
restante
da
tela
abaixo
da
Barra
de
Ferramentas
é
organizado
em
áreas
de
janela.
O
Navegador
de
Configuração
aparece
à
esquerda,
embora
você
possa
ocultar
e
mostrar
essa
área
de
janela
utilizando
o
botão
Alternar
Exibição
em
Árvore
da
Configuração
na
Barra
de
Ferramentas
principal
ou
clicando
nas
setas
na
parte
superior
da
barra
de
divisão
próxima
ao
Navegador
de
Configuração.
À
direita
dessa
área
de
janela
há
uma
área
Detalhes
que
é
alterada
para
mostrar
os
detalhes
de
itens
selecionados
no
Navegador
de
Configuração.
v
A
área
de
janela
Detalhes
pode
mostrar
várias
exibições
detalhadas,
abrindo
uma
nova
exibição
sempre
que
você
selecionar
outro
item
no
Navegador
de
Configuração.
Essas
áreas
de
janela
podem
ser
acessadas
utilizando-se
o
menu
Janela
ou
utilizando
guias
na
parte
superior
de
cada
exibição
(dependendo
de
como
você
definir
a
aparência
do
sistema).
v
Algumas
área
de
janela
Detalhes
também
contêm
listas
de
itens.
A
área
Detalhes
também
adapta-se
para
mostrar
os
detalhes
desses
itens
se
você
clicar
neles.
v
Altere
o
espaço
alocado
para
qualquer
coluna
em
uma
lista
movendo
o
cursor
do
mouse
sobre
o
limite
entre
as
colunas
(o
cursor
indica
o
que
você
pode
fazer
ao
alterar
a
forma)
e,
em
seguida,
clicando
e
arrastando
o
limite
até
sua
nova
localização.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
13
v
Na
parte
superior
de
cada
Lista
de
Elementos
há
uma
linha
de
botões
que
fornece
o
conjunto
de
operações
disponíveis
para
aquele
tipo
de
objeto
(no
caso
da
área
de
janela
do
fluxo
de
dados,
a
barra
de
botões
está
sob
a
lista
Conectores).
A
lista
de
operações
disponíveis
varia
de
área
de
janela
para
área
de
janela,
mas
o
comportamento
geral
é
o
mesmo:
selecionar
uma
entrada
na
lista
e,
em
seguida,
clicar
no
botão
(com
exceção
do
botão
Incluir,
no
qual
não
é
necessário
selecionar
nada
primeiro).
v
Você
pode
selecionar
diversos
elementos
clicando
de
uma
vez
pressionando
Shift
ou
Ctrl
ao
realçar
itens
nas
listas.
v
Você
pode
arrastar
itens
do
Navegador
de
Configuração
para
os
AssemblyLines
ou
entre
Configs
abertos.
Criando
um
AssemblyLine
A
primeira
coisa
que
você
deve
fazer
é
criar
um
novo
AssemblyLine.
Clique
com
o
botão
direito
do
mouse
na
Pasta
AssemblyLine.
A
partir
do
menu
sensível
ao
contexto
que
aparece,
selecione
Novo
AssemblyLine.
Nomeie
esse
AssemblyLine
como
CSVtoXML.
Você
pode
dar
ao
AssemblyLine
o
nome
que
quiser,
mas
é
importante
utilizar
uma
convenções
de
nomenclatura
que
ajude
a
documentar
sua
solução.
Nota:
A
utilização
de
caracteres
especiais
e
de
espaços
na
nomenclatura
do
AssemblyLines
ou
dos
componentes
do
IBM
Tivoli
Directory
Integrator
(como
Conectores
e
EventHandlers)
não
é
uma
boa
idéia,
pois
pode
causar
problemas
posteriormente,
quando
você
desejar
iniciar
o
Servidor
do
IBM
Tivoli
Directory
Integrator
a
partir
de
um
prompt
de
comandos
para
executar
sua
solução.
Nos
AssemblyLines,
os
componentes
e
outros
itens
Config
na
solução
estão
disponíveis
na
solução
como
objetos
de
script,
permitindo
que
você
altere
os
parâmetros
e
o
comportamento
no
tempo
de
execução.
Isso
significa
que
você
deseja
utilizar
nomes
que
permitem
fazer
referência
a
esses
objetos
nos
scripts.
O
IBM
Tivoli
Directory
Integrator
agora
leva
você
até
a
tela
AssemblyLine.
Observe
que
essa
nova
tela
preenche
a
área
de
janela
de
configuração
que
estava
anteriormente
vazia.
Antes
de
incluir
os
Conectores,
dê
uma
olhada
rápida
no
layout
da
tela
do
AssemblyLine:
14
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Na
parte
superior
de
Detalhes
há
uma
linha
de
guias,
cada
uma
associada
a
um
item
aberto
do
Navegador
de
Configuração
(nesse
caso,
os
Detalhes
do
novo
AssemblyLine
são
exibidos).
No
título
de
cada
guia
há
uma
linha
de
botões
que
inclui
um
botão
Fechar
para
fechar
essa
tela
de
detalhes.
Nota:
As
ToolTips
aparecem
se
deixar
o
cursor
sobre
qualquer
um
dos
botões
na
Ferramenta
Config.
Junto
com
o
botão
Fechar,
a
linha
de
botões
inclui
outros
dois
botões:
Executar
Executa
o
AssemblyLine
atual.
Executar
Depuração
IBM
Tivoli
Directory
Integrator
inclui
um
depurador
de
fluxo
de
dados
que
permite
percorrer
o
AssemblyLine,
vendo
os
dados
serem
transportados
e
transformados
dentro
do
AssemblyLine,
conforme
o
controle
é
transmitido
de
Conector
para
Conector.
A
caixa
branca
do
lado
esquerdo
da
tela
de
Detalhes
do
AssemblyLine
é
a
Lista
de
Conectores
na
qual
aparecem
novos
Conectores
conforme
são
adicionados
ao
fluxo.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
15
Abaixo
da
Lista
de
Conectores
está
a
exibição
Entrada
de
trabalho.
Ela
permite
examinar
o
fluxo
de
dados,
mostrando
sempre
os
atributos
de
dados
que
estão
sendo
lidos
a
partir
dos
sistemas
conectados.
À
direita
dessas
listas
é
o
local
onde
os
detalhes
do
Conector
atualmente
selecionado
são
exibidos.
Na
parte
superior
dessa
área
de
detalhes
estão
as
guias
do
AssemblyLine.
Essas
guias
fornecem
acesso
a
vários
aspectos
desse
fluxo
de
dados:
Essas
guias
são:
Ganchos
A
guia
Ganchos
do
AssemblyLine
permite
configurar
scripts
para
serem
avaliados
ou
iniciados:
v
Antes
dos
Conectores
serem
inicializados
(permitindo
a
reconfiguração
dos
Conectores
antes
deles
ativarem
suas
conexões).
v
Após
a
inicialização
do
Conector,
mas
antes
do
controle
ser
transmitido
para
o
primeiro
Conector.
v
Depois,
o
último
Conector
termina
v
Quando
a
AssemblyLine
é
pedida
para
terminar
algum
evento
externo
Fluxo
de
Dados
Onde
os
Conectores
são
criados
e
mantidos.
Configurar...
Oferece
um
número
de
parâmetros
de
configuração
para
este
AssemblyLine.
Chamar/Retornar
É
onde
você
pode
especificar
os
parâmetros
de
entrada
e
saída
para
este
AssemblyLine
para
facilitar
a
chamada
dele
a
partir
de
um
processo
externo
(por
exemplo,
um
EventHandler).
Se
clicar
na
guia
Configurar...,
você
verá
que
pode
definir
parâmetros,
como
a
linguagem
de
criação
de
scripts
que
você
deseja
utilizar
neste
AssemblyLine,
bem
como
limitar
o
número
de
repetições
(útil
ao
desenvolver
e
testar
seu
AssemblyLine
em
grandes
conjuntos
de
dados).
Nota:
Independente
de
qual
linguagem
de
criação
de
scripts
você
selecionou
para
utilizar
em
seu
AssemblyLine,
o
IBM
Tivoli
Directory
Integrator
permite
que
você
utilize
componentes
que
foram
criados
com
script
utilizando
outras
linguagens.
Você
pode
compor
sua
lógica
de
AssemblyLine
em
JavaScript,
mas
ainda
utilizar
o
Conector
criado
com
o
VBScript,
bem
como
seu
Analisador
baseado
em
PerlScript,
contanto
que
a
linguagem
de
script
escolhida
seja
suportada
pela
plataforma
em
que
você
está
executando
o
IBM
Tivoli
Directory
Integrator.
Logo
abaixo
da
caixa
Conectores
está
a
barra
de
botões
da
Lista
de
Conectores,
oferecendo
uma
série
de
operações
para
trabalhar
com
os
Conectores:
16
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Esses
botões
executam
as
seguintes
ações:
Incluir
Conector
Inclui
um
um
novo
Conector
para
o
AssemblyLine.
Isso
também
pode
ser
feito
arrastando-se
um
Conector
predefinido
do
Navegador
de
Configuração
na
Lista
de
Conectores.
Incluir
Componente
de
Script
Inclui
um
um
novo
Conector
para
o
AssemblyLine.
Um
Componente
de
Script
é
um
bloco
de
script
que
pode
ser
colocado
em
um
AssemblyLine.
Excluir
Remove
o
Conector
ou
Componente
de
Script
selecionado
atualmente
do
AssemblyLine.
Renomear
Permite
alterar
o
nome
do
item
atualmente
selecionado.
Ativado
Move
o
Conector
ou
Comando
de
Script
selecionado
um
ponto
para
cima
em
direção
ao
início
do
AssemblyLine.
Essa
posição
é
significativa,
uma
vez
que
o
AssemblyLine
executa
esses
itens
de
cima
para
baixo.
Desativado
Move
o
item
selecionado
para
baixo
em
direção
ao
final
da
lista.
Copiar
para
Biblioteca
Faz
uma
cópia
do
Conector
selecionado
e
o
solta
em
sua
Biblioteca
de
Conectores
(na
pasta
Conectores
no
Navegador
de
Configuração).
Incluindo
o
Conector
de
Entrada
Clique
em
Incluir
para
criar
o
primeiro
Conector
Chame-o
de
InputPeople
e
clique
na
lista
drop
down
Conector.
Agora
selecione
o
gabarito
File
System
na
lista,
que
mostra
os
Conectores
fornecidos
com
o
sistema,
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
17
além
de
todos
os
que
estão
registrados
na
Biblioteca
de
Conectores
(na
pasta
Conectores).
Os
componentes
da
biblioteca
são
mostrados
na
parte
superior
dessas
listas
drop
down
de
seleção.
O
último
parâmetro
a
ajustar
aqui
é
o
Modo
do
Conector,
que
informa
ao
AssemblyLine
a
função
desse
Conector.
O
IBM
Tivoli
Directory
Integrator
tem
seis
modos
de
Conector:
Incluir
Apenas
Este
é
o
modo
para
Conectores
que
adiciona
novas
informações
somente
à
origem
de
dados,
por
exemplo,
gravando
em
arquivos,
ocupando
um
banco
de
dados
ou
diretório
pela
primeira
vez
e
assim
por
diante.
Excluir
Excluir
modos
faz
com
que
o
Conector
procure
uma
entrada/registro
para
exclusão.
A
especificação
de
chaves
para
utilizar
a
pesquisa
é
chamada
de
Critérios
de
Vínculo.
Os
Critérios
de
Vínculo
devem
ser
especificados
para
Conectores
que
também
executam
Pesquisa
e
Atualização,
pois
esses
modos
também
requerem
que
o
Conector
localize
os
dados
correspondentes
no
sistema
conectado.
Repetidor
Um
Conector
no
modo
Iterator
é
executado
através
da
origem
de
dados
(ou
como
parte
dela,
por
exemplo,
uma
exibição
de
um
banco
de
dados
ou
conjunto
de
resultados
de
uma
pesquisa
de
diretório)
e
retorna
as
entradas
uma
de
cada
vez
para
processamento
no
AssemblyLine.
Os
Conectores
no
modo
Iterator
são
denominados
Iterators.
Um
AssemblyLine
pode
conter
mais
de
um
Repetidor
e
eles
são
iniciados
em
sucessão,
o
segundo
Repetidor
tendo
início
quando
o
primeiro
atinge
o
final
de
seu
conjunto
de
dados.
Procurar
Este
modo
faz
com
que
o
Conector
localize
e
retorne
entradas
correspondentes
a
um
critério
de
pesquisa
especificado
e
é
como
você
coleta
informações
em
um
fluxo
de
dados.
Atualizar
No
modo
Atualizar,
um
Conector
tenta
localizar
a
entrada
ou
registro
especificado.
Se
o
Conector
tiver
êxito,
as
entradas
existentes
serão
modificadas
com
as
informações
transmitidas
ao
Conector.
Se
a
procura
falhar,
o
Conector
inclui
a
informação
em
substituição.
Chamada/Retorno
Esse
é
um
modo
muito
especial
que
primeiro
gera
um
pacote
de
chamada
(como
uma
mensagem
SOAP
ou
entrada
JMS)
e,
em
seguida,
aguarda
uma
resposta.
Se
quiser
utilizar
o
Conector
Web
Service,
então
ele
deverá
ser
definido
para
o
modo
Chamar/Retornar.
Nota:
Nem
todos
os
modos
estão
disponíveis
para
todos
os
Conectores.
Por
exemplo,
se
você
está
trabalhando
com
um
arquivo
simples,
Procurar,
Excluir,
Atualizar
e
Chamar/Retornar
não
são
suportados
(a
menos
que
você
componha
seu
próprio
Conector
ou
aperfeiçoe
um
Conector
existente).
Não
há
limite
para
o
número
de
Conectores
que
um
AssemblyLine
pode
conter,
e
você
pode
ter
quantos
Conectores
do
mesmo
tipo
quiser,
mesmo
que
conectados
a
mesma
origem
de
dados.
Em
alguns
casos,
isso
é
até
necessário.
Por
exemplo,
suponha
que
você
deseja
criar
um
AssemblyLine
para
excluir
todos
os
registros
em
uma
origem
de
dados.
Primeiro,
configure
um
Repetidor
(por
exemplo,
um
Conector
no
modo
Iterator)
para
retornar
os
objetos
que
deseja
excluir.
Em
18
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
seguida,
adicione
um
segundo
Conector
configurado
para
trabalhar
com
o
mesmo
sistema,
mas
dessa
vez
defina
o
modo
Delete.
Como
resultado,
o
AssemblyLine
fará
loop
através
da
origem
de
entrada,
transmitindo
Entradas
para
o
segundo
Conector
que
as
exclui.
Às
vezes,
não
é
desejável
ter
conexões
simultâneas
múltiplas
para
a
mesma
origem
de
dados.
Pode
até
mesmo
ser
impossível
devido
ao
bloqueio
do
recurso
ou
aos
limites
impostos
pelas
licenças
de
software.
Nesse
caso,
você
pode
fazer
com
que
o
IBM
Tivoli
Directory
Integrator
reutilize
uma
conexão
existente
ao
adicionar
um
novo
Conector,
rolando
para
a
parte
inferior
da
lista
drop
down
Tipo
de
Conector.
Nela
você
localiza
os
nomes
de
outros
Conectores
na
AssemblyLine,
que
aparecem
com
um
símbolo
at
(
@
)
na
frente
de
seus
nomes.
Quando
tiver
nomeado
seu
Conector
e
definido
tipo
e
modo
(consulte
“Incluindo
o
Conector
de
Entrada”
na
página
17),
clique
em
OK
para
confirmar
suas
escolhas.
Esse
novo
Conector
aparece
na
Lista
de
Conectores
do
AssemblyLine
ao
lado
esquerdo
da
área
de
janela
de
configuração.
Observe
como
as
informações
específicas
do
Conector
atualmente
selecionado
são
exibidas
agora
na
área
de
exibição
Detalhes
à
direita
da
lista.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
19
Se
posteriormente,
você
quiser
alterar
o
tipo
de
Conector,
simplesmente
clique
no
link
Herdar
de:
na
parte
superior
da
área
de
janela
detalhes
(próxima
ao
drop
down
Estado)
e
escolha
um
diferente.
A
primeira
coisa
afazer
com
qualquer
Conector
que
você
inclua
é
configurá-lo.
Certifique-se
de
que
a
guia
Configuração
esteja
selecionada
na
exibição
detalhes
do
Conector
(conforme
mostrado
acima).
Essa
guia
está
estritamente
ligada
à
origem
de
dados
a
qual
você
está
se
conectando
e
é
diferente
para
cada
tipo
de
Conector.
O
Conector
File
System
que
você
acabou
de
adicionar
requer
a
inserção
do
caminho
do
arquivo
no
qual
deseja
gravar.
Utilizando
o
botão
Selecionar...
próximo
ao
campo
Caminho
do
Arquivo
(é
necessário
rolar
a
área
de
janela
para
o
lado,
dependendo
da
resolução
da
tela),
selecione
o
arquivo
People.csv
no
subdiretório
examples/Tutorial.
20
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Além
do
nome
do
caminho,
como
você
está
trabalhando
com
um
tipo
de
Conector
que
lê
e
grava
dados
não
estruturados,
também
é
necessário
configurar
um
Analisador.
Primeiro
selecione
a
guia
Analisador
(próxima
à
Conexão
na
área
de
janela
detalhes
do
Conector)
e
clique
no
link
[parent]
na
caixa
Herdar
de:
na
parte
inferior
da
guia.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
21
Outra
forma
de
definir
uma
herança
de
Conector
para
Analisador,
bem
como
outras
características
é
utilizando
o
diálogo
Herança.
Ele
está
disponível
através
do
botão
Herança
na
parte
superior
da
área
de
janela
detalhes
do
Conector.
Nota:
Se
você
tiver
um
Analisador
pré-configurado
na
biblioteca
poderá
arrastar
o
Analisador
do
Navegador
de
Configuração
e
soltá-lo
no
link
[parent]
na
caixa
Herdar
de:.
Se
marcar
as
outras
guias
Conector,
observe
que
todos
dentre
os
vários
aspectos
de
um
Conector
poderão
ser
herdados.
Quando
abrir
o
diálogo
Herança,
selecione
o
Analisador
CSV.
22
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Com
o
Analisador
no
local,
selecione
a
guia
Esquema.
Observe
que
você
pode
obter
uma
conexão
ativa
para
a
origem
de
dados.
Clique
no
botão
Conectar.
Clique
no
botão
Conectar
na
parte
inferior
dessa
guia
para
ver
se
o
Conector
pode
alcançar
a
origem
de
dados.
Se
for
bem
sucedido,
você
vê
a
mensagem
Conexão
estabelecida.
Agora
clique
no
botão
Próximo.
Cada
vez
que
você
clica
no
botão
Próximo,
você
está
dizendo
ao
sistema
para
ler
a
próxima
entrada
na
origem
de
dados,
analisar
o
esquema
e
converter
tipos
de
dados
específicos
de
origem
em
seus
objetos
Java
relevantes
(como
cadeias,
data/hora,
inteiros
e
assim
por
diante).
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
23
Os
dados
recuperados
da
origem
são
exibidos
na
grade,
com
os
nomes
dos
atributos,
os
tipos
de
objetos
Java
ao
quais
o
IBM
Tivoli
Directory
Integrator
os
está
convertendo
e
os
valores
reais
encontrados
na
origem
de
dados.
Isso
não
só
confirma
que
você
está
ativo
com
o
sistema
ou
arquivo
conectado,
mas
também
que
pode
obter
um
controle
visual
dos
dados
que
estão
sendo
lidos.
E
não
entre
em
pânico
se
o
IBM
Tivoli
Directory
Integrator
não
estiver
convertendo
os
tipos
de
dados
subjacentes
de
acordo
com
o
seu
desejo.
Você
sempre
poderá
substituir
esse
comportamento
ao
mapear
esses
atributos
no
fluxo
de
dados.
Mapeando
Atributos
no
AssemblyLine
O
Mapeamento
de
Atributos
é
a
operação
de
mover
informações
da
origem
de
dados
para
o
fluxo
de
dados
e
novamente
para
a
origem
de
dados.
Você
viu
na
etapa
anterior
como
o
IBM
Tivoli
Directory
Integrator
não
apenas
descobre
o
esquema
para
você,
mas
também
converte
automaticamente
os
dados
para
objetos
Java.
Então,
por
que
o
Mapeamento
de
Atributos
é
necessário?
Embora
o
IBM
Tivoli
Directory
Integrator
tenha
tornado
os
dados
disponíveis
para
você,
o
sistema
não
possui
pré-conceitos
sobre
como
você
pretende
utilizá-los.
Assim,
você
deve
no
mínimo
escolher
os
atributos
que
deseja
utilizar.
Alguns
dos
atributos
podem
ter
que
ser
computados,
combinados,
criados
ou
convertidos
para
um
formato
ou
tipo
diferente
do
que
o
IBM
Tivoli
Directory
Integrator
escolheu.
Normalmente,
isso
é
resolvido
através
da
criação
de
scripts
em
seu
Mapa
de
Atributos.
Para
ter
uma
idéia
de
como
isso
funciona
no
IBM
Tivoli
Directory
Integrator,
primeiro
é
necessário
entender
que
Conectores
(de
fato,
todos
os
componentes)
são
na
verdade
compostos
de
duas
partes:
v
Os
Conectores
Primários,
que
sabem
como
se
comunicar
e
interpretar
as
respostas
de
uma
origem
de
dados
específica.
24
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
v
O
reinício
automático
do
Conector
AssemblyLine
genérico
que
permite
aos
Conectores
se
conectarem
e
operarem
na
estrutura
do
AssemblyLine
do
IBM
Tivoli
Directory
Integrator.
As
informações
transmitidas
para
ou
provenientes
de
uma
origem
de
dados
são
mantidas
em
um
objeto
de
armazenamento
temporário
local
dentro
do
Conector
Primário.
É
daqui
que
você
mapeia
atributos
para
o
AssemblyLine
ou,
no
caso
de
um
Conector
de
saída,
os
mapeia
para
a
origem
de
saída
de
dados.
Há
um
objeto
de
armazenamento
(um
objeto
de
entrada)
chamado
work,
utilizado
pelo
AssemblyLine
inteiro
para
transportar
valores
de
dados
(atributos).
Além
disso,
cada
Conector
tem
um
objeto
de
entrada
local
chamado
conn
que
ele
utiliza
para
operações
de
acesso
de
dados.
A
movimentação
dos
atributos
para
dentro
ou
fora
do
fluxo
de
dados
é
chamada
de
mapeamento,
que
requer
a
movimentação
de
valores
de
dados
entre
um
objeto
work
de
um
AssemblyLine
e
o
objeto
conn
de
um
Conector.
Conforme
mencionado
anteriormente,
você
pode
alterar
a
parte
específica
da
origem
de
dados
de
um
Conector
a
qualquer
momento,
simplesmente
alterando
seu
tipo
utilizando
o
botão
Herança
ou
clicando
no
link
Herdar
de:
na
parte
superior
da
área
de
janela
detalhes
do
Conector
(Consulte
a
página
21)
.
No
entanto,
se
você
fizer
isso,
também
precisará
alterar
o
Mapa
de
Atributos
para
que
suas
regras
de
negócios
(script)
e
os
outros
Conectores
no
AssemblyLine
ainda
tenham
acesso
ao
atributos
de
que
precisam.
Seu
Mapa
de
Atributos
também
poderá
ser
afetado
caso
você
altere
o
modo
do
Conector,
uma
vez
que
os
Conectores
em
um
modo
de
entrada
mapeiam
atributos
do
armazenamento
local
no
Conector
Primário
(chamado
conn
nos
scripts)
para
o
objeto
utilizado
para
armazenar
e
transportar
dados
no
AssemblyLine
(o
objeto
work).
Os
Conectores
de
Saída
mapeiam
atributos
de
outra
forma:
do
work
para
o
conn.
No
exemplo,
o
Conector
InputPeople
está
em
um
modo
de
entrada,
portanto
é
necessário
configurar
o
Mapa
de
Entrada.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
25
Acima
da
caixa
marcada
Atributo
de
Trabalho
está
a
barra
de
ferramentas
Mapa
de
Atributos,
que
permite
trabalhar
com
atributos
no
Mapa.
A
área
à
direita
do
Mapa
mostra
a
lista
de
atributos
descobertos
pelo
Conector.
Nela,
você
pode
selecionar
um
ou
mais
atributos
e,
em
seguida,
arrastá-los
sobre
o
Mapa
de
Atributos.
Você
pode
selecionar
diversos
elementos
clicando
de
uma
vez
pressionando
Shift
ou
Ctrl
ao
realçar
itens
nas
listas.
Nota:
É
possível
que
a
versão
atual
de
sua
biblioteca
de
interface
GUI
da
plataforma
para
Java
tenha
um
problema
se
você
tentar
fazer
isso.
Nesse
caso,
tente
arrastar
e
soltar
os
Atributos
na
parte
superior
do
cabeçalho
de
lista
que
informa
Atributo
de
Trabalho.
Observe
que
quando
você
adiciona
Atributos
ao
Mapa
de
Entrada,
eles
aparecem
na
lista
Atributo
de
Trabalho
e
na
caixa
Entrada
de
Trabalho
do
AssemblyLine,
logo
abaixo
da
lista
de
Conectores
AssemblyLine.
26
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
A
exibição
Entrada
de
Trabalho
é
como
uma
janela
no
fluxo
de
dados,
mostrando
quais
atributos
estão
sendo
mapeados
a
partir
dos
sistemas
conectados
(ou
criados
por
você),
bem
como
o
nome
dos
Conectores
responsáveis
por
eles.
Depois
de
completar
seu
primeiro
mapeamento
de
atributos
do
Conector,
ele
seria
similar
a:
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
27
O
que
você
configurou
agora
é
um
mapeamento
simples,
feito
um
a
um
pelos
Conectores
para
a
Linha
de
Montagem.
Se
um
mapeamento
ligeiramente
mais
complexo
for
necessário,
os
botões
mencionados
anteriormente
sobre
a
caixa
Atributos
de
Trabalho
são
reproduzidos.
Por
exemplo:
Novo
Esse
botão
permite
que
você
adicione
manualmente
atributos
que
poderão
não
estar
disponíveis
a
partir
de
qualquer
um
dos
sistemas
de
entrada
ou
que
precisarão
ser
computados
a
partir
dos
Atributos
existentes.
Excluir
Remove
um
ou
mais
Atributos
do
Mapa.
Chave...
Alterna
entre
a
área
de
janela
que
exibe
os
atributos
do
Conector
disponível
e
a
que
exibe
detalhes
sobre
como
cada
Atributo
no
Mapa
está
sendo
manipulado.
Renomear...
Permite
alterar
o
nome
do
Atributo.
Setas
para
Cima
e
para
Baixo
Esses
botões
permitem
alterar
a
ordem
na
qual
os
Conectores
são
executados.
Lembre-se
de
que
AssemblyLine
trabalha
de
cima
para
baixo
na
lista.
Copiar
para
Biblioteca
Quando
você
tiver
um
Conector
configurado
da
forma
que
deseja,
poderá
copiá-lo
para
a
Biblioteca
de
Conectores
pressionando
esse
botão.
28
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Conforme
você
seleciona
Atributos
no
Mapa
de
Entrada,
os
detalhes
do
mapeamento
são
exibidos
para
o
Atributo.
Na
parte
superior
da
área
de
janela
detalhes
há
uma
caixa
de
opções
marcada
Avançado.
Conforme
pode
ver,
a
marca
de
verificação
está
ausente,
o
que
significa
que
você
está
utilizando
o
mapeamento
Simples
para
os
atributos,
por
exemplo
que
o
IBM
Tivoli
Directory
Integrator
eleva
os
valores
acima
dos
Atributos
correspondentes
que
estão
sendo
lidos
a
partir
do
sistema
conectado.
No
entanto,
se
deseja
converter
dados
de
entrada
ou
manipular
esses
valores,
você
pode
criar
scripts
utilizando
o
modo
Avançado.
Selecione
o
modo
Avançado
e
aparecerá
uma
janela
de
editor
de
script
na
qual
é
possível
adicionar
sua
própria
lógica.
Se
quiser
apenas
emular
o
que
o
IBM
Tivoli
Directory
Integrator
já
faz
no
modo
Simples,
a
caixa
poderá
conter
o
seguinte
snippet
do
código
JavaScript:
ret.value
=
conn.getAttribute("First");
Nota:
Quando
o
IBM
Tivoli
Directory
Integrator
faz
o
mapeamento
simples,
ele
copia
os
Atributos
conforme
descrito
acima,
mas
o
faz
em
Java
nativo
e
não
através
do
Mecanismo
de
Script
que
você
chamou
no
momento
em
que
selecionou
o
Mapeamento
Avançado.
Se
o
mapeamento
simples
é
tudo
o
que
você
precisa,
não
escolha
Mapeamento
Avançado;
é
muito
mais
eficiente
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
29
deixar
o
IBM
Tivoli
Directory
Integrator
manipular
o
movimento
de
dados
envolvido.
Essa
linha
de
scripts
retorna
o
atributo
chamado
First
a
parir
do
armazenamento
local
no
Conector
Primário
(o
objeto
conn).
Observe
a
janela
do
editor
de
scripts
do
IBM
Tivoli
Directory
Integrator,
que
aparece
sempre
que
você
precisa
compor
scripts.
Enquanto
estiver
nessa
janela,
você
possui
um
número
de
recursos
de
editores
típicos
(alguns
deles
aparecem
como
botões
na
linha
acima
da
janela
do
editor).
Teclas
de
Seta
Mova
o
cursor
pela
janela
do
editor.
Se
também
pressionar
a
tecla
Shift
ao
mesmo
tempo,
você
poderá
selecionar
textos.
Pressionar
Ctrl
e
as
teclas
de
seta
para
a
direita
e
esquerda
move
o
cursor,
uma
palavra
de
cada
vez.
Pressione
Shift
e
Ctrl
para
selecionar
palavras
ou
linhas
inteiras
do
script.
Recortar
Recorta
a
seleção
do
texto.
Essa
função
está
disponível
como
o
primeiro
botão
da
esquerda
na
linha
acima
da
janela
do
editor,
bem
como
utilizando-se
o
atalho
Ctrl+X
pelo
teclado.
30
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Copiar
Copia
a
seleção
atual.
A
cópia
pode
ser
feita
clicando-se
no
segundo
botão
a
partir
da
esquerda
na
linha
de
botões
ou
pressionando
Ctrl+C.
Colar
Cola
texto
em
scripts
na
posição
atual
do
cursor.
Você
pode
clicar
no
terceiro
botão
a
partir
da
esquerda
ou
pressionar
Ctrl+V.
Desfazer
Desfaz
a
última
operação
de
edição.
É
o
quarto
botão
a
partir
da
esquerda.
Refazer
Refaz
a
alteração
que
você
acabou
de
desfazer.
Refazer
aparece
na
linha
de
botões
à
direita
do
botão
Desfazer.
Localizar
permite
que
você
pesquise
um
texto
no
seu
script.
Você
pode
clicar
no
sexto
botão
a
partir
da
esquerda
ou
pressionar
Ctrl+F.
Localizar
Novamente
Repete
a
última
pesquisa.
Clique
no
botão
no
final
da
linha
de
botões
ou
pressione
Ctrl+G.
Alternar
Agrupamento
de
Linha
Ativa
e
desativa
o
agrupamento
de
linha
na
janela
do
editor.
Editar
Buffer
com
Editor
Externo
Se
você
tiver
declarado
um
editor
externo
com
Arquivo–>Preferências
na
guia
Definições
do
Editor,
ele
será
lançado
quando
você
pressionar
esse
botão.
O
conteúdo
do
buffer
de
edição
de
script
é
transferido
para
o
editor
externo
e
os
resultados
do
trabalho
são
retornados
para
o
IBM
Tivoli
Directory
Integrator
na
conclusão.
Tente
criar
scripts
incluindo
um
Atributo
chamado
FullName
que
você
pode
computar
utilizando
valores
de
outros
atributos
lidos
a
partir
da
origem
de
entrada.
Clique
no
botão
Novo
na
parte
superior
do
Mapa
de
Entrada.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
31
Na
caixa
de
diálogo
que
aparece,
insira
o
nome
FullName
e
clique
em
OK.
O
IBM
Tivoli
Directory
Integrator
automaticamente
tenta
utilizar
um
mapeamento
simples
para
recuperar
o
valos
do
atributo
da
origem
de
dados
chamado
FullName.
Isso
não
funciona
porque
essas
informações
não
estão
disponíveis
no
arquivo
de
entrada.
Em
vez
disso,
você
precisa
selecionar
essa
nova
entrada
na
lista
Mapa
de
Atributos
e
selecionar
a
caixa
de
opções
Mapeamento
Avançado.
Isso
lhe
dá
acesso
a
janela
do
editor
de
scripts.
Aqui
está
o
script
utilizado
para
criar
o
valor
para
esse
atributo:
32
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
gn
=
conn.getString("First");
sn
=
conn.getString("Last");
Essas
duas
primeiras
linhas
recuperam
os
valores
de
cadeia
dos
atributos
First
e
Last
e
os
armazena
em
duas
novas
variáveis
chamadas
gn
e
sn,
respectivamente:
ret.value
=
gn
+
"
"
+
sn;
A
última
instrução
retorna
o
valor
dessas
duas
variáveis
locais
concatenadas
com
um
único
espaço
entre
elas.
Nota:
Você
pode
criar
esse
atributo
no
Conector
de
saída.
No
entanto,
como
você
precisa
dele
no
AssemblyLine
posteriormente,
coloque-o
no
Conector
de
entrada.
A
alimentação
para
o
fluxo
de
dados
está
agora
concluída.
Você
está
se
conectando
à
origem
de
entrada,
passando
o
fluxo
de
bytes
através
do
Analisador
CSV
uma
linha
por
vez,
convertendo
esses
campos
em
objetos
Java
e
movendo
esses
dados
para
o
AssemblyLine.
Está
na
hora
de
incluir
o
Conector
de
saída.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
33
Incluindo
o
Conector
de
Saída
Clique
no
botão
Incluir
na
barra
de
ferramentas
do
botão
na
parte
inferior
da
lista
Conectores.
Nomeie
o
Conector
XMLOutput.
Escolha
o
tipo
de
Sistema
de
Arquivos
novamente
e
defina
o
modo
Conector
para
AddOnly
(o
único
modo
de
saída
suportado
pelo
Conector
File
System).
Com
esse
Conector
selecionado
na
lista
Conectores,
configure
os
parâmetros
de
Conexão
nomeando
o
arquivo
de
saída
Output.xml
e
gravando-o
no
mesmo
diretório
no
qual
o
arquivo
de
entrada
está
localizado.
34
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Agora
clique
na
guia
Analisador
e
selecione
o
Analisador
XML.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
35
Agora
o
que
resta
fazer
é
informar
ao
Conector
XMLoutput
quais
dos
atributo
do
AssemblyLine
gravar
no
documento
XML.
Clique
na
guia
Mapa
de
Saída
acima
da
caixa
Atributo
do
Conector
(ela
deve
estar
vazia)
e
mapeie
os
atributos
a
partir
do
Assembly
Line
(por
exemplo,
a
Entrada
de
Trabalho)
para
o
Conector
(a
entrada
conn)
para
que
o
Conector
gere
esses
valores.
Observe
que
como
esse
Conector
está
definido
para
um
modo
de
saída
(AddOnly),
a
guia
Mapa
de
Entrada
está
desativada.
Os
atributos
disponíveis
para
mapeamento
estão
convenientemente
disponíveis
na
lista
marcada
Entrada
de
Trabalho,
à
esquerda
da
área
de
janela
Detalhes
do
Conector.
36
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Similar
ao
que
foi
feito
no
mapeamento
de
entrada,
arraste
os
itens
da
lista
Entrada
de
Trabalho
para
a
lista
rotulada
Atributo
do
Conector
(da
mesma
forma
que
antes,
poderá
ser
necessário
arrastá-los
sobre
a
barra
de
título).
Agora
você
deve
adicionar
o
atributo
especificado
na
página
6.
Como
esse
atributo
não
existe
na
origem
de
entrada,
compute
seu
valor.
Na
lista
Entrada
de
Trabalho
você
vê
que
tem
um
atributo
chamado
FullName
(computado
utilizando-se
First
e
Last).
Você
pode
utilizar
esse
valor
para
criar
um
endereço
de
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
37
para
cada
entrada
processada.
Como
não
é
incomum
que
as
pessoas
tenham
mais
de
um
endereço
de
e-mail,
você
pode
criar
dois,
tornando
um
atributo
de
vários
valores.
Para
tanto,
clique
no
botão
Incluir
Atributos,
à
esquerda,
acima
da
lista
Atributos
do
Conector.
Isso
abre
um
diálogo
que
pergunta
o
nome
do
novo
atributo.
Denomine-o
Correio
e
clique
em
OK.
Selecione
o
novo
Conector
na
lista.
Marque
a
caixa
de
opções
Mapeamento
Avançado
e
insira
o
seguinte
script:
gn
=
work.getString("First");
cn
=
work.getString("FullName");
Essas
duas
primeiras
linhas
armazenam
os
valores
dos
atributos
First
e
FullName
em
variáveis
locais.
Observe
como
você
está
utilizando
o
objeto
work
para
acessar
os
dados
dentro
do
AssemblyLine:
var
att
=
system.newAttribute("Mail");
38
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
A
próxima
linha
utiliza
uma
chamada
de
sistema
para
criar
um
novo
atributo.
Dê
a
ele
um
nome
temporário,
embora
a
boa
prática
seja
nomeá-lo
após
o
atributo
ao
qual
você
o
está
mapeando:
att.addValue(gn
+
"@company.com");
att.addValue(cn.replace("
",".")
+
"@company.com");
Essas
duas
linhas
computam
e
incluem
os
dois
valores
para
este
atributo,
tornando-o
um
atributo
de
valores
múltiplos.
Na
segunda
linha
você
está
utilizando
a
função
.replace()
de
Cadeia
Java,
pois
o
valor
de
retorno
de
.GetString()
é
um
objeto
de
Cadeia
Java.
Essa
chamada
é
utilizada
para
substituir
espaços
por
pontos
no
nome,
portanto
um
valor
como
″Peter
Belamy″
torna-se
″Peter.Belamy″.
ret.value
=
att;
Finalmente,
o
atributo
recém-criado
é
retornado
e
o
IBM
Tivoli
Directory
Integrator
converte
o
objeto
complexo
para
o
formato
da
origem
de
saída.
A
primeira
implementação
de
fluxo
de
dados
está
pronta
para
teste.
Executando
o
Seu
AssemblyLine
O
AssemblyLine
está
agora
completo
e
pronto
para
ser
testado.
Clique
no
botão
Executar
na
barra
de
ferramentas
de
botões
do
AssemblyLine
na
parte
superior
da
janela
Detalhes
do
AssemblyLine.
Quando
você
diz
ao
IBM
Tivoli
Directory
Integrator
para
executar
um
AssemblyLine,
o
sistema
inicia
uma
instância
do
servidor
e
canaliza
a
configuração
atual
para
ele.
Nota:
Você
pode
iniciar
o
servidor
de
fora
do
Toolkit
IDE
e
instruí-lo
para
utilizar
um
Config
específico.
O
IBM
Tivoli
Directory
Integrator
cria
uma
nova
área
de
janela
chamada
ExecuteTask-AL
mostrando
um
log
do
início
do
AssemblyLine
recentemente
criado.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
39
Sem
contar
a
linha
na
parte
inferior,
Código
de
saída
do
processo,
que
simplesmente
diz
que
o
servidor
parou
após
iniciar
o
AssemblyLine
especificado,
a
saída
nesta
janela
é
dividida
em
três
partes
principais:
v
Informações
sobre
a
versão
do
servidor
que
você
está
executando.
v
Descrição
do
ambiente
em
que
o
IBM
Tivoli
Directory
Integrator
está
executando,
incluindo
qual
VM
está
configurada
para
seu
uso
e
o
diretório
de
trabalho.
v
Informações
sobre
como
sua
solução
iniciou,
incluindo:
–
Quais
parâmetros
foram
utilizados
para
iniciar
o
servidor
–
O
Config
que
está
sendo
utilizado
(que
nesse
caso
é
mostrado
como
<stdin>
significando
que
foi
canalizado
para
o
servidor
de
tempo
de
execução
a
partir
do
IDE)
–
Mensagens
geradas
durante
a
execução
do
AssemblyLine
e
seus
Conectores.
Você
também
pode
enviar
mensagens
para
o
log
utilizando
objetos
e
funções
especiais
do
IBM
Tivoli
Directory
Integrator
disponíveis
ao
compor
scripts,
como
a
função
task.logmsg
(″sua_mensagem_aqui″).
40
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
No
final
dessa
última
seção
está
a
mensagem
de
que
o
AssemblyLine
(CSVtoXML)
executou
sem
erros.
Isso
significa
que
você
pode
abrir
o
arquivo
de
saída
especificado
anteriormente
(consulte
“Incluindo
o
Conector
de
Saída”
na
página
34).
Abrir
esse
arquivo
(por
exemplo,
em
um
navegador)
permite
que
você
confirme
que
o
AssemblyLine
realmente
converteu
os
dados
de
entrada
CSB
para
o
documento
XML.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
41
Mesmo
os
atributos
e
FullName
estão
aqui,
computados
pelos
snippets
do
script.
No
entanto,
uma
das
entradas
(Roger,
descrita
na
captura
de
tela
anterior)
está
incompleta.
Faltam
a
essa
entrada
os
atributos
Last
e
Title.
Caso
verifique
o
42
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
arquivo
de
dados
de
entrada
(consulte
a
página
10),
você
poderá
ver
que
esses
campos
realmente
estão
faltando
no
arquivo
CSV
de
entrada.
A
solução
mais
fácil
é
editar
o
arquivo
CSV
e
incluir
os
campos
que
faltam.
No
entanto,
poucas
origens
de
dados
fornecem
tanto
controle.
Em
vez
disso,
tente
filtrar
a
entrada
criando
um
script
de
Gancho.
Nota:
Antes
de
aprimorar
o
AssemblyLine,
proceda
de
uma
das
seguintes
formas
para
salvar
o
trabalho
primeiro:
v
Clique
em
Salvar
na
barra
de
ferramentas
principal.
v
Selecione
Arquivo–>Salvar
a
partir
do
Menu
Principal.
v
Pressione
Ctrl+S.
Trabalhando
com
Ganchos
Ganchos
são
pontos
de
caminho
na
execução
do
AssemblyLine
e
seus
Conectores
nos
quais
você
pode
adicionar
sua
própria
lógica.
Enquanto
a
maioria
dos
ganchos
está
associada
a
Conectores,
há
uma
pequena
quantidade
que
aparece
na
guia
Gancho
do
AssemblyLine.
Eles
são
iniciados
no
início
e
no
final
do
ciclo
de
vida
dos
fluxos
de
dados:
1.
Os
Prologs
são
iniciados.
a.
Se
quaisquer
Scripts
de
Biblioteca
forem
configurados
como
Prologs
Globais
para
o
AssemblyLine,
então
eles
serão
executados.
b.
Existem
dois
Ganchos
Prolog
do
AssemblyLine:
um
que
é
desativado
antes
dos
Conectores
inicializarem
conexões
para
suas
origens
de
dados
e
um
após.
Como
você
pode
controlar
o
AssemblyLine
e
seus
Conectores
a
partir
de
seus
scripts,
poderá
reconfigurar
os
componentes
e
até
alterar
o
fluxo
em
si.
c.
Agora
os
Conectores
estão
inicializados.
d.
Após
a
inicialização,
se
o
Gancho
chamado
Prolog
estiver
ativado,
então
ele
será
iniciado.2.
Agora
o
Fluxo
de
Dados
é
iniciado
e
o
controle
é
tratado
através
do
primeiro
Conector.
Quando
concluído,
o
processamento
se
move
para
o
próximo
Conector
na
linha
e
assim
por
diante
até
o
último
Conector
ser
concluído.
Se
houver
Repetidores
no
AssemblyLine
(por
exemplo,
Conectores
no
modo
Iterator)
então
o
controle
voltará
para
o
início
e
o
AssemblyLine
será
repetido
para
a
próxima
entrada.
Embora
cada
modo
Conector
tenha
seu
fluxo
incorporado,
eles
são
consistentes
e
compartilham
Ganchos
pertinentes.
Por
exemplo,
os
modos
Lookup,
Update
e
Delete
estão
ligados
da
mesma
forma
para
tratar
pesquisas
(como
você
poderá
ver
se
tentar
alternar
os
modos
durante
a
exibição
da
guia
Ganchos).
Há
uma
descrição
gráfica
desses
fluxos
disponível
na
forma
de
Fluxogramas
de
Modos
do
Conector.
Eles
podem
ser
localizados
no
IBM
Tivoli
Directory
Integrator
Reference
Guide
e
como
um
guia
de
referência
rápida
separado.
3.
Quando
todas
as
repetições
são
concluídas
(por
exemplo,
quando
o
último
Repetidor
alcança
o
fim
dos
dados)
o
Epilog
do
AssemblyLine
é
executado.
4.
Finalmente,
os
Conectores
fecham
suas
conexões.
Voltando
ao
seu
exemplo,
você
deseja
verificar
os
dados
ausentes
no
arquivo
de
entrada
CSV.
Como
essa
origem
de
dados
é
tratada
pelo
Conector
chamado
InputPeople,
selecione-a
na
Lista
de
Conectores
e,
em
seguida,
selecione
a
guia
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
43
Ganchos
(próxima
ao
Mapa
de
Atributos).
É
nela
que
você
adicionará
a
lógica
de
filtragem.
Há
três
conjuntos
de
Ganchos
para
cada
Conector,
representados
pelas
pastas
na
lista
de
três
Ganchos:
Em
Prolog
Há
pelo
menos
dois
Ganchos
nesta
pasta:
v
Um
é
executado
após
o
Prolog
do
AssemblyLine
(Antes
da
Inicialização).
v
O
outro
é
executado
logo
após
o
Prolog
do
AssemblyLine
(Após
a
Inicialização).
No
modo
Iterator
você
também
obtém
Ganchos
adicionais
para
antes
e
depois
da
operação
de
seleção,
quando
o
Conector
obtém
uma
exibição
dos
dados
para
repetição.
Fluxo
de
Dados
Ganchos
que
são
iniciados
a
cada
repetição
do
AssemblyLine,
cada
vez
que
um
Conector
é
executado.
Ganchos
como
Antes
da
Execução
e
Erro
Padrão
são
comuns
para
todos
os
modos
de
Conector.
A
maior
parte
dos
outros
é
específica
do
modo.
Como
seu
Conector
InputPeople
está
no
modo
Iterator,
ele
faz
uma
série
de
operações
GetNext
para
recuperar
os
dados
de
entrada.
O
modo
Iterator
fornece
Ganchos
como
Antes
de
GetNext
e
Depois
de
GetNext
para
que
você
possa
agrupar
essa
operação
de
leitura
em
sua
própria
lógica.
44
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Depois
do
Epílogo
Esse
Ganchos
são
iniciados
uma
vez
no
final
do
ciclo
de
vida
do
AssemblyLine
logo
após
o
Epilog
do
AssemblyLine.
Observe
que
cada
Conector
passa
por
seu
ciclo
Epilog
(Antes
de
Fechar,
fechar
conexão,
Depois
de
Fechar)
na
mesma
ordem
em
que
aparece
no
AssemblyLine
(não
conte
com
isso
no
código
do
Gancho).
Com
o
Conector
Inserir
Pessoas
selecionado,
clique
no
Gancho
Depois
de
Pegar
o
Próximo
na
lista.
Insira
o
script
que
se
segue
na
janela
editar
à
direita
da
lista
de
Ganchos:
Nota:
Se
uma
área
de
janela
for
muito
pequena
(como
o
Editor
de
Script),
então
tente
redimensioná-la
clicando
e
arrastando
uma
ou
mais
barras
separadoras.
sn
=
conn.getString("Last");
title
=
conn.getString("Title");
As
duas
primeiras
linhas
recuperam
e
armazenam
os
valores
de
dois
atributos
disponíveis
no
Conector
Primário.
Se
você
se
lembrar
da
discussão
sobre
o
Mapeamento
de
Atributos
(página
24)
cada
Conector
utilizará
um
objeto
de
armazenamento
local
para
uso
com
suas
operações
de
dados.
Esse
objeto
é
referido
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
45
através
da
variável
de
script
conn.
No
caso
do
exemplo
anterior,
você
pode
utilizar
os
Ganchos
GetNext
Bem-sucedido
ou
Padrão
Bem-sucedido
para
filtragem.
Como
esses
Ganchos
vêm
após
o
Mapa
de
Atributos
de
Entrada,
esses
atributos
são
mapeados
para
a
Entrada
de
Trabalho
e
você
pode
gravar
seu
script
utilizando
a
variável
work.
if
(sn
==
null
||
title
==
null)
{
Verifique
se
o
valor
retornado
para
o
atributo
Last
ou
o
atributo
Title
é
nulo
(não
existe
na
origem
de
dados
de
entrada).
Se
for
esse
o
caso,
então
as
próximas
três
linhas
serão
iniciadas.
Nota:
Você
poderá
testar
a
existência
de
mais
campos
em
uma
versão
de
produção
desse
AssemblyLine.task.logmsg("-->
Record
skipped
(missing
data)");
O
objeto
da
tarefa
fornece
o
acesso
às
funções
do
AssemblyLine,
como
logmsg()
que
permite
compor
para
o
arquivo
de
log
do
AssemblyLine.
task.dumpEntry(conn);
Dessa
vez
você
utiliza
a
função
dumpEntry()
(task)
do
AssemblyLine
para
compor
o
conteúdo
do
objeto
de
armazenamento
local
(conn)
do
Conector
Primário
para
o
arquivo
de
log.
Nota:
Conn
e
work
são
o
mesmo
tipo
de
objeto,
portanto
as
funções
como
dumpEntry()
funcionam
igualmente
nos
dois.
system.skipEntry();
}
Finalmente,
utilize
a
função
skipEntry()
do
objeto
system
para
sinalizar
para
o
IBM
Tivoli
Directory
Integrator
ignorar
essa
entrada
de
dados,
iniciar
novamente
na
parte
superior
do
loop
do
AssemblyLine
e
ler
o
próximo.
Antes
de
testar
a
linha
novamente,
faça
uma
pequena
alteração
no
Mapa
de
Atributos
de
Saída.
Conversão
do
Esquema
No
exemplo
(consulte
a
página
6),
os
atributos
de
saída
têm
os
mesmos
nomes
daqueles
na
origem
de
entrada.
Mas
imagine
por
um
momento
que
as
especificações
pedem
atributos
de
saída
a
serem
chamados
Name
e
LastName:
FirstName
=DS1.First
LastName
=DS1.Last
FullName
=DS1.First+"
"+DS1.Last
Title
=DS1.Title
=<nome_de_computação>
O
IBM
Tivoli
Directory
Integrator
torna
mais
fácil
o
mapeamento
de
nomes
de
atributos
entre
esquemas,
e
tudo
o
que
você
precisa
fazer
é
atualizar
os
nomes
desses
atributos
diretamente
no
Mapa
de
Atributos
do
Conector
de
saída.
Selecione
o
Conector
XMLOutput,
clique
no
atributo
que
deseja
alterar
no
Mapa
de
Atributos
e
comece
a
digitar.
46
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Não
se
preocupe
com
os
efeitos
sobre
os
scripts
no
AssemblyLine,
esses
nomes
estão
sendo
alterados
localmente
para
a
fase
de
Mapeamento
de
Atributos
do
Conector
de
saída.
Os
atributos
First
e
Last
ainda
são
lidos
corretamente,
e
estão
disponíveis
dentro
do
AssemblyLine.
Nota:
Como
o
IBM
Tivoli
Directory
Integrator
enfatiza
o
campo
que
você
está
inserindo,
mesmo
que
você
mude
para
um
Conector
ou
AssemblyLine
diferente,
você
ainda
pode
estar
no
modo
de
edição
para
o
nome
do
atributo.
Para
sair
do
modo
de
edição,
clique
em
um
atributo
diferente
no
mesmo
mapa
ou
pressione
Enter
para
que
o
IBM
Tivoli
Directory
Integrator
saiba
que
você
está
pronto.
Deixe
essas
alterações
assim
(embora
não
façam
parte
da
especificação
original)
e
execute
o
AssemblyLine.
Quando
o
IBM
Tivoli
Directory
Integrator
terminar,
volte
para
a
janela
do
navegador
de
saída
e
clique
no
botão
Atualizar.
Se
tiver
fechado
esta
janela,
você
deve
repetir
os
passos
que
usou
para
abrir
o
arquivo
de
saída
depois
da
primeira
execução
(consulte
“Executando
o
Seu
AssemblyLine”
na
página
39).
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
47
Quando
o
arquivo
de
saída
estiver
novamente
visível,
confirme
se
Roger
não
se
encontra
mais
lá
(ele
costuma
estar
entre
Jill
e
Gregory).
Observe
também
as
alterações
realizadas
nos
nomes
dos
dois
atributos:
Salve
novamente
o
Config
(Ctrl+S)
e
vá
para
a
próxima
etapa,
coletando
dados
a
partir
de
uma
terceira
origem
de
dados.
Incluindo
o
Conector
de
Ligação
Junto
com
os
arquivos
Tutoriais
está
um
banco
de
dados
simples
de
pessoas
que
devem
dinheiro.
Utilize
essa
fonte
para
enviar
informações
sobre
os
devedores
no
documento
XML
de
saída.
A
primeira
etapa
é
adicionar
um
terceiro
Conector
clicando
em
Incluir
na
barra
de
ferramentas
do
AssemblyLine.
Chame
esse
Conector
de
Debtors
e
escolha
o
tipo
de
Conector
BTree
Object
DB.
Esse
Conector
precisa
estar
no
modo
Lookup
uma
vez
que
você
está
pesquisando
registros
que
correspondem
aos
dados
dentro
do
AssemblyLine.
Quando
você
adicionar
um
Conector
à
lista,
o
IBM
Tivoli
Directory
Integrator
soltará
o
novo
Conector
no
final
do
AssemblyLine.
Mas
isso
não
irá
funcionar,
porque
você
precisa
fazer
a
coleta
depois
do
Conector
de
entrada
(repetição)
e
antes
do
Conector
de
saída.
Para
corrigir
isto,
selecione
o
Conector
Debtors
e
clique
no
botão
Para
Cima
na
barra
de
ferramentas
do
fluxo
de
dados
da
AssemblyLine.
48
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Isso
move
o
Conector
um
slot
para
cima,
de
forma
que
ele
será
iniciado
depois
de
InputPeople,
mas
antes
de
XMLOutput.
Agora,
selecione
a
guia
Configurar...
para
configurar
esse
Conector.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
49
Insira
o
nome
do
caminho
do
arquivo
de
dados,
que
pode
ser
diferente
daquele
acima,
dependendo
de
onde
você
instalou
o
IBM
Tivoli
Directory
Integrator
(observe
que
o
arquivo
do
banco
de
dados
em
si
é
chamado
Debtors.dat
).
No
campo
Nome
do
Atributo
Chave
você
precisa
especificar
o
nome
do
atributo
que
identifica
exclusivamente
esses
registros.
No
banco
de
dados
tutorial
esse
é
o
atributo
FullName
(o
que
lhe
dá
uma
dica
sobre
por
que
você
elaborou
um
atributo
nomeado
de
forma
similar
no
Conector
de
entrada).
Quando
você
quiser
testar
esse
Conector,
utilize
a
guia
Esquema
e
clique
nos
botões
Conectar
e
Próximo
como
fez
para
InputPeople.
Ou
você
pode
ir
direto
para
a
guia
Mapa
de
Entrada
e
utilizar
o
botão
Descoberta
Rápida.
50
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Isso
faz
com
que
o
Conector
se
conecte
à
sua
origem,
faça
um
GetNext
individual
no
conjunto
de
dados
e
examine
a
entrada
retornada.
Os
atributos
localizados
aqui
são
exibidos
na
janela
Atributos
de
Conector
Disponíveis
e
estão
prontos
para
mapeamento.
Agora,
embora
isso
não
descubra
todos
os
atributos
definidos
no
esquema
da
origem
de
dados
(você
precisa
utilizar
o
botão
Descobrir
Esquema
na
guia
Esquema
para
isso)
é
suficiente
para
continuarmos
o
trabalho.
Agora
você
segue
para
a
configuração
do
Mapa
de
Atributos
de
modo
que
as
informações
relevantes
fiquem
disponíveis
para
o
AssemblyLine.
Vá
para
a
área
de
janela
Mapa
de
Entrada
clicando
na
guia
(próxima
a
Esquema)
e,
em
seguida,
arraste
Amount
e
DateOfLoan
da
lista
de
Atributos
de
Conector
Disponíveis,
na
caixa
Atributo
de
Trabalho.
Nota:
Como
verá
na
seção
a
seguir,
você
utiliza
o
campo
FullName
dessa
origem
de
dados
para
configurar
os
critérios
de
pesquisa
para
Lookup.
No
entanto,
um
atributo
não
precisa
ser
incluído
no
Mapa
de
Atributos
para
que
seja
utilizado
para
pesquisa,
ele
precisa
apenas
estar
disponível
na
origem
de
dados.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
51
Configurando
os
Critérios
de
Links
Como
se
encontra
no
modo
Procurar,
o
novo
Conector
Devedores
está
pesquisando
estradas
específicas
em
sua
origem
de
dados,
tentando
localizar
um
correspondente
para
a
entrada
que
já
está
dentro
do
AssemblyLine.
Como
essa
correspondência
é
feita
exatamente
é
especificado
no
que
se
chama
de
Critérios
de
Vinculação
do
Conector.
Você
deve
ter
percebido
que
ao
adicionar
o
Conector
Debtors
(e
ter
certeza
que
este
modo
estava
como
Lookup)
uma
nova
guia
ficou
disponível,
Critérios
de
Vinculação,
próximo
à
guia
chamada
Mapa
de
Saída.
Selecionar
esta
guia
torna
visível
o
vídeo
de
Critérios
de
links
nos
quais
você
pode
especificar
como
esse
Conector
realiza
sua
procura.
Chame
novamente
o
recurso
do
IBM
Tivoli
Directory
Integrator
para
criação
de
scripts
diretamente
do
Mapa
de
Atributos.
O
mesmo
princípio
se
aplica
aqui.
Verificando
a
caixa
de
opções
Construir
critérios
com
script
personalizado
(próximo
à
barra
de
ferramentas
Critérios
de
Link)
você
obtém
uma
janela
de
Editor
na
qual
pode
gravar
a
chamada
de
procura
específica
de
origem
de
dados.
52
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Isso
pode
ser
uma
instrução
SQL
SELECT
para
um
Conector
JDBC,
ou
uma
pesquisa
LDAP,
se
conectada
a
um
diretório.
No
entanto,
exatamente
como
o
Mapeamento
de
Atributos,
o
IBM
Tivoli
Directory
Integrator
pode
criar
a
chamada
de
API
pertinente
para
a
origem
de
dados
subjacente
e
manter
a
solução
mais
independente
da
tecnologia.
Clique
no
botão
Incluir
novo
Critério
de
Link
na
barra
de
ferramentas
Critérios
de
Link,
abaixo
da
guia
Configurar...:
Quando
a
caixa
de
diálogo
Critérios
de
Vinculação
aparecer,
escolha
um
atributo
do
esquema
que
o
IBM
Tivoli
Directory
Integrator
descobriu
na
origem
de
dados.
Em
seguida,
selecione
uma
operação
de
comparação
(por
exemplo,
equals
ou
contains).
O
último
campo
permite
a
especificação
do
atributo
dentro
do
AssemblyLine
a
ser
comparado.
Clique
em
OK
quando
estiver
pronto.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
53
Nota:
O
caractere
de
sinal
de
dólar
($)
na
frente
do
atributo
FullName
no
AssemblyLine
permite
que
o
IBM
Tivoli
Directory
Integrator
recupere
o
primeiro
valor
desse
atributo
(pode
possuir
qualquer
número
de
valores)
para
uso
na
construção
de
Critérios
de
Vinculação.
Se
você
deseja
combinar
qualquer
um
dos
valores
de
um
atributo
de
valores
múltiplos,
você
pode
utilizar
o
símbolo
arroba
(@)
em
seu
lugar.
Quando
o
diálogo
é
fechado
e
você
volta
para
a
tela
AssemblyLine,
selecione
o
Conector
XMLOutput
para
atualizar
seu
Mapa
de
Atributos
para
incluir
os
novos
dados
que
estão
sendo
coletados
para
a
linha.
Da
caixa
Entrada
de
Trabalho,
arraste
os
novos
atributos
Quantia
e
DateOfLoan
na
caixa
de
Atributos
do
Conector.
54
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Salve
seu
trabalho
e
execute
novamente
o
AssemblyLine.
O
que
aconteceu?
O
AssemblyLine
bateu!
Porque
você
não
inseriu
na
situação
que
o
Conector
de
Procura
de
Débito
falha
ao
encontrar
entradas
neste
banco
de
dados
teclado
no
atributo
FullName.
Felizmente,
o
IBM
Tivoli
Directory
Integrator
tem
algumas
maneiras
para
lidar
com
esta
situação.
Neste
caso,
você
pode
programar
um
Gancho
para
solucionar
o
problema.
Você
deve
tomar
uma
decisão
quanto
ao
que
fazer:
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
55
v
Você
pode
ignorar
o
fato
de
que
a
entrada
algumas
vezes
não
existe
no
banco
de
dados
Debtors.dat.
Neste
caso,
você
instrui
o
programa
a
ignorar
e
sua
saída
conterá
todas
as
entradas,
algumas
com
informações
sobre
débitos
e
algumas
sem.
v
Você
pode
desejar
ver
as
pessoas
que
têm
somente
débitos,
neste
caso
instrua
o
sistema
a
ignorar
as
pessoas
sem
entradas
na
tabela,
por
exemplo,
sem
registro
de
débitos.
De
qualquer
maneira,
isso
envolve
ativar
o
Gancho
chamado
Em
Sem
Correspondência
no
Conector
Debtors.
1.
Vá
para
este
Conector
e
clique
na
guia
Ganchos.
2.
Clique
no
Gancho
Em
Sem
Correspondência
na
exibição
em
árvore
apresentada
aqui.
Uma
janela
Editor
de
Script
é
exibida.
3.
Marque
a
caixa
de
opções
Ativado,
salve
seu
trabalho
e
execute
AssemblyLine
outra
vez.
Ao
simplesmente
ativar
o
Gancho,
você
está
informando
ao
IBM
Tivoli
Directory
Integrator
para
não
fazer
nadas
se
nenhum
dado
correspondente
for
localizado
durante
a
Procura.Lookup.
Quando
você
executar
o
AssemblyLine
novamente,
ele
não
falhará
e
a
saída
do
log
será
semelhante
a
esta:
56
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Nele
você
pode
ver
as
mensagens
e
dump
de
entrada
codificados
no
script
de
filtragem
(no
Gancho
Depois
de
GetNext
de
InputPeople),
bem
como
as
mensagens
de
que
nenhum
erro
foi
encontrado
neste
momento.
Nota:
A
ordem
na
qual
os
atributos
para
cada
entrada
aparecem
não
é
relevante,
e
pode
não
ser
a
mesma
ordem
de
seu
sistema
em
que
aparece
nas
capturas
de
tela
deste
documento.
O
arquivo
de
saída
XML
também
mostra
algumas
alterações
importantes:
v
Os
dois
novos
campos
de
Devedor
que
foram
incluídos
são
visíveis
na
saída.
v
O
número
de
atributos
por
entrada
de
XML
se
torna
variável,
porque
o
AssemblyLine
não
localiza
as
informações
de
débito
para
todos.
Quando
o
Conector
Lookup
(Debtors)
não
encontrava
informações
correspondentes
no
banco
de
dados,
ele
era
padronizado
para
a
rotina
de
tratamento
de
erros
do
AssemblyLine,
que
era
apenas
retornada
do
Gancho
(pois
não
havia
nenhum
código
especifico
para
fazer
qualquer
coisa).
Entretanto,
ele
limpava
a
condição
de
erro
para
que
o
processamento
continuasse,
embora
com
alguns
atributos
ausentes.
Isto
pode
causar
problemas
abaixo
da
linha,
mas
nesta
situação
não.
E
se
você
estiver
interessado
somente
naquelas
pessoas
com
dinheiro?
Então,
você
precisa
adicionar
esse
snippet
de
script
ao
Gancho
Em
Sem
Correspondência
no
Conector
Debtors:
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
57
system.skipEntry();
Lembre-se
de
como
Roger
foi
filtrado
durante
a
entrada
inicial.
Isso
pode
causar
uma
situação
na
qual
pessoas
filtradas
durante
a
entrada
na
verdade
devem
dinheiro,
mas
o
AssemblyLine
nunca
chega
tão
longe
nesses
registros.
Como
alternativa,
você
pode
criar
valores
padrão
para
atributos
ausentes
no
primeiro
Conector.
O
IBM
Tivoli
Directory
Integrator
fornece
várias
formas
de
manipular
valores
ausentes.
Agora
que
demos
uma
olhada
em
como
você
descreve
os
sistemas
e
fluxos
de
dados
que
compõem
sua
solução
de
integração,
é
hora
de
olharmos
como
o
IBM
Tivoli
Directory
Integrator
permite
que
você
detecte
e
despache
eventos
de
alteração
na
infra-estrutura.
EventHandlers
O
terceiro
e
último
tipo
de
componente
no
IBM
Tivoli
Directory
Integrator
é
o
EventHandler.
Como
o
nome
implica,
esse
componente
permite
criar
soluções
de
integração
conduzidas
por
evento,
em
tempo
real.
Os
EventHandlers
permitem
a
conexão
a
sistemas
e
serviços
e,
então,
aguardar
por
algum
tipo
de
notificação
de
58
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
evento.
Os
exemplos
incluem
a
chegada
de
correio
em
uma
caixa
postal
POP3/IMAP,
um
arquivo
aparecendo
em
um
URL
de
FTP
e
alterações
feitas
em
um
diretório.
Os
EventHandlers
podem
ser
configurados
para
executar
uma
série
de
ações
com
base
no
tipo
de
evento
interceptado:
v
Transferir
dados
de
entrada
através
de
um
ou
mais
analisadores.
v
Iniciar
AssemblyLines
com
parâmetros
de
eventos
que
ele
precisam
para
trabalhar.
v
Chamar
programas
ou
bibliotecas
externas.
Em
suma,
o
que
você
precisar
que
eles
façam
para
interpretar
e
despachar
o
evento.
Como
ocorre
com
os
outros
componentes,
a
maioria
dos
EventHandlers
trabalham
de
forma
similar.
No
entanto,
alguns
são
implementados
completamente
com
script
(como
o
EventHandler
Generic
Thread)
ou
precisam
de
uma
interface
especializada
para
configuração
(por
exemplo,
o
EventHandler
Services).
Devido
à
simplicidade,
você
verá
o
tipo
padrão
de
EventHandler
para
o
exemplo.
Quando
um
EventHandler
captura
um
evento,
ele
converte
os
parâmetros
do
evento
em
objetos
Java
e
os
armazena
em
um
objeto
de
armazenamento
local.
Esse
objeto
de
armazenamento
é
como
os
objetos
work
e
conn
utilizados
na
seção
anterior.
No
caso
de
EventHandlers,
esse
depósito
Java
é
chamado
de
evento.
Além
desses
parâmetros
do
evento,
às
vezes,
você
também
obtém
atributos
do
evento,
como
no
caso
de
um
evento
de
modificação
a
partir
do
diretório
LDAP.
Para
evitar
que
o
conteúdo
e
os
parâmetros
dos
dados
sejam
misturados,
todos
esses
objetos
de
armazenamento
(incluindo
work
e
conn)
mantêm
valores
de
dados
nos
atributos
e
parâmetros
em
algo
chamado
propriedades.
As
propriedades
são
portadoras
de
valores
de
dados
como
os
atributos,
exceto
que
elas
sempre
têm
um
valor
único
e
geralmente
são
cadeias.
Quando
você
faz
dump
de
um
objeto
de
entrada
para
o
log
(por
exemplo,
utilizando
a
função
task.dumpEntry())
aparece
uma
seção
separada
para
exibição
de
atributos
e
propriedades
na
saída
do
log.
Você
define
como
um
EventHandler
reage
a
eventos
diferentes
criando
um
conjunto
de
regras
de
ação
de
condição
com
base
nos
valores
das
propriedades
e
atributos
recebidos
do
sistema
conectado.
Os
EventHandlers
são
normalmente
utilizados
para
despachar
o
controle
para
um
ou
mais
AssemblyLines
que
propagam
os
eventos.
No
entanto,
como
os
EventHandlers
podem
utilizar
scripts
e
fornecem
muitas
funcionalidades
incorporadas,
eles
mesmos
podem
executar
muito
trabalho.
Uma
das
maneiras
mais
fáceis
dos
EventHandlers
iniciarem
é
o
EventHandler
HTTP,
portanto
utilize
esse
componente
para
criar
um
servidor
da
Web
simples.
Você
deve
criar
dois
novos
arquivos
no
diretório
examples/Tutorial:
index.html
e
OtherPage.html.
Consulte
Apêndice
A,
“index.html
e
OtherPage.html”,
na
página
75
para
obter
o
conteúdo
desses
arquivos.
Abra
o
index.html
em
um
navegador.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
59
Essa
é
a
sua
página
da
Web
principal
e
ela
contém
alguns
links.
O
link
superior
faz
referência
a
uma
segunda
página
da
Web
(OtherPage.html),
enquanto
o
link
inferior
contém
uma
referência
a
StartAL.
Esse
último
link
é
utilizado
para
lançar
o
AssemblyLine
que
você
acabou
de
construir.
A
primeira
etapa
é
criar
um
EventHandler
HTTP
e
configurá-lo
para
agir
como
um
servidor
da
Web.
Adicione
o
novo
EventHandler
ao
Config
agora
utilizando
a
seleção
de
menu
Objeto–>Novo
EventHandler
ou
clique
com
o
botão
direito
do
mouse
na
pasta
EventHandler
no
Navegador
de
Configuração
e
selecione
Novo
60
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
EventHandler
...
no
menu
de
contexto.
Chame
esse
novo
EventHandler
de
WebServer.
O
IBM
Tivoli
Directory
Integrator
exibe
a
tela
de
detalhes
do
EventHandler.
Como
viu
na
área
de
janela
de
Detalhes
do
AssemblyLine,
o
EventHandler
também
fornece
um
conjunto
de
guias:
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
61
Ganchos
Os
EventHandlers
têm
um
conjunto
de
Ganchos
similares
aos
encontrados
em
um
AssemblyLine:
v
Prolog
v
Epílogo
v
Pedido
de
Encerramento
Observe
que
os
Ganchos
Prolog
e
o
Epilog
de
um
EventHandler
são
iniciados
sempre
que
um
evento
é
detectado.
Mapa
de
Ação
O
Mapa
de
Ação
é
onde
você
define
suas
regras
de
ação
de
condição.
Config
Como
muitos
EventHandlers
assinam
notificações
de
eventos
de
sistemas
ou
dispositivos,
você
precisa
configurar
os
parâmetros
de
conexão.
Comece
selecionando
a
guia
Configurar...
e
configurando
o
EventHandler
HTTP.
Essa
guia
permite
alterar
o
tipo
de
EventHandler,
selecionar
a
linguagem
de
script
para
uso
e
definir
os
vários
parâmetros
de
conexão.
Configure
o
EventHandler
para
atender
na
porta
88
de
sua
máquina
inserindo
esse
número
de
porta
no
parâmetro
Porta
HTTP.
Com
a
caixa
de
opções
Cabeçalhos
como
Propriedades
selecionada,
você
está
orientando
o
EventHandler
a
armazenar
todos
os
valores
de
cabeçalho
TCP
e
HTTP
como
Propriedades
no
objeto
de
evento.
Agora
é
hora
de
examinar
a
guia
Mapa
de
Ação.
62
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Essa
tela
está
dividida
em
três
áreas
de
janela:
Mapa
de
Ação,
Condições
e
Itens
de
Ação,
cada
uma
com
uma
linha
de
botões
para
criar,
excluir
e
alterar
a
ordem
dos
itens
na
lista
relacionada.
Sempre
que
ocorre
um
evento,
o
EventHandler
é
executado
como
o
seguinte:
1.
O
Gancho
Prolog
é
executado.
2.
O
controle
é
transmitido
para
o
primeiro
item
ativado
do
Mapa
de
Ação
e
suas
Condições
são
avaliadas.
3.
Se
as
Condições
forem
avaliadas
para
Verdadeiras
(ou
se
não
houver
Condições
definidas
para
esse
item
do
Mapa
de
Ação),
então
as
Ações
na
guia
Condição
verdadeira
serão
iniciadas.
Se
elas
forem
avaliadas
para
Falsas,
então
as
Ações
da
Condição
falsa
serão
executadas.
Os
erros
são
tratados
na
guia
No
Erro.
4.
Quando
as
Ações
tiverem
sido
concluídas,
o
controle
se
moverá
para
o
próximo
item
no
Mapa
de
Ação
e
a
etapa
3
será
repetida
para
esse
item.
No
entanto,
se
a
caixa
de
opções
Consumir
estiver
selecionada
para
esse
item
do
Mapa
de
Ação
e
se
uma
única
ação
for
executada,
então
o
processamento
parará
para
esse
evento
e
o
controle
será
transmitido
para
a
próxima
etapa
(o
Epilog).
5.
O
Gancho
Epilog
é
iniciado.
6.
O
EventHandler
aguarda
o
próximo
evento.
Crie
um
novo
item
do
Mapa
de
Ação
pressionando
o
botão
Incluir
Novo
Item
do
Mapa
de
Ação
e
chamando
esse
novo
item
DumpEventToLog.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
63
Não
crie
nenhuma
Condição
para
esse
item
do
Mapa
de
Ação.
Isso
significa
que
o
EventHandler
sempre
inicia
as
Ações
definidas
na
guia
Condição
verdadeira.
Selecione
o
novo
item
do
Mapa
de
Ação,
em
seguida
a
guia
Condição
verdadeira
e
adicione
uma
nova
Ação.
64
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Como
pode
ver
na
caixa
de
diálogo
Seleção
de
ação
nessa
captura
de
tela,
há
uma
série
de
ações
padrão
para
escolha:
v
Chamar
um
ou
mais
Analisadores.
v
Gravar
seu
próprio
script
personalizado.
v
Adicionar
e
remover
Propriedades
e
Atributos
de
eventos.
v
Executar
um
AssemblyLine.
v
Parar
o
EventHandler.
Selecione
a
Ação
Objeto
de
Evento
Dump
e
pressione
OK.
Agora
você
está
pronto
para
testar
o
EventHandler
clicando
no
botão
Executar.
Quando
o
EventHandler
tiver
iniciado
na
porta
88,
abra
uma
janela
de
navegador
e
insira
o
seguinte
URL
no
campo
de
endereço:
http://localhost:88
Nada
é
exibido
no
navegador,
mas
se
você
tornar
visível
o
IBM
Tivoli
Directory
Integrator
novamente
verá
que
o
evento
foi
capturado
pelo
EventHandler
e
os
vários
parâmetros
de
eventos
passaram
por
dump
para
registro,
como
o
IBM
Tivoli
Directory
Integrator
foi
orientado
a
fazer.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
65
O
dump
do
conteúdo
do
objeto
de
evento
é
uma
forma
rápida
e
visual
de
identificar
os
parâmetros
retornados
com
o
evento
e
que
estão
disponíveis
para
uso
na
definição
de
Condições.
Utilize
a
Propriedade
http.base
realçada
na
captura
de
tela
anterior
para
tentar
isso.
Observe
que
antes
das
alterações
que
você
está
prestes
a
fazer
no
EventHandler
entrem
em
efeito,
você
deve
parar
a
instância
em
execução
atualmente
clicando
no
botão
vermelho
Parar
ou
fechando
a
área
de
janela
Executar.
Volte
para
o
EventHandler,
crie
um
novo
Mapa
de
Ação
e
chame-o
de
StartAL.
Selecione
esse
novo
item
do
Mapa
de
Ação
e
clique
no
botão
Incluir
Nova
Condição.
66
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Como
de
costume,
o
IBM
Tivoli
Directory
Integrator
permite
tratar
situações
complexas
com
script
personalizado.
Você
não
precisa
dessa
flexibilidade
aqui,
portanto
selecione
Condição
Simples.
O
sistema
então
apresenta
um
diálogo
Condição.
Insira
http.base
no
campo
Nome
do
Atributo/Propriedade
e,
em
seguida,
selecione
o
operador
contains
na
lista
drop
down.
No
campo
Valor
insira
o
texto
entre
aspas
″StartAL″.
Ele
instrui
o
EventHandler
a
verificar
a
Propriedade
http.base
para
ver
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
67
se
contém
o
texto
″StartAL″.
Como
você
não
selecionou
a
caixa
de
opções
Distinção
entre
Maiúsculas
e
Minúsculas,
utilizar
maiúsculas
ou
minúsculas
não
afetará
o
resultado
dessa
Condição.
Agora
tudo
o
que
você
tem
a
fazer
é
informar
ao
EventHandler
o
que
fazer
quando
a
Condição
for
atendida.
Com
o
item
do
Mapa
de
Ação
StartAL
ainda
selecionado,
adicione
uma
nova
Ação
à
pasta
Condição
verdadeira
e
selecione
a
Ação
Executar
AssemblyLine.
Você
pode
dar
um
clique
duplo
em
qualquer
Ação
para
obter
o
diálogo
de
Detalhes
da
Ação:
68
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Utilize
a
lista
drop
down
para
selecionar
o
AssemblyLine
CSVtoXML
e,
em
seguida,
clique
na
caixa
de
opções
rotulada
Aguardar
finalização.
A
seleção
dessa
opção
informa
ao
EventHandler
para
fazer
uma
pausa
até
o
AssemblyLine
ser
finalizado,
o
que
impede
o
lançamento
dele
várias
vezes
em
paralelo
por
acidente.
Depois
de
inserir
os
detalhes
dessa
Ação,
feche
o
diálogo
utilizando
o
botão
da
área
de
janela
Fechar
(consulte
descrição
na
captura
de
tela
anterior).
Inicie
o
EventHandler
novamente.
Aguarde-o
iniciar
e,
em
seguida,
abra
a
janela
do
navegador.
Você
deseja
acessar
a
mesma
máquina
e
número
de
porta
(http://localhost:88),
mas
dessa
vez
anexe
o
texto
da
Condição
(startAL)
ao
final
do
URL:
http://localhost:88/startAL
Você
observará
que
o
navegador
demorou
um
pouco
para
retornar.
Isso
foi
o
EventHandler
lançando
o
AssemblyLine
e,
em
seguida,
aguardando
a
conclusão.
Se
você
voltar
para
o
IBM
Tivoli
Directory
Integrator
poderá
ver
na
saída
do
log
que
após
o
EventHandler
fazer
dump
no
objeto
de
evento
ele
executou
o
AssemblyLine.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
69
Até
aqui
tudo
bem,
mas
o
EventHandler
ainda
não
está
funcionando
como
um
servidor
da
Web.
Para
adicionar
essa
funcionalidade
você
deve
adicionar
código
adicional
à
guia
Condição
falsa
do
item
do
Mapa
de
Ação
StartAL.
Com
esse
item
selecionado,
adicione
uma
Ação
Personalizar
Script
à
guia
Condição
falsa
(dê
um
clique
duplo
na
nova
Ação
para
obter
a
tela
de
detalhes).
Você
poderá
querer
arrastar
a
barra
de
divisão
para
cima
entre
Condições
e
Ações
para
obter
mais
espaço
para
compor
o
script.
70
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Agora
insira
o
seguinte
script
na
janela
Editor
de
Script
para
essa
Ação:
//
Primeiro
obtemos
a
propriedade
http.base
(retornada
como
um
objeto
de
Cadeia
Java).
//
A
segunda
linha
abaixo
define
uma
nova
variável
com
o
caminho
completo
para
//
onde
os
arquivos
HTML
do
Tutorial
estão
localizados
na
máquina.
//
base
=
event.getProperty("http.base");
path
=
"C:/Program
Files/IBM/IBMDirectoryIntegrator/examples/Tutorial/";
//
Podemos
utilizar
a
função
endsWith()
de
Cadeia
Java
para
verificar
a
extensão
do
//
arquivo
solicitado
pelo
navegador.
Então,
definimos
as
propriedades
para
a
//
mensagem
HTTP
que
o
EventHandler
transmitirá
de
volta
ao
navegador.
if
(
base.endsWith(".gif")
)
event.setProperty
("http.content-type",
"image/gif")
else
if
(
base.endsWith(".jpg")
||
base.endsWith(".jpeg")
)
event.setProperty
("http.content-type",
"image/jpeg")
else
event.setProperty
("http.content-type",
"text/html");
//
Se
ele
for
um
pedido
raiz
ou
nulo,
adicione
o
nome
da
nossa
página
da
Web
//
principal
("index.html").
if
(
base
==
"/"
)
base
=
"/"
+
"index.html";
//
Agora
criamos
um
novo
objeto
de
arquivo
Java
com
o
nome
do
arquivo
//
que
foi
solicitado
e
pré-anexamos
com
a
variável
de
caminho
que
//
criamos
acima.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
71
var
file
=
new
java.io.File(path
+
base);
//
Aqui,
escrevemos
o
nome
do
arquivo
para
o
log.
task.logmsg
("File
request:
"
+
file
);
//
Finalmente,
podemos
utilizar
a
função
exists()
para
ver
se
o
arquivo
foi
localizado.
//
Se
tiver
sido,
o
transmitiremos
de
volta
na
propriedade
http.body.
Caso
//
contrário,
definiremos
o
status
para
que
o
navegador
exibia
o
erro
padrão
404.
if
(
file.exists()
)
event.setProperty
("http.body",
file);
else
event.setProperty
("http.status",
"NOT
FOUND");
Esse
ainda
é
o
snippet
mais
longo.
Portanto,
isso
ainda
não
é
muito
código
considerando
que
você
agora
construiu
um
servidor
da
Web.
Inicie
novamente
o
EventHandler
e
digite
http://localhost:88
no
navegador.
Você
obterá
a
página
da
Web
vista
anteriormente.
De
fato,
o
EventHandler
precisou
atender
dois
eventos:
primeiro,
ele
retornou
a
página
index.html
e,
em
seguida,
quando
o
navegador
começou
a
apresentar
o
HTML
ele
detectou
uma
imagem
GIF
e
também
a
solicitou
do
servidor.
Se
olhar
a
saída
do
log
poderá
ver
esse
evento
adicional.
Tente
clicar
através
da
outra
página
e
volte
novamente.
Seu
servidor
da
Web
simples
atende
a
todas
as
páginas
disponíveis.
Se
você
inserir
o
URL
de
um
72
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
arquivo
que
não
existe
(por
exemplo,
http://localhost:88/BadPage.html),
o
EventHandler
retornará
um
erro
Arquivo
Não
Localizado
no
navegador.
Na
parte
inferior
da
página
principal
está
o
segundo
link
visto
anteriormente.
Se
colocar
o
mouse
sobre
ele,
verá
que
faz
referência
ao
URL
http://localhost:/StartAL.
Quando
você
clicar
nesse
link,
sua
Condição
anteriormente
definida
será
correspondida
e
o
AssemblyLine
iniciado.
Parabéns!
Você
concluiu
o
treinamento
básico
do
IBM
Tivoli
Directory
Integrator
e
pode
começar
a
ver
a
construção
de
suas
próprias
soluções.
Naturalmente,
a
estrada
não
termina
aqui
e
há
muitas
funcionalidades
para
descobrir
e
explorar.
Como
ocorre
com
todas
as
ferramentas
de
desenvolvimento,
a
prática
vem
com
a
experiência,
então
comece
a
trabalhar.
Considerações
Finais
Embora
o
IBM
Tivoli
Directory
Integrator
torne
a
construção
de
fluxos
de
dados
rápida
e
fácil,
a
qualidade
da
solução
resultante
depende
da
qualidade
de
sua
especificação.
O
IBM
Tivoli
Directory
Integrator
realmente
ajuda,
removendo
os
obstáculos
de
plataformas
e
tecnologia
de
fornecedores
que
bloqueiam
a
visão
e
limitam
a
imaginação.
Ao
abordar
um
problema
de
integração
no
nível
do
fluxo
dos
dados,
você
reduz
a
complexidade.
Isso
fornece
ganhos
ao
longo
de
todo
o
processo:
velocidade
de
implementação,
exatidão
da
solução,
robustez,
facilidade
de
manutenção
e
assim
por
diante.
Na
verdade,
conforme
começa
a
pensar
nos
termos
do
mantra
simplificar
e
solucionar,
você
vê
sua
instalação
e
sua
possibilidades
de
integração
de
uma
perspectiva
completamente
nova.
O
IBM
Tivoli
Directory
Integrator
continua
a
fazer
a
diferença
muito
depois
de
sua
solução
estar
concluída
e
implementada.
Como
suas
necessidades
comerciais
e
técnicas
mudam,
o
IBM
Tivoli
Directory
Integrator
permite
que
você
aprimore
e
amplie
sua
solução
para
atender
a
esses
novos
desafios.
É
essa
a
beleza
do
IBM
Tivoli
Directory
Integrator:
implementação
incremental.
Você
pode
ampliar
sua
solução
de
integração
(e
sua
infra-estrutura)
para
satisfazer
suas
necessidades,
bem
como
o
ambiente
em
que
ela
reside.
Percepção
é
realidade
e
a
percepção
é
formada
(e
limitada)
pelo
conjunto
de
ferramentas
que
você
utiliza.
A
escolha
é
simples.
Você
pode
continuar
a
aceitar
a
realidade
como
a
percebe,
reduzindo
a
visão
de
sua
infra-estrutura
de
integração
para
torná-la
compatível
com
as
ferramentas
que
você
está
utilizando
ou
trocar
as
ferramentas.
Capítulo
3.
Introduzindo
o
IBM
Tivoli
Directory
Integrator
73
74
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Apêndice
A.
index.html
e
OtherPage.html
Você
deve
criar
dois
novos
arquivos
para
completar
os
exemplos
neste
manual:
index.html
e
OtherPage.html.
Você
deve
criar
esses
arquivos
no
diretório
examples/Tutorial.
index.html
A
seguir
está
o
conteúdo
do
arquivo
index.html.
Copie
e
cole
esse
código
em
um
editor
simples,
o
Bloco
de
Notas,
e
salve
o
arquivo
como
index.html:
<html>
<head>
<title>IBM
Tivoli
Directory
Integrator</title>
</head>
<body>
<h1>This
sample
website
is
powered
by
<br>IBM
Tivoli
Directory
Integrator</h1>
<br>
<br>
<br>
<br>
Click
<a
href="OtherPage.html">here</a>
to
go
to
the
other
page.
<br>
<br>
<br>
<br>
Click
<a
href="StartAL">here</a>
to
run
our
<i>Tutorial1</i>
AssemblyLine.
</body>
</html>
OtherPage.html
A
seguir
está
o
conteúdo
do
arquivo
OtherPage.html.
Copie
e
cole
esse
código
em
um
editor
simples,
por
exemplo
o
Bloco
de
Notas,
e
salve
o
arquivo
como
OtherPage.html:
<html>
<head>
<title>IBM
Tivoli
Directory
Integrator
-
Page
2</title>
</head>
<body>
<h1>...and
this
is
the
other
page.</h1>
</div>
<br>
<br>
<br>
<br>
<br>
<br>
Click
<a
href="index.html">here</a>
to
go
to
back
to
the
main
page.
</body>
</html>
©
Copyright
IBM
Corp.
2002,
2003
75
76
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
Apêndice
B.
Avisos
Estas
informações
foram
desenvolvidas
para
produtos
e
serviços
oferecidos
nos
Estados
Unidos.
É
possível
que
a
IBM
não
ofereça
os
produtos,
serviços
ou
recursos
discutidos
neste
documento
em
outros
países.
Consulte
um
representante
IBM
local
para
obter
informações
sobre
produtos
e
serviços
disponíveis
atualmente
em
sua
área.
Qualquer
referência
a
produtos,
programas
ou
serviços
IBM
não
significa
que
apenas
produtos,
programas
ou
serviços
IBM
possam
ser
utilizados.
Qualquer
produto,
programa
ou
serviço
funcionalmente
equivalente,
que
não
infrinja
nenhum
direito
de
propriedade
intelectual
da
IBM
ou
outros
direitos
legalmente
protegidos,
poderá
ser
utilizado
em
substituição
a
este
produto,
programa
ou
serviço.
Entretanto,
a
avaliação
e
verificação
da
operação
de
qualquer
produto,
programa
ou
serviço
não-IBM
são
de
responsabilidade
do
Cliente.
A
IBM
pode
ter
patentes
ou
solicitações
de
patentes
pendentes
relativas
a
assuntos
tratados
nesta
publicação.
O
fornecimento
desta
publicação
não
garante
ao
Cliente
nenhum
direito
sobre
tais
patentes.
Pedidos
de
licença
devem
ser
enviados,
por
escrito,
para:
Gerência
de
Relações
Comerciais
e
Industriais
da
IBM
Brasil
Av.
Pasteur,
138/146
Botafogo
Rio
de
Janeiro,
RJ
CEP
22290-240
For
license
inquiries
regarding
double-byte
(DBCS)
information,
contact
the
IBM
Intellectual
Property
Department
in
your
country
or
send
inquiries,
in
writing,
to:
IBM
World
Trade
Asia
Corporation
Licensing
2-31
Roppongi
3-chome,
Minato-ku
Tokyo
106,
Japan
O
parágrafo
a
seguir
não
se
aplica
a
nenhum
país
em
que
tais
disposições
não
estejam
de
acordo
com
a
legislação
local:
A
INTERNATIONAL
BUSINESS
MACHINES
CORPORATION
FORNECE
ESTA
PUBLICAÇÃO
“
NO
ESTADO
EM
QUE
SE
ENCONTRA”
SEM
GARANTIA
DE
NENHUM
TIPO,
SEJA
EXPRESSA
OU
IMPLÍCITA,
INCLUINDO,
MAS
NÃO
SE
LIMITANDO
ÀS
GARANTIAS
IMPLÍCITAS
DE
NÃO-VIOLAÇÃO,
MERCADO
OU
ADEQUAÇÃO
A
UM
DETERMINADO
PROPÓSITO.
Alguns
países
não
permitem
a
exclusão
de
garantias
expressas
ou
implícitas
em
certas
transações;
portanto,
esta
disposição
pode
não
se
aplicar
ao
Cliente.
Estas
informações
podem
conter
imprecisões
técnicas
ou
erros
tipográficos.
Periodicamente,
são
feitas
alterações
nas
informações
aqui
contidas;
tais
alterações
serão
incorporadas
em
futuras
edições
desta
publicação.
A
IBM
pode,
a
qualquer
momento,
aperfeiçoar
e/ou
alterar
os
produtos
e/ou
programas
descritos
nesta
publicação,
sem
aviso
prévio.
Referências
nestas
informações
a
sites
não-IBM
na
Web
são
fornecidas
apenas
por
conveniência
e
não
representam
de
forma
alguma
um
endosso
a
estes
sites
na
Web.
Os
materiais
nesses
Web
sites
não
são
parte
dos
materiais
deste
produto
IBM
e
o
uso
de
tais
Web
sites
é
por
conta
e
risco
do
Cliente.
©
Copyright
IBM
Corp.
2002,
2003
77
A
IBM
pode
utilizar
ou
distribuir
as
informações
fornecidas
da
forma
que
julgar
apropriada
sem
incorrer
em
qualquer
obrigação
para
com
o
Cliente.
Licenciados
deste
programa
que
desejam
obter
informações
sobre
este
assunto
com
objetivo
de
permitir:
(i)
a
troca
de
informações
entre
programas
criados
independentemente
e
outros
programas
(incluindo
este)
e
(ii)
a
utilização
mútua
das
informações
trocadas,
devem
entrar
em
contato
com:
Gerência
de
Relações
Comerciais
e
Industriais
da
IBM
Brasil
Av.
Pasteur,
138-146
Botafogo
Rio
de
Janeiro,
RJ
CEP
22290-240
Tais
informações
podem
estar
disponíveis,
sujeitas
a
termos
e
condições
apropriadas,
incluindo
em
alguns
casos
o
pagamento
de
uma
taxa.
O
programa
licenciado
descrito
neste
documento
e
todo
o
material
licenciado
disponível
são
fornecidos
pela
IBM
sob
os
termos
do
Contrato
com
o
Cliente
IBM,
do
Contrato
de
Licença
do
Programa
Internacional
IBM
ou
de
qualquer
outro
contrato
equivalente.
Todos
os
dados
de
desempenho
aqui
contidos
foram
determinados
em
um
ambiente
controlado.
Portanto,
os
resultados
obtidos
em
outros
ambientes
operacionais
podem
variar
significativamente.
Algumas
medidas
podem
ter
sido
tomadas
em
sistemas
de
nível
de
desenvolvimento
e
não
há
garantia
de
que
estas
medidas
serão
iguais
em
sistemas
geralmente
disponíveis.
Além
disso,
algumas
medidas
podem
ter
sido
estimadas
por
extrapolação.
Os
resultados
reais
podem
variar.
Os
usuários
deste
documento
devem
verificar
os
dados
aplicáveis
para
seu
ambiente
específico.
As
informações
relativas
a
produtos
não-IBM
foram
obtidas
junto
aos
fornecedores
dos
respectivos
produtos,
de
seus
anúncios
publicados
ou
de
outras
fontes
disponíveis
publicamente.
A
IBM
não
testou
estes
produtos
e
não
pode
confirmar
a
precisão
de
seu
desempenho,
compatibilidade
nem
qualquer
outra
reivindicação
relacionada
a
produtos
não-IBM.
Dúvidas
sobre
os
recursos
de
produtos
não-IBM
devem
ser
encaminhadas
diretamente
a
seus
fornecedores.
Estas
informações
contêm
exemplos
de
dados
e
relatórios
utilizados
nas
operações
diárias
de
negócios.
Para
ilustrá-los
da
forma
mais
completa
possível,
os
exemplos
contém
os
nomes
de
pessoas,
empresas,
marcas
e
produtos.
Todos
esses
nomes
são
fictícios
e
qualquer
semelhança
a
esses
nomes
e
endereços
utilizados
por
uma
empresa
real
é
mera
coincidência.
LICENÇA
DE
COPYRIGHT:
Estas
informações
contém
exemplo
de
programas
aplicativos
na
linguagem
fonte,
que
ilustram
técnicas
de
programação
em
várias
plataformas
operacionais.
O
Cliente
pode
copiar,
modificar
e
distribuir
esses
exemplos
de
programas
de
qualquer
forma,
sem
pagamento
à
IBM,
com
o
objetivo
de
desenvolver,
utilizar,
vender
ou
distribuir
programas
aplicativos
de
acordo
com
a
interface
de
programação
de
aplicativo
da
plataforma
operacional
para
a
qual
os
exemplos
de
programas
são
escritos.
Esses
exemplos
não
foram
completamente
testados
sob
todas
as
condições.
A
IBM
não
pode,
portanto,
garantir
ou
inferir
confiabilidade,
possibilidade
de
assistência
ou
função
desses
programas.
O
cliente
pode
copiar,
modificar
e
distribuir
estas
amostras
de
programas
de
qualquer
forma
sem
78
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
pagamento
à
IBM,
com
o
objetivo
de
desenvolver,
utilizar,
comercializar
ou
distribuir
programas
aplicativos
de
acordo
com
as
interfaces
de
programação
do
aplicativo.
Cada
cópia
ou
parte
destes
programas
de
exemplo
ou
qualquer
trabalho
derivado
deve
incluir
um
aviso
de
copyright
com
os
dizeres:
©
(nome
de
sua
empresa)
(ano).
Partes
desse
código
são
obtidos
a
partir
da
IBM
Corp.
Corp.
©
Copyright
IBM
Corp.
_digite
o
ano
ou
anos_.
Todos
os
direitos
reservados.
Se
estas
informações
estiverem
sendo
exibidas
em
cópia
eletrônica,
as
fotografias
e
ilustrações
coloridas
podem
não
aparecer.
Instruções
para
Componentes
de
Terceiros
Instrução
para
Apache
Este
produto
inclui
o
software
desenvolvido
por
Apache
Software
Foundation
(http://www.apache.org/).
Os
componentes
do
Apache
incluem
as
bibliotecas
Xerces,
Xalan,
XML4J
e
Log4J
e
estas
são
fornecidas
em
forma
de
código
de
objeto.
Este
código
de
objeto
foi
obtido
no
web
site
da
Apache
e
não
foi
modificado.
Licença
para
Apache
Apache
Software
License,
Versão
1.1
Direitos
Autorais
(c)
1999-2002
The
Apache
Software
Foundation.
Todos
os
direitos
reservados.
A
redistribuição
e
o
uso
nas
formas
de
origem
e
binária,
com
ou
sem
modificação
são
permitidas
contanto
que
as
seguintes
condições
sejam
atendidas:
1.
Redistribuições
de
código
fonte
devem
manter
o
aviso
de
direitos
autorais
acima,
esta
lista
de
condições
e
a
cessação
de
direitos
a
seguir.
2.
Redistribuições
na
forma
binária
devem
reproduzir
o
aviso
de
direitos
autorais
acima,
esta
lista
de
condições
e
a
cessação
de
direitos
a
seguir
na
documentação
e/ou
materiais
oferecidos
com
a
distribuição.
3.
A
documentação
do
usuário
final
incluída
na
redistribuição,
se
houver,
deve
incluir
a
autorização
a
seguir:
″Este
produto
inclui
o
software
desenvolvido
por
Apache
Software
Foundation
(http://www.apache.org/).″
Como
alternativa,
esta
autorização
pode
aparecer
no
próprio
software,
se
e
como
quer
que
tais
autorizações
de
terceiros
normalmente
aparecem.
4.
Os
nomes
″Xerces″,
″Xalan″,
″log4j″,
″mx4j″
e
″Apache
Software
Foundation″
não
devem
se
utilizados
para
aprovar
ou
promover
produtos
derivados
deste
software
sem
permissão
anterior
por
escrito.
Para
obter
permissão
por
escrito,
entre
em
contato
comapache@apache.org.
5.
Os
produtos
derivados
deste
software
não
podem
ser
chamados
″Apache″
e
não
devem
conter
″Apache″
em
seu
nome,
sem
permissão
anterior
por
escrito
da
Apache
Software
Foundation.
ESTE
SOFTWARE
É
FORNECIDO
″NO
ESTADO
EM
QUE
SE
ENCONTRA″
E
QUAISQUER
GARANTIAS
EXPRESSA
OU
IMPLÍCITA,
INCLUINDO,
MAS
NÃO
SE
LIMITANDO
ÀS
GARANTIAS
IMPLÍCITAS
DE
MERCADO
OU
DE
ADEQUAÇÃO
A
UM
DETERMINADO
PROPÓSITO,
SÃO
DESCONSIDERADAS.
EM
NENHUM
CASO,
APACHE
SOFTWARE
FOUNDATION
OU
SEUS
CONTRIBUINTES
SERÃO
RESPONSABILIZADOS
POR
QUAISQUER
DANOS
Apêndice
B.
Avisos
79
DIRETO,
INDIRETO,
INCIDENTAL,
ESPECIAL,
EXEMPLAR
OU
CONSEQÜENCIAL
(INCLUINDO,
MAS
NÃO
SE
LIMITANDO
A
SUBSTITUIÇÃO
DE
MERCADORIAS
OU
DE
SERVIÇOS;
PERDA
DE
USO,
DADOS
OU
GANHOS;
OU
INTERRUPÇÃO
DE
NEGÓCIOS)
CAUSADOS
E
EM
QUALQUER
TEORIA
DE
RESPONSABILIDADE,
SEJA
DE
CONTRATO,
RESPONSABILIDADE
ESTRITA
OU
AGRAVO
(INCLUSIVE
NEGLIGÊNCIA
OU
SIMILAR)
PROVENIENTE
DE
QUALQUER
MANEIRA
DA
UTILIZAÇÃO
DESTE
SOFTWARE,
MESMO
SE
AVISADO
DA
POSSIBILIDADE
DE
TAL
DANO.
Este
software
consiste
em
contribuições
voluntárias
feitas
por
muitos
indivíduos
em
nome
da
Apache
Software
Foundation.
Para
obter
informações
adicionais
sobre
a
Apache
Software
Foundation,
consulte
http://www.apache.org
Instrução
para
Rhino
O
IBM
Tivoli
Directory
Integrator
utiliza
Rhino
(JavaScript
para
o
código
do
objeto
Java).
O
código
fonte
para
Rhino
está
localizado
em
http://www.mozilla.org/rhino/download.html
e
é
disponibilizado
pelos
termos
do
Netscape
Public
License
1.1
(http://www.mozilla.org/MPL/NPL-1.1.html).
O
código
fonte
Rhino
que
se
encontra
no
Web
site
mozilla
não
foi
modificado
na
geração
do
código
do
objeto
usado
no
IBM
Tivoli
Directory
Integrator.
Marcas
Os
termos
a
seguir
são
marcas
da
International
Business
Machines
Corporation
nos
Estados
Unidos
ou
em
outros
países,
ou
ambos:
IBM
DB2
Notas
Lotus
Domino
Tivoli
Java,
JavaScript
e
todas
as
marcas
comerciais
e
logos
com
base
em
Java
são
marcas
comerciais
ou
marcas
registradas
da
Sun
Microsystems,
Inc.
nos
Estados
Unidos
e/ou
em
outros
países.
Microsoft
e
Windows
são
marcas
registradas
da
Microsoft
Corporation.
UNIX
é
uma
marca
registrada
da
The
Open
Group
nos
Estados
Unidos
e/ou
outros
países.
Outros
nomes
de
empresas,
produtos
e
serviços
podem
ser
marcas
ou
marcas
de
serviço
de
terceiros.
80
IBM
Tivoli
Directory
Integrator
5.2:
Guia
de
Introdução
���
Impresso
em
Brazil
S517-7939-00
Recommended