WebSphere Product Center: Guia de Suporte

 

Versão 5.2

 

 

 

 

 

 


Nota! Antes de utilizar estas informações e o produto que elas suportam, leia as informações em “Avisos” no final deste documento.

23 de março de 2005

Esta edição deste documento aplica-se ao WebSphere Product Center (5724-I68), versão 5.2, e a todos os releases e modificações subseqüentes até que seja indicado de outra forma em novas edições.

© Copyright International Business Machines Corporations 2001, 2005. Todos os direitos reservados.
Direitos Restritos para Usuários do Governo dos Estados Unidos - Uso, duplicação ou divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM Corporation.

Índice

Cap. 1 - Monitoração do WebSphere Product Center

    Serviços do WebSphere Product Center
        Obter o Status Abreviado de um Serviço
        Obter o Status Longo de um Serviço

    Monitoração e Gerenciamento do Banco de Dados
        1. Alocar Mais Espaço Sempre que Necessário
        2. Aplicar Fix Packs / Conjuntos de Correções
        3. Inicializar e Encerrar o Banco de Dados / Gerenciador de BD
        4. Analisar o Esquema do Banco de Dados e Coletar as Estatísticas
        5. Reorganizar as Tabelas e os Índices
        6. Verificar o Status de Tarefas de Backup Planejadas
        7. Restaurar e Recuperar o Banco de Dados
        8. Ajustar o Desempenho do Banco de Dados

Cap. 2 - Desempenho do WebSphere Product Center

    Gerenciando Espaço em Disco
        Arquivos Temporários
    Armazenando Páginas da Web em Cache
    Especificações de Hardware

Cap. 3 - Administração do Banco de Dados

   Usuário do Banco de Dados
    Backup de Banco de Dados
       Backups Físicos    
        Backups Lógicos
    Verificação do Funcionamento do Banco de Dados
        Configurar Alertas do Centro de Funcionamento do DB2
    Toolkit de Gerenciamento do Banco de Dados

Cap. 4 - Armazenamento de Documentos

   Diretórios
    Arquitetura
    Gerenciando Espaço de Tabelas
    Excluindo Arquivos
    GZIPing Opcional de BLOBs
    Desfragmentação
    Perguntas Freqüentes do Armazenamento de Documentos

Cap. 5 - Backup e Recuperação

   Backup do WebSphere Product Center
    Backup de Banco de Dados
    Recuperação

Cap. 6 - Logger do WebSphere Product Center

   Arquivos de Configuração do Log de Serviços do WebSphere Product Center
    Logs Gerados em Tempo de Execução
    Configurar Arquivos de Log
        Alterar Local
        Alterar Tamanho de Arquivo
        Alterar Opção de Backup de Arquivo
        Alterar Padrão de Conversão
    Especificadores de Conversão
    Modificadores de Formato
    Caracteres de Conversão
    Arquivos de Configuração de Log do WebSphere Product Center

Cap. 7 - Ativar Recurso de Verificação Ortográfica

        Limitações
        Funções de Verificação Ortográfica
    Ativando o Corretor Ortográfico
        Requisitos
        Configurar o WebSphere Product Center para Configuração do WinterTree Spelling Engine Runtime

Cap. 8 - Segurança

    Integração do LDAP
        Visão Geral de Recursos
        Visão Geral Funcional
        Suposições
        Limitações
        Impacto na Migração pré-5.2
    Integrando o LDAP com o WebSphere Product Center
        1. Configurar o Esquema LDAP para Usuários e Funções
        2. Editar Arquivo de Configuração do LDAP
        3. Reiniciar o Sistema

Cap. 9 - Resolução de Problemas

   Ferramentas
    Problemas do Servidor de Aplicativos
        Problemas de Ambiente
        Definições Comuns Incorretas do Arquivo de Configuração
    Servidor de Aplicativos Indiferente
    Problemas do Banco de Dados
        1. Conversão de Caracteres Durante Exportações / Importações de Dados
        2. Problemas de Alocação de Espaço do Banco de Dados
        3. O WebSphere Product Center Fica Lento Quando uma Tarefa em Execução É Eliminada
        4. Problemas em Refazer Alternância de Log
        5. O Middleware WebSphere Product Center É Interrompido e a GUI Está Pendente
        6. Analisar Interrupções da Tabela de Esquema
   Monitorar Erros nos Arquivos de Log
    Problemas de Conectividade
        Erros de Envio de HTTP
        Erro de Busca do FTP
        Testar Conectividade Java
    Outros Problemas
        Parando e Reiniciando o WebSphere Product Center

Cap. 10 - Estrutura de Migração

    Migração do 4.2.0.x para o 5.2
        Exportando uma Empresa
        Importando uma Empresa
        Impacto na Migração
    Migração do 4.2.1 para o 5.1

Cap. 11 - Suporte de Serviços da Web

    Suporte do Web Services Definition Language (WSDL)
    Interface com o Usuário de Serviços da Web
    Operações de Script que Suportam Serviços da Web
    Suporte para Estilo de Documento/Literal

Cap. 12 - Interface de Tarefa da Linha de Comandos

    Integração de Planejador com o IBM Tivoli Workload Scheduler
    Controle de Planejador através da Interface de Linha de Comandos

Cap. 13 - Boas Práticas de Integração

    Definições e Acrônimos
    Dimensões de Integração
        WebSphere Product Center como Sistema de Origem ou de Destino
        Sistema de Controle
        Protocolo
        Formato
        Tamanho dos Dados
        Tipos de Comunicação
        Freqüência
        Encadeamento de Integração
        Acrônimos
    Princípios de Design
        Nova Capacidade de Uso
        Compartilhamento de Informações
        Processamento de Informações
        Manipulação de Eventos
        Rastreio de Alterações
        Conectores Reutilizáveis
    Implementação
    Escalando a Implementação
    Ajuste de Desempenho
    Validação
        Estabilidade
    Teste Escalável
    Visibilidade
    Relatório
    Documentação
    As Dez Principais Diretrizes para Integrações do WebSphere Product Center
        Utilizar Terminologia Clara e Comum para Descrever Integrações
        Nova Capacidade de Uso
        Visibilidade
        Mini-integrações
        Ambientes Representativos vs. Completos
        Teste de Processo Escalável
        Desempenho
        Estabelecer Encadeamento Único Primeiro
        Projetar Especificações e Documentação
            Proprietário Único
    Integrações da Plataforma EAI
        Abordagem
    Vantagens Adicionais

Avisos

Cap. 1 - Monitoração do Websphere Product Center

A monitoração do WebSphere Product Center pode ser executada através do uso dos scripts rootadmin e rmi_status ou através da GUI. Não há uma ferramenta de monitoração independente fornecida com o WebSphere Product Center.

A criação de uma ferramenta de monitoração vai além do escopo deste documento; no entanto, há várias idéias simples que podem ser mencionadas:


Obter o Status Abreviado de um Serviço

Para obter o status abreviado de um serviço, transmita os seguintes parâmetros:

-cmd=check -svc=<service name>

O status abreviado retorna uma das seguintes condições:

em execução O serviço está em execução e respondendo a uma função "heartbeat".
não encontrado O serviço não é localizado. O serviço pode não ter sido iniciado ou ele pode ter travado.
localizado, mas não está respondendo O serviço foi localizado como sendo registrado com o registro RMI, mas não está respondendo à função "heartbeat". Talvez seja necessário reiniciar o serviço.

Obter o Status Longo de um Serviço

Para obter o status longo de um serviço, transmita os seguintes parâmetros para rootadmin.sh:

-cmd=status -svc=<service name>

Ele produzirá um arquivo HTML que pode ser visualizado utilizando qualquer navegador. Em um terminal, utilize Lynx (ou ferramenta similar) para formatar a saída.

O status fornece uma visão geral dos diferentes encadeamentos em execução no serviço, bem como um status das conexões com o banco de dados atualmente obtido pelo serviço.

Exemplo:

Para obter o status do planejador:

rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx /tmp/sch_status.html

ou

rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx -dump /tmp/sch_status.html

Nota: O ">" utilizado no exemplo acima direciona os detalhes de status para um local de saída do arquivo.


Monitoração e Gerenciamento do Banco de Dados

Como o banco de dados relacional é o armazenamento principal para a massa do conteúdo de informações do produto, é importante fornecer ações de gerenciamento que impeçam qualquer degradação e perda de desempenho.

Os alertas de configuração no WebSphere Product Center fornecem notificação sobre problemas que podem surgir, os quais podem ser resolvidos antes de se perder o controle. Um sistema de monitoração também deve ser implementado para monitorar constantemente o banco de dados do WebSphere Product Center.

As tarefas a seguir devem ser executadas regularmente.

1. Alocar Mais Espaço Sempre que Necessário

O gerenciamento de espaço é uma tarefa contínua para a maioria das pessoas. A menos que você tenha um banco de dados completamente estático, o tamanho das tabelas e dos índices será aumentado ou reduzido regularmente. Você precisa assegurar que haja espaço suficiente disponível para que isso ocorra sem interrupção no processamento contínuo. Você também precisa assegurar que o espaço esteja sendo utilizado de maneira eficiente. Utilize o DB2 Control Center para alocar espaço quando necessário. Você também pode utilizar a interface da linha de comandos para concluir a mesma tarefa.

2. Aplicar Fix Packs / Conjuntos de Correções

Fix packs / conjuntos de correções são mecanismos do fornecedor do sistema de banco de dados para fornecer correções do produto integradas e totalmente testadas regularmente. Elas fornecem apenas correções de erros; não incluem nova funcionalidade e não requerem certificação do sistema de destino. É muito importante aplicar os fix packs / conjuntos de correções quando estão disponíveis para evitar quaisquer problemas conhecidos com o sistema de banco de dados. Entre em contato com o fornecedor do sistema de banco de dados para obter mais informações sobre as correções.

3. Inicializar e Encerrar o Gerenciador de Banco de Dados e o Banco de Dados

É necessário encerrar o gerenciador de banco de dados / banco de dados como parte da aplicação das correções, da movimentação dos bancos de dados de um servidor para outro, etc. Você terá de inicializar/encerrar o banco de dados conforme e quando for necessário.

4. Analisar o Esquema do Banco de Dados e Coletar as Estatísticas

O esquema do banco de dados é analisado para coletar as últimas estatísticas sobre tabelas e índices no banco de dados. A abordagem de otimização baseada em custos utiliza as estatísticas para determinar uma estimativa do custo de cada plano de execução. Reúna estatísticas regularmente para fornecer ao otimizador as informações mais adequadas sobre objetos do esquema. Por exemplo, depois de carregar um número significativo de linhas em uma tabela, você deve coletar novas estatísticas para a tabela.

Para analisar o esquema do banco de dados, execute o script de shell analyze_schema.sh, localizado no diretório $TOP/src/db/schema/util.

5. Reorganizar as Tabelas e os Índices

É recomendável reorganizar as tabelas e os índices em intervalos de tempo regulares para obter melhor desempenho.

Com o desenvolvimento atual dos bancos de dados mais rápido do que nunca, o DBA típico deve utilizar um tempo significativo na execução do gerenciamento de espaço e da reorganização para obter ótimo desempenho.

Ótimo desempenho significa ótimo tempo de resposta. Mas isso pode ser degradado, devido a vários problemas de gerenciamento de espaço. A maioria desses problemas está nas três áreas principais, isto é, problemas relacionados à tabela, índices estagnados e particionamento de dados e balanceamento de E/S.

Os problemas relacionados às tabelas são bem conhecidos para a maioria dos DBAs. Eles incluem espaço subutilizado dentro dos blocos de tabela, linhas encadeadas, proximidade incorreta de dados e tabelas fragmentadas (estendidas demais).

O segundo problema principal no desafio de desempenho são os índices estagnados, ¾ de índices que se tornaram grandes e esparsamente ocupados.

Essa condição pode degradar severamente o desempenho de varreduras de intervalo de índice. Ela também pode ocupar uma quantidade substancial de espaço em disco.

O terceiro principal problema no desafio de desempenho é o balanceamento de E/S e particionamento de dados. Quando objetos acessados com freqüência residem no mesmo arquivo de dados, podem resultar em gargalos de E/S. Ferramentas, como reorgchk no DB2, fornecerão informações sobre quais objetos precisam ser reorganizados. Existem muitos métodos e ferramentas disponíveis para reorganização de objetos do banco de dados. Leia a documentação específica do fornecedor do sistema de banco de dados sobre reorganização de tabelas e índices.

6. Verificar o Status de Tarefas de Backup Planejadas

Backups são uma parte integrante do processo de restauração e recuperação. Verifique o status de todas as tarefas de backup para certificar-se de que estejam executando conforme planejado.

A verificação do status de backup depende de como você define o procedimento de backup e de quais ferramentas são utilizadas para fazer backups. Consulte a documentação específica do fornecedor do sistema de banco de dados sobre Backups para obter mais informações.

7. Restaurar e Recuperar o Banco de Dados

No caso de uma falha do banco de dados, determine o tipo e a extensão da falha. A análise deve informar as etapas executadas para recuperar o sistema. Utilize o processo de restauração e recuperação, conforme definido por seu grupo de suporte de TI.

A restauração de um backup físico é reconstruí-lo e torná-lo disponível para o servidor de banco de dados. Recuperar um arquivo de dados restaurado é atualizá-lo utilizando refazer registros, isto é, registros de alterações feitas no banco de dados depois que o backup foi feito.

8. Ajustar o Desempenho do Banco de Dados

Uma das maiores responsabilidades de um DBA é assegurar que o banco de dados seja ajustado corretamente. Qualquer RDBMS é altamente ajustável e permite que o banco de dados seja monitorado e ajustado para aumentar seu desempenho.

Um DBA deve fazer o ajuste do desempenho por um dos seguintes motivos:

Otimize o uso do hardware para economizar dinheiro (empresas estão gastando milhões em hardware).

Consulte a documentação do produto fornecida com o produto DB2 para obter mais informações sobre os diferentes métodos disponíveis para ajustar o desempenho do banco de dados.

Cap. 2 - Desempenho do WebSphere Product Center


Gerenciando Espaço em Disco

É recomendável ter de 30-50 gigabytes de espaço utilizável para as partições temporárias e do middleware WebSphere Product Center.

Em uma configuração com cluster, o armazenamento compartilhado é necessário para os servidores de aplicativos. Os arquivos de imagem e HTML estáticos podem ser sincronizados utilizando um utilitário, como rsync, mas também é recomendado utilizar armazenamento compartilhado para os servidores da Web.

Para os servidores de aplicativos, $TOP, o diretório de ftp e a raiz do documento do servidor da Web (o local de HTML e imagens estáticos) geralmente estão no dispositivo compartilhado enquanto suporta aplicativos como Apache, o JDK e o servidor de aplicativos estão instalados em armazenamento local. Os logs podem ser mantidos em armazenamento local ou compartilhado. O diretório temp, conforme especificado em common.properties, deve ser local.

Arquivos Temporários

Os diretórios a seguir retêm arquivos temporários gerados em tempo de execução e estão localizados no sistema de arquivos:

Nota: Os diretórios de arquivos temporários poderão ser diferentes dependendo da versão instalada do WebSphere Product Center.

$TOP/public_html/created_files/distributor

Exemplo Utilizando Linux

cd $TOP/public_html/created_files/distributor

find . -type f -mtime +7 -exec ls -l {} \; <-- para visualizar quais arquivos serão excluídos

find . -type f -mtime +7 -exec rm -f {} \; <-- para excluir os arquivos

$TOP/public_html/suppliers/company code/aggregated_files/

$TOP/public_html/suppliers/company code/tmp_files:

$TOP/logs


Armazenando Páginas da Web em Cache

A instalação padrão do WebSphere Product Center é definida para direcionar servidores proxy para NÃO armazenar páginas em cache. A permissão do armazenamento de páginas em cache limitará muito a capacidade de uso do botão Voltar do navegador, gerando mensagens de erro e páginas expiradas. Se o armazenamento em cache for desejado, utilize os recursos de navegação da GUI e evite o uso do botão Voltar.

Edite o arquivo: common.properties
Parâmetro: no_cache_directive=on/off

Por padrão, o parâmetro é definido como off.

Se estiver definido como on, ele definirá os parâmetros na resposta para direcionar os servidores proxy a não armazenar as páginas em cache e limitará muito a capacidade do botão Voltar do navegador.

Se estiver definido como off, o botão Voltar do navegador estará funcional e não provocará erros.


Especificações de Hardware

A especificação de hardware deve ser escolhida com base nas boas práticas, experiência anterior e requisitos de competência para obter ótimo desempenho do WebSphere Product Center.

Application Server

A maioria dos objetos de dados no WebSphere Product Center são armazenados no servidor de banco de dados. Por esse motivo, o armazenamento em disco nos servidores de aplicativos serão utilizados somente para armazenar os componentes do S.O., os executáveis do WebSphere Product Center, componentes de terceiros e arquivos de trabalho temporários e logs do WebSphere Product Center.

O middleware WebSphere Product Center utiliza vários componentes J2EE, os quais cada um deles pode ocupar grande quantidade de memória. O WebSphere Product Center recomenda ter um servidor de aplicativos com 4 GBs de memória, dos quais 2.5 GB geralmente serão utilizados para uma instância do middleware WebSphere Product Center.

Servidor de Banco de Dados

O tamanho do servidor de banco de dados depende de uma série de fatores. Esses fatores podem incluir o número de itens de catálogo, o número de atributos associados a cada item e o tamanho dos atributos de catálogo.

Uma maneira prática e segura de proceder é alocar 8 KB de espaço para cada atributo. Por exemplo, um catálogo com 500.000 itens, cada um tendo 14 atributos, requer o armazenamento mínimo de banco de dados de 56 GBs (500.000 itens x 14 atributos x 8 KB).

Esse espaço não inclui o que é necessário para os binários do banco de dados, os segmentos desfeitos, espaços de tabelas temporários, etc.

Arquitetura Recomendada

A opção para utilizar um servidor de planejador opcional para manipular transações em segundo plano será recomendada se o WebSphere Product Center for utilizado para manipular grandes tarefas do batch.

Cap. 3 - Administração do Banco de Dados


Usuário do banco de dados

O usuário e a senha do banco de dados, os quais foram criados para a instalação do WebSphere Product Center, são definidos em common.properties. Alterar a senha do usuário do banco de dados sem atualizar o arquivo common.properties fará com que o middleware WebSphere Product Center trave. Se a senha do usuário do banco de dados precisar ser alterada, atualize a propriedade db_password em common.properties. A autenticação de senha está no nível do sistema operacional no DB2.


Backup de Banco de Dados

Fazer backup e recuperar o banco de dados é uma das operações mais críticas que um DBA (administrador do banco de dados) executa. Por esse motivo, é extremamente importante implementar uma estratégia bem definida de backup e recuperação. As estratégias de backup a seguir são sugeridas para manter o ótimo desempenho do WebSphere Product Center.

Backups Físicos

O WebSphere Product Center recomenda fazer backup físico diário do banco de dados. Você pode fazer backup físico off-line (backup de imagem) ou backup físico on-line (backup rápido) do banco de dados com base na disponibilidade de tempo de inatividade do sistema. A maioria dos bancos de dados do WebSphere Product Center são acessados 24 horas por dia, 7 dias por semana, ou seja, pode não haver tempo de inatividade disponível para fazer backup off-line do banco de dados. O banco de dados deve estar executando em modo logretain no DB2 para que possa fazer backup on-line do banco de dados. O backup on-line do banco de dados permite recuperar o banco de dados ao seu estado original em um ponto específico. Consulte a documentação do produto DB2 para obter mais informações.

Backups Lógicos

Os backups lógicos armazenam informações sobre os objetos de esquema criados para um banco de dados. Usando um utilitário DB2MOVE no DB2, você pode exportar seletivamente objetos específicos para proteção e flexibilidade complementar em uma estratégia de backup do banco de dados. As exportações do banco de dados não são substitutas de backups físicos e não podem fornecer as mesmas vantagens de recuperação completa que o backup físico oferece. Algumas vezes os backups lógicos são muito práticos para a configuração de instâncias de QA ou de teste com os dados de produção. O toolkit de DBM do WebSphere Product Center também tem instruções específicas do WebSphere Product Center sobre como fazer backup lógico do esquema de banco de dados do WebSphere Product Center.


Verificação do Funcionamento do Banco de Dados

Verificar o funcionamento do sistema de banco de dados em intervalos regulares é importante para obter a alta disponibilidade do sistema.

Configurar Alertas do Centro de Funcionamento do DB2

Utilize o Centro de Funcionamento do DB2 para monitorar o estado do ambiente de banco de dados e para fazer quaisquer alterações quando for necessário. O monitor de funcionamento monitora continuamente um conjunto de indicadores de funcionamento. Se o valor atual de um indicador de funcionamento estiver fora do intervalo operacional aceitável, definido por seus limites de aviso e alarme, o monitor de funcionamento gerará um alerta de funcionamento. O DB2 é fornecido com um conjunto de valores de limite predefinidos, o qual você pode personalizar posteriormente.

A seguir são descritas algumas das principais tarefas que você pode executar com o Centro de Funcionamento:


Toolkit de Gerenciamento do Banco de Dados

Existem vários scripts de gerenciamento de banco de dados disponíveis para gerenciar o Banco de Dados do WebSphere Product Center. Todos esses scripts são colocados juntos na forma de um toolkit.

As diferentes tarefas abordadas no toolkit para o DB2 são:

Cap. 4 - Armazenamento de Documentos

O Armazenamento de Documentos é a área no WebSphere Product Center em que estão armazenados todos os arquivos de entrada e de saída. Isso inclui alimentações de importação, scripts, relatórios e arquivos de especificação.

A estrutura da GUI fornece hyperlinks para arquivos que são armazenados no banco de dados, que são essencialmente indicadores para o local dos arquivos.

Diretórios

O armazenamento de documentos é exibido em formato de estrutura de arquivo. Os arquivos podem ser acessados dos seguintes diretórios de Armazenamento de Documentos:

archives

public_html

eventprocessor

schedule_logs

feed_files

scripts

ftp

tmp

params

users

Ftp e public_html são diretórios do sistema de arquivos montados no Armazenamento de Documentos. Eles são definidos em $TOP/etc/docstore_mount.xml. Esse arquivo fornece o local de vários pontos de montagem do Sistema de Arquivos do S.O.

As variáveis utilizadas são "$ftp_root_dir" e "$supplier_base_dir", que são definidas no arquivo de configuração common.properties.

Arquitetura

O banco de dados tem um espaço de tabelas designado para o arquivos armazenados no Armazenamento de Documentos. Quando um arquivo é armazenado no armazenamento de documentos, um novo registro é criado no banco de dados. O banco de dados armazena os arquivos como um arquivo BLOB (Binary Large Object).

Um arquivo BLOB refere-se a qualquer bloco de bits grande aleatório que precisa ser armazenado em um banco de dados, como um arquivo de imagem ou de som. O ponto essencial sobre um BLOB é que ele é um objeto que não pode ser interpretado dentro do banco de dados em si.

O banco de dados armazena BLOBs dentro de um espaço de tabelas no próprio banco de dados. A vantagem desse método é que o banco de dados protege os dados, utilizando os mecanismos do servidor de banco de dados que protegem todos os outros tipos de dados da tabela, como mecanismos de segurança e de backup e recuperação.

Gerenciando Espaço de Tabelas

O gerenciamento de espaço é uma tarefa contínua. O tamanho da tabela Armazenamento de Documentos será aumentado ou reduzido. Certifique-se de que haja espaço suficiente disponível para suportar os arquivos binários grandes sem interrupção no processamento contínuo. Além disso, certifique-se de que o espaço esteja sendo utilizado de maneira eficiente.

Excluindo Arquivos

Quando o WebSphere Product Center exclui um arquivo BLOB e as referências correspondentes, o mecanismo do banco de dados não libera o espaço alocado, mas sim reutiliza-o para novos arquivos.

Dessa forma, cada arquivo é armazenado em um bloco de memória e, à medida que o arquivo é excluído, o bloco de memória é reutilizado conforme novos arquivos são incluídos.

GZIPing Opcional de BLOBs

Para compactar documentos armazenados em BLOBs, faça o seguinte:

Arquivo a ser editado: common.properties

Parâmetro: gzip_blobs=true/false

  • Os valores válidos são true e false
  • Se estiver ausente, o padrão será false
  • Se for true, os documentos armazenados nos blobs serão compactados

Desfragmentação

Devido às várias inclusões e exclusões de arquivos no Armazenamento de Documentos, os blocos de memória podem se tornar fragmentados. A fragmentação ocorre naturalmente quando você utiliza um disco com freqüência, bem como ocorre a criação, exclusão e modificação de arquivos.

Em algum ponto, o sistema operacional precisa armazenar partes de um arquivo em clusters adjacentes. Isso é totalmente invisível para os usuários, mas pode reduzir a velocidade de acesso aos dados, pois a unidade de disco deve procurar por partes diferentes do disco para unir um único arquivo.

Para melhorar o desempenho do Armazenamento de Documentos, é melhor exportar e importar a tabela DBL utilizando compress=y. Isso reunirá todos os arquivos em um cluster contínuo, aumentando o tempo para importação de arquivos.

Nota: Dependendo da alocação de espaço de tabelas, talvez não seja necessário fazer a desfragmentação regularmente. Monitore a velocidade do disco regularmente para determinar se a desfragmentação do espaço em disco é necessária.

Perguntas Freqüentes do Armazenamento de Documentos

Problema: Depois que os blobs são excluídos, ainda há impacto na velocidade do WebSphere Product Center?

de Ref. Depois que as linhas são excluídas, as páginas lentas do Armazenamento de Documentos são aprimoradas.

Problema: O espaço ainda é alocado, causando exportações/importações lentas?

Sim. A única maneira de corrigir isso é exportar e importar a tabela DBL com compress=y.

Cap. 5 - Backup e Recuperação

O método de backup específico e o software utilizado não constam no escopo deste documento; no entanto, são apresentados conceitos de backup.

O backup do WebSphere Product Center é constituído de dois componentes: fazer backup dos diretórios do sistema de arquivos em que o WebSphere Product Center está instalado e fazer backup do banco de dados.

Backup do WebSphere Product Center

Para fazer backup do WebSphere Product Center, simplesmente faça backup do diretório $TOP conforme definido em common.properties. Como os arquivos são alterados nesses diretórios, recomenda-se fazer backups diários. A instituição de um planejamento de backup consiste em um backup completo regular e backups incrementais diários são recomendados.

Backup de Banco de Dados

A maneira de fazer backup do banco de dados vai bem além do escopo deste documento, principalmente por causa da variedade de métodos disponíveis: exportações, backups a quente, backups a frio, espelhamento, etc. Qualquer que seja a maneira escolhida, é necessário apenas fazer backup do esquema do usuário do banco de dados do WebSphere Product Center, conforme definido em common.properties.

Como o banco de dados deve estar disponível para o WebSphere Product Center executar, é recomendável utilizar backups on-line diários ou backups 'a quente'. Exportações ou backups off-line também devem ser feitos regularmente.

Consulte a seção "Backup de Banco de Dados" para obter mais informações sobre backups de banco de dados.

Recuperação

A recuperação pode ser separada em duas categorias: recuperação dos arquivos de suporte e do WebSphere Product Center e recuperação do banco de dados.

Para recuperar arquivos do WebSphere Product Center e de suporte, basta restaurar os arquivos ou diretórios que estão faltando para seus locais originais e, em seguida, iniciar o WebSphere Product Center.

Para recuperar o banco de dados, execute as seguintes etapas:

Cap. 6 - Logger do WebSphere Product Center

O WebSphere Product Center fornece arquivos pré-configurados que geram logs, os quais podem ser utilizados posteriormente para resolver problemas no WebSphere Product Center. Este documento fornece uma visão geral do mecanismo de log e explica como configurar os arquivos de log.


Arquivos de Configuração do Log de Serviços do WebSphere Product Center

Os arquivos a seguir controlam vários subsistemas em todo o WebSphere Product Center. O local do log gerado é definido em cada arquivo.

Nota: Todos os caminhos são relativos a $TOP

/etc/logs/eventprocessor.log.xml

/etc/logs/scheduler.log.xml

/etc/logs/system.log.xml

/etc/logs/appsvr.log.xml

/etc/logs/workflowengine.log.xml


Logs Gerados em Tempo de Execução

Os logs gerados em tempo de execução podem ser visualizados quanto a erros, o que ajuda a resolver problemas se um erro estiver relacionado ao WebSphere Product Center ou à infra-estrutura de suporte interna.

Os arquivos de log gerados pelo WebSphere Product Center são armazenados em $TOP/logs/*.log.

Configurar Arquivos de Log

As propriedades dos arquivos de log do WebSphere Product Center podem ser editadas conforme necessário (isto é, local, tamanho máximo, formato). As seções a seguir descrevem os elementos utilizados para configurar os logs e para fornecer uma lista de valores que podem ser utilizados ao configurar um arquivo de log do WebSphere Product Center.

Alterar Local

Nota: Aplica-se somente a anexadores de Arquivo e Rolagem.

Para alterar o local de um arquivo de log gerado, altere os parâmetros dos arquivos de configuração de log especificados.

Por exemplo:

<param name="File"   value="${TOP}/logs/webserver_db.log " />

Alterar Tamanho do Arquivo

Nota: Aplica-se somente a anexadores de rolagem.

O tamanho do arquivo de log pode ser definido para um tamanho de armazenamento especificado antes de ele começar a girar e limpar a ordem inicial da saída. Para controlar quando o arquivo começa a truncar, altere o valor de parâmetro de tamanho do arquivo de log.

Por exemplo:

<param name="maxFileSize" value="10MB" />

Alterar Opção de Backup de Arquivo

Nota: Aplica-se somente a anexadores de rolagem.

O logger pode ser definido para manter um número especificado de backups para um arquivo de log. Quando o valor máximo é atingido, o arquivo mais antigo é descartado.

Por exemplo:

<param name="maxBackupIndex" value="2" />

Alterar Padrão de Conversão

A configuração de layout dos logs pode ser alterada redefinindo o padrão de conversão.

Por exemplo:

<param name="ConversionPattern" value=
"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>

O padrão de conversão está estritamente relacionado ao padrão de conversão da função printf em C. Um padrão de conversão é composto por expressões de controle de formato e de texto literal, chamadas especificadores de conversão.

Nota: Você tem liberdade para inserir qualquer texto literal dentro do padrão de conversão.


Especificadores de Conversão

Cada especificador de conversão inicia com um sinal de porcentagem "%" e é seguido por modificadores de formato e um caractere de conversão opcionais.

% (modificadores de formato)(caractere de conversão)

Por exemplo,

%-5p [%t]: %m%n

Por padrão, as informações relevantes são apresentadas como estão. No entanto, com o auxílio de modificadores de formato, é possível alterar as larguras mínima e máxima e a justificação do campo.

O modificador de formato opcional é colocado entre o sinal de porcentagem e o caractere de conversão. No exemplo do especificador de conversão,
%-5p significa que a prioridade do evento de log deve ficar justificada à esquerda, para uma largura de cinco caracteres.

O primeiro modificador de formato opcional é o sinalizador de justificação à esquerda que é apenas o caractere de sinal de menos (-). Em seguida, vem o modificador opcional de largura mínima de campo. Essa é uma constante decimal que representa o número mínimo de caracteres para saída. Se o item de dados exigir menos caracteres, ele será preenchido no lado esquerdo ou direito até a largura mínima ser atingida.

O padrão é preencher no lado esquerdo (justificar à direita), mas você pode especificar o preenchimento à direita, com o sinalizador de justificação à esquerda. O caractere de preenchimento é espaço. Se o item de dados for maior que a largura mínima do campo, o campo será expandido para acomodar os dados. O valor nunca é truncado.

Este comportamento pode ser alterado utilizando o modificador largura máxima do campo, o qual é designado por um ponto seguido de uma constante decimal. Se o item de dados for maior que o campo máximo, os caracteres extras serão removidos do início do item e não do final.

Por exemplo, se a largura máxima do campo for oito e o item de dados tiver dez caracteres, os dois primeiros caracteres do item de dados serão eliminados.

Nota: Este comportamento difere da função printf em C, na qual o truncamento é feito do final.

As páginas a seguir fornecem os valores utilizados para definir os especificadores de conversão.


Modificadores de Formato

A seguir estão vários exemplos de modificadores de formato para o especificador de conversão de categoria.

Modificador de Formato

Justificar à esquerda

Largura

largura

Largura máx.

Comentário

%20c

False

20

Nenhum(a)

Preenchimento à esquerda com espaços, se o nome da categoria tiver menos de 20 caracteres.

%-20c

True

20

Nenhum(a)

Preenchimento à direita com espaços, se o nome da categoria tiver menos de 20 caracteres.

%30c

N/D

Nenhum(a)

30

Truncar no início se o nome da categoria tiver mais de 30 caracteres.

%20.30c

False

20

30

Preenchimento à esquerda com espaços, se o nome da categoria tiver menos de 20 caracteres. No entanto, se o nome da categoria tiver mais de 30 caracteres, truncar do início.

%-20.30c

True

20

30

Preenchimento à direita com espaços, se o nome da categoria tiver menos de 20 caracteres. No entanto, se o nome da categoria tiver mais de 30 caracteres, truncar do início.


Caracteres de Conversão

A seguir está uma lista de caracteres de conversão reconhecidos:

Caractere de Conversão

Efeito

c

Utilizado para apresentar a categoria do evento de log. Um especificador de precisão pode seguir opcionalmente o especificador de conversão de categoria, que é uma constante decimal entre parênteses.

Se for fornecido um especificador de precisão, apenas o número correspondente de componentes mais à direita do nome de categoria serão impressos. Por padrão, todo o nome da categoria é impresso.

Por exemplo, para o nome de categoria "a.b.c", o padrão %c{2} apresentará "b.c".

d

Utilizado para apresentar a data do evento de log. Um especificador de formato de data entre colchetes pode vir depois do especificador de conversão de data.

Por exemplo, %d{HH:mm:ss,SSS} ou %d{dd MMM yyyy HH:mm:ss,SSS}. Se nenhum especificador de formato de data for fornecido, o formato ISO8601 será assumido.

O especificador de formato de data admite a mesma sintaxe que a cadeia de parâmetro de hora do SimpleDateFormat. Embora faça parte do JDK padrão, o desempenho de SimpleDateFormat é bem ruim.

Para obter melhores resultados, é recomendável utilizar os formatadores de data log4j. Esses formatadores podem ser especificados utilizando uma das cadeias "ABSOLUTE", "DATE" e "ISO8601" para especificar AbsoluteTimeDateFormat, DateTimeDateFormat e ISO8601DateFormat, respectivamente. Por exemplo, %d{ISO8601} ou %d{ABSOLUTE}.

Esses formatadores de data dedicados executam significativamente melhor que SimpleDateFormat.

m

Utilizado para apresentar a mensagem fornecida pelo WebSphere Product Center associada ao evento de log.

n

Apresenta o caractere (ou caracteres) separador de linha que depende da plataforma.

Esse caractere de conversão oferece praticamente o mesmo desempenho que utilizar cadeias de separadores de linha não portáteis, como "\n" ou "\r\n". Dessa forma, é a maneira preferida de especificar um separador de linha.

p

Utilizado para apresentar a prioridade do evento de log.

r

Utilizado para apresentar quantos milissegundos foram decorridos desde o início do WebSphere Product Center até a criação do evento de log.

t

Utilizado para apresentar o nome do encadeamento que gerou o evento de log.

\x

Utilizado para apresentar o NDC (nested diagnostic context) associado ao encadeamento que gerou o evento de log.

%

A seqüência %% apresenta um único sinal de porcentagem.


Arquivos de Configuração de Log do WebSphere Product Center

Os exemplos a seguir demonstram como os arquivos de log do WebSphere Product Center estão definidos. As entradas em negrito definem a configuração dos arquivos de log.

<!-- basic ASYNC appender -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="DEFAULT"/>
</appender>

 

<!-- basic CONSOLE appender. This is the same as doing system.out-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value=

"[%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>

<!-- simple FILE appender. The file will be opened and if append is true  -->
<!--                       it will not be truncated                       -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
   <param name="File"   value="${TOP}/logs/tomcat_default.log " />
   <param name="Append" value="true" />           
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value=

"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
    </layout>       
</appender>

<!-- Rolling FILE appender. The file will be opened and if append is true  -->
<!--                        it will not be truncated                       -->
<!--                        maxFileSize: How big before you rotate         -->
<!--                        maxBackupIndex: How many backups do you keep?  -->
   <appender name="DB" class="org.apache.log4j.RollingFileAppender">
      <param name="File"   value="${TOP}/logs/tomcat_db.log " />
      <param name="Append" value="true" />           
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value=

"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
  </layout>       
</appender>

<!-- For the austin.db category, you want to have only a few logs kept hence -->
<!--  the rollingappender -->
<category name="austin.db" additivity=" false">
      <priority value="INFO" />
      <appender-ref ref="DB" />
</category>

<!-- ROOT CATEGORY -->
<!-- MUST ALWAYS BE LAST ENTRY AND HAVE AN APPENDER-->
<!-- If a logging event is not caught by any other logger it will be handled by this-->
<!-- rule. -->
<root>
      <priority value="error"/>
      <appender-ref ref="DEFAULT"/>
</root>

</log4j:configuration>

Cap. 7 - Ativar Recurso de Verificação Ortográfica

A funcionalidade de Verificação Ortográfica no WebSphere Product Center é disponibilizada utilizando a estrutura do produto de terceiros  "Sentry Spell Checking Engine" da WinterTree. Por esse motivo, o WebSphere Product Center não é incluído no pacote configurável de nenhuma funcionalidade de Verificação Ortográfica e a compra do software Spelling Service Engine, versão 5.10, da WinterTree é requerida para ativar a funcionalidade de verificação ortográfica. 

Nota: Para utilizar o recurso de ortografia no WebSphere Product Center, o Wintertree Sentry Spelling Checker Engine Java SDK 5.10 é um pré-requisito.

Com a funcionalidade de Verificação Ortográfica ativada, os usuários podem executar a verificação ortográfica apenas nas telas Detalhes do Item e Autoria de Conteúdo de Edição Única. O suporte para a funcionalidade de verificação ortográfica nas telas Edição Múltipla ou Edição em Massa estará disponível em um release futuro.

Limitações

Funções de Verificação Ortográfica


Ativando o Corretor Ortográfico

Este documento descreve a instalação de configuração requerida para que o WebSphere Product Center funcione com o software Spelling Service Engine versão 5.10 da WinterTree em tempo de execução.

Requisitos

Configurar o WebSphere Product Center para a Configuração do WinterTree Spelling Engine Runtime

Para configurar o WebSphere Product Center para a configuração do WinterTree Spelling Engine Runtime, três arquivos de propriedades precisam ser alterados:

NOTA: Depois que todos os arquivos de propriedades forem alterados, reinicie o WebSphere Product Center para lançar o parâmetro de configuração do Runtime Spelling Engine.

common.properties

Local:  arquivo <WPC5.2_INSTALL_DIR>/etc/default/common.properties

Valores: Edite o arquivo common.properties para incluir os seguintes valores de propriedades:

spell_check=true  (Isso ativa o Mecanismo de Verificação Ortográfica) 
spell_check_vendor=wintertree (Isso define o Fornecedor do Mecanismo de Ortografia como WinterTree SSCE)
spell_check_vendor_class=common.plugins.wintertree.WinterTreePlugin (Isso define o plugin como Wintertree SSCE)
 spell_license=<license_key> (Chave no Valor da chave de licença de Purchased Software for Spelling Engine (versão 5.10) da WinterTree na propriedade <license_key>)

spellservice.properties

Local: arquivo <WPC5.2_INSTALL_DIR>/etc/default/plugins/wintertree/spellservice.properties

Valores: Substitua todas as ocorrências de <WINTERTREE_INSTALL_DIR> nas propriedades de MainLexicon<n> pelo local de instalação do WinterTree Spelling Engine Software em seu sistema.Isso configura os Analisadores Léxicos/Dicionários e as propriedades de tempo de execução do mecanismo de Ortografia.

ccd.rc

Local: arquivo <WPC5.2_INSTALL_DIR>/setup/ccd.rc

Crie um Link Simbólico para o arquivo jar da WinterTree instalado, denominado ssce.jar, em <WINTERTREE_INSTALL_DIR>/runtime/lib de <WPC_INSTALL_DIR>/jars/ssce.jar.Isso pode ser conseguido pela inclusão nesse arquivo da linha sem comentários, conforme mostrado no exemplo a seguir.

Por exemplo:

- AddJar $JARDIR/ssce.jar

 

Cap. 8 - Segurança

Integração do LDAP

A integração do LDAP (Lightweight Directory Access Protocol) aprimora a infra-estrutura de segurança do WebSphere Product Center com a introdução de três pontos de função no WebSphere Product Center:


Visão Geral do Recurso

A integração do LDAP fornece a capacidade de utilizar sistemas LDAP de terceiros com a finalidade de autenticação. Devido à complexidade envolvida na utilização de recursos LDAP de terceiros para autorização, a infra-estrutura de autorização existente disponível no WebSphere Product Center 5.2 é utilizada para autorizar os usuários do LDAP enquanto a autenticação é feita na região do LDAP. As autorizações de usuários e funções do LDAP no WPC são feitas em tempo de execução e também possuem como base as operações de script chamadas pelo usuário/sistema. O usuário do LDAP no WebSphere Product Center é diferenciado pela utilização de um sinalizador LDAP.

A integração do LDAP com o WebSphere Product Center fornece uma infra-estrutura de autorização de segurança aprimorada que permite o suporte de mais de mil usuários informais que requeiram autorização para uma variedade de funções (internas e externas). Por exemplo, Gerenciadores de Categoria seria uma função interna e Gerenciador Assistente de Marca seria uma função externa.

Para o WebSphere Product Center 5.2, a integração do LDAP é certificada apenas com o IBM Tivoli Directory Server versão 5.2 (que suporta o LDAP v3). Apesar disso, a implementação foi estendida para funcionar com os seguintes Servidores LDAP: Sun Java System Directory Server 5.2, Weblogic 8.1 – Embedded LDAP Server e Novell® eDirectory™ 8.7.3.

Nota: Não existe suporte para recursos de conexão única neste release. A implementação de conexão única está planejada para um release futuro.

Visão Geral Funcional

Suposições

Se um usuário estiver autenticado em uma sessão, ele continuará a ser autenticado até o final da sessão, mesmo se a identidade do usuário for alterada durante esse período (por exemplo, alteração na função, senha e etc).

Limitações

A extração de cadeias específicas do código do idioma em procuras de entrada do LDAP não foi certificada neste release. 

Impacto na Migração Pré-5.2

Há uma alteração de esquema em WPC USER ENTITY como resultado da introdução de um novo sinalizador LDAP para a diferenciação entre usuários do LDAP e do Product Center.


Integrando o LDAP com o WebSphere Product Center

Esta seção descreve as tarefas que precisam ser executadas para integrar o LDAP ao IBM Tivoli Directory Server Versão 5.2 ao WebSphere Product Center 5.2. Supõe-se que o IBM Tivoli Directory Server Versão 5.2 foi instalado corretamente. A configuração do LDAP requer um esquema LDAP configurado para usuários e funções para o IBM Tivoli Directory Server Versão 5.2.

Para integrar o LDAP com o WebSphere Product Center, faça o seguinte:

1. Localize o arquivo de configuração empacotado para configuração do LDAP

2. Configure o esquema LDAP para usuários e funções do IBM Tivoli Directory Server Versão 5.2

3. Edite o arquivo de configuração do LDAP

4. Ative o LDAP completamente no WebSphere Product Center

5. Reinicie o WebSphere Product Center

1. Localize o pacote de arquivos para a configuração do LDAP

    <WPC5.2_INSTALL_DIR>/etc/default/ldap_config.xml

2. Configure o esquema LDAP para usuários e funções

Criar uma Nova Região

1. Crie uma nova Região a partir da Ferramenta de Administração da Web do IBM Tivoli Directory Server utilizando o caminho de menus Regiões e Gabaritos > Incluir Região.

2. Preencha todos os campos obrigatórios. 

3. Selecione o domínio da Classe de Objeto como o DN Pai.

Por exemplo:

DN Pai do DN Relativo
cn=myrealm dc=wpcdomain.dc=isl.dc=com

Criar um Novo Gabarito de Usuário

1. Crie um novo Gabarito de Usuário a partir da Ferramenta de Administração da Web do IBM Tivoli Directory Server clicando em Regiões e Gabaritos > Incluir Gabarito de Usuário

2. Digite a entrada de região criada acima como o DN Pai. Selecione a classe de objeto Estrutural como inetOrgPerson

3. Edite a guia de atributo Obrigatório para incluir a seguinte lista de atributos obrigatórios:

4. Associe esse Gabarito de Usuário à Região criada anteriormente utilizando o caminho de menus Regiões e Gabaritos > Gerenciar Regiões > Editar.

Por exemplo:

DN Pai
dc=wpcdomain,dc=isl,dc=com
cn=mytemplate,dc=wpcdomain,dc=isl,dc=com


Criar um Novo Usuário

1. Crie um novo Usuário a partir da Ferramenta de Administração da Web do IBM Tivoli Directory Server utilizando o caminho de menus Usuários e Grupos > Incluir Usuário.

2. Selecione a região criada anteriormente como a Região desse usuário. 

3. Digite a guia de atributo "Obrigatório" para incluir os atributos mencionados anteriormente.

Criar um Novo Grupo

1. Crie um novo Grupo a partir da Ferramenta de Administração da Web do IBM Tivoli Directory Server utilizando o caminho de menus Usuários e Grupos > Incluir Grupo.

2. Selecione a região criada anteriormente como a Região para esse grupo. A classe de objeto para o grupo é groupOfNames. 

3. Associe os Usuários aos Grupos.

3. Edite o arquivo de configuração do LDAP

O arquivo de configuração LDAP a seguir é requerido para integrar o LDAP ao WebSphere Product Center:

<WPC5.2_INSTALL_DIR>/etc/default/ldap_config.xml

Edite o arquivo ldap_config.xml para a autenticação LDAP em tempo de execução substituindo os valores, mostrados entre colchetes, pelos valores apropriados da instalação do LDAP.

<?xml version="1.0" encoding="UTF-8"?>
<LdapConfiguration>
    <connectionInfo>
        <connectionParam name = "java.naming.provider.url"> (Digite a URL do servidor LDAP)</connectionParam>
        <connectionParam name = "java.naming.security.principal">(Digite o nome do usuário para efetuar login no servidor LDAP)</connectionParam>
        <connectionParam name = "java.naming.security.credentials">(Digite a senha para efetuar login no servidor LDAP)</connectionParam>
        <connectionParam name = "java.naming.security.authentication">simple</connectionParam>
        <connectionParam name = "java.naming.referral">follow</connectionParam>
        <connectionParam name = "java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</connectionParam>
        <connectionParam name = "java.naming.ldap.version">3</connectionParam>
    </connectionInfo>

<RoleMapping>
    <Object name = "Role Class">groupOfNames</Object>
</RoleMapping>
<WPCUserCredentialMappings ParentDN="(Digite o DN base para os Objetos do Usuário)" ObjectClass="inetOrgPerson">

No exemplo atual, o DN base é: cn=myrealm,dc=wpcdomain,dc=isl,dc=com

        <WPCUserParam name = "UserName">uid</WPCUserParam>
        <WPCUserParam name = "FirstName">cn</WPCUserParam> >
        <WPCUserParam name = "LastName">sn</WPCUserParam> >
        <WPCUserParam name = "Email">mail</WPCUserParam> >
        <WPCUserParam name = "Address">postalAddress</WPCUserParam> >
        <WPCUserParam name = "Phone">telephoneNumber </WPCUserParam> 
        <WPCUserParam name = "Fax"> TelexNumber</WPCUserParam> >
    </WPCUserCredentialMappings>
</LdapConfiguration>

4. Ativar LDAP

No arquivo common.properties do WebSphere Product Center, ative o sinalizador do LDAP.

    Por exemplo,

    enable_ldap=true

5. Reinicie o Sistema

Após a conclusão das quatro etapas anteriores para configurar o LDAP, reinicie o WebSphere Product Center.

Cap. 9 - Resolução de Problemas

Ferramentas


Problemas do Servidor de Aplicativos

Problemas de Ambiente

O pseudo-usuário do WebSphere Product Center no servidor de aplicativos deve ter as seguintes variáveis de ambiente configuradas antes de iniciar o WebSphere Product Center:

Adicionalmente, o script de shell init_ccd_vars.sh deve ser originado antes do WebSphere Product Center ser iniciado. Geralmente isso é feito no arquivo .bashrc do usuário.

A variável de ambiente CLASSPATH não deve ser modificada depois que init_ccd_vars.sh for originada.

Definições Comuns Incorretas do Arquivo de Configuração

O erro mais comum é um especificador incorreto de banco de dados em common.properties. Um banco de dados configurado incorretamente terá os seguintes sintomas:

appsvr, eventprocessor, queuemanager, scheduler e workflowengine não iniciarão

Erros nos arquivos de log logs/db_pool e logs/svc/

smtp_address. Smtp_address deve apontar para um relay SMTP, envio de e-mail no host local ou outro sistema capaz de enviar e-mail para fora da organização.

Nenhum serviço iniciará se o arquivo de licença (WPC_license.xml) estiver faltando ou incorreto. Esse erro será refletido nos arquivos de logs em logs/svc.

Servidor de Aplicativos Indiferente

Cenário

O servidor de aplicativos torna-se extremamente indiferente. Embora seja possível executar ping no servidor, os usuários não podem efetuar login no ambiente e o administrador não pode efetuar login no servidor de aplicativos.

Itens a serem procurados:

Verifique se um usuário ativou recentemente uma tarefa extraordinariamente grande. Se a tarefa era intencional, verifique o script utilizado por ela.


Problemas do Banco de Dados

1. Conversão de caracteres durante exportações / importações de dados

2. Problemas de alocação de espaço do banco de dados

3. Problemas de alteração de blocos de dados e de índice

4. Importação ou exportação interrompida sem nenhuma alteração na barra de status após um longo período

5. Depois de eliminar uma tarefa em execução, o aplicativo torna-se muito lento

6. Problemas em refazer alternância de log

7. O middleware WebSphere Product Center é interrompido e a GUI está pendente

8. Analisar interrupções da tarefa de esquema

9. A conexão SQL inicia automaticamente


1. Conversão de caracteres durante exportações / importações de dados

Problema

Durante a exportação/importação de um banco de dados, para criar ambientes de teste utilizando uma cópia do banco de dados, aparecem mensagens de erro relativas ao conjunto de caracteres utilizado.

Sintomas

Por exemplo, se um banco de dados que utiliza o conjunto de caracteres US7ASCII for exportado, a seguinte mensagem de erro aparecerá no log de exportação:

A exportação foi feita no conjunto de caracteres US7ASCII e o servidor de conjunto de caracteres UTF8 NCHAR utiliza o conjunto de caracteres UTF8 (conversão possível de conjunto de caracteres)

Resolução

Ao exportar/importar o banco de dados, defina o parâmetro NLS_LANG para utilizar o conjunto de caracteres american_america.utf8.

2. Problemas de alocação de espaço do banco de dados

Problema

Ocasionalmente, as tarefas de importação e exportação falha por causa do espaço insuficiente alocado para tabelas, índices, segmentos de rollback e segmentos temporários.

Sintoma

Se o segmento de rollback estiver completo ou o espaço de tabelas do segmento de rollback estiver completo, você verá a mensagem de erro no arquivo de log de alerta similar à seguinte mensagem de erro:

ORA-1650: não é possível estender o segmento de rollback RBS8 por 512 no espaço de tabelas RBS

Falha ao estender o segmento de rollback 9 por causa do status FULL da condição 1650 do segmento de rollback 9 definido.

Resolução

3. O WebSphere Product Center fica lento quando uma tarefa em execução é eliminada

Problema

Sempre que uma tarefa é eliminada, como importação ou exportação, o sistema de banco de dados tem de fazer rollback da transação completa para trazer o banco de dados para um estado consistente. Esse processo de rollback utiliza recursos máximos do sistema, como tempo de CPU e memória.

Sintomas

O middleware WebSphere Product Center fica lento depois que uma tarefa em execução é eliminada.

Resolução

Aguarde até o rollback ser concluído e o sistema retornar para um estado normal. Não elimine uma tarefa em execução, a menos que seja necessário.

4. Problemas em refazer alternância de log

Problema

Número/tamanho inadequado de arquivos de log pode fazer com que o sistema de banco de dados aguarde muito tempo por uma alternância de log.

Sintomas

O sistema de banco de dados está aguardando muito tempo uma alternância de log e que todos os arquivos de log refeitos estejam ativos.

Resolução

5. O Middleware WebSphere Product Center é interrompido e a GUI está pendente

Problema

Se aparecerem erros ao acessar o middleware WebSphere Product Center, será possível que a conexão com o banco de dados tenha sido perdida.

Sintomas

O middleware WebSphere Product Center está pendente ou está em estado de espera constante. Aparecem erros ao tentar acessar o middleware WebSphere Product Center.

Resolução

6. Analisar interrupções da tarefa de esquema

Problema

Sugere-se analisar o esquema uma vez quando você carrega uma enorme quantidade de dados no banco de dados ou quando exclui a limpeza das tabelas no banco de dados.

O middleware WebSphere Product Center deve ser parado antes da execução da análise do esquema. Se o middleware não estiver parado, a tarefa de análise de esquema poderá ser interrompida, pois as tabelas estão sendo utilizadas pelo middleware.

Sintomas

O WebSphere Product Center é interrompido ao executar a análise do esquema.

Resolução

Se a análise do esquema for interrompida, elimine a tarefa de análise, pare o Middleware WebSphere Product Center, analise o esquema novamente e inicie o WebSphere Product Center.

Analise o esquema em intervalos regulares para coletar as últimas estatísticas sobre a distribuição de dados no banco de dados.


Monitorar Erros nos Arquivos de Log

A monitoração e revisão de arquivos de log do sistema podem ajudar a diagnosticar e resolver muitos problemas.

Nota: Este capítulo será estendido na próxima versão do documento. Informações adicionais sobre o uso de arquivos de log e técnicas de resolução de problemas serão fornecidas.


Problemas de Conectividade

Erros de Envio de HTTP

Quando ocorrerem erros de envio de http, considere o seguinte:

1.    A caixa do WebSphere Product Center pode ver o destino?

  • Utilize um navegador de http Linux/Unix, como o "Lynx", e digite a URL do middleware WebSphere Product Center para ver se o destino está acessível.
  • Se um navegador não estiver disponível a partir do servidor WebSphere Product Center, tente executar telnet para a porta 80 no destino. Por exemplo, se a URL de destino for http://myserver/>urlname<, digite "telnet myserver 80" (porta 80 é a porta http padrão na maioria dos servidores da Web).

2.    Se o WebSphere Product Center pode ver o destino, o WebSphere Product Center Distributor está funcionando corretamente?

  • Verifique a existência de novos arquivos em $TOP/public_html/created_files/distributor. Verifique se algum arquivo tem o time stamp aproximado de quando você tentou enviar o arquivo.
  • É possível que um script descontrolado tenha gerado um arquivo de saída inválido. Verifique o tamanho do arquivo. O tamanho do arquivo corresponde ao que você estava esperando? Se o arquivo for um XML ou qualquer outro arquivo legível, digite-o. Ele contém as informações corretas que você estava esperando?

3.    Se o arquivo existe, a transferência está em progresso?

  • Você pode utilizar ferramentas diferentes para ver se uma transferência real está em progresso. No mínimo, você precisará utilizar uma combinação de "netstat" e "snoop" (no Solaris) ou "tcpdump" (no Linux).
  • Gerencie suas expectativas. Se o tamanho do arquivo for 300 MB e ele estiver sendo enviado para uma URL através da Internet, o arquivo poderá ser executado apenas na velocidade mais elevada da conexão com a Internet.

Erro de Busca do FTP

Se o WebSphere Product Center tentou efetuar login em um servidor FTP de destino e não conseguiu localizar o diretório especificado, ocorrerá o erro "Não é possível mudar para o diretório remoto" .

Existem vários motivos para esse erro:

Testar Conectividade Java

A URL JDBC é definido no arquivo common.properties. Para testar a conectividade Java a partir do middleware WebSphere Product Center para a URL JDBC, utilize o seguinte script para testar a conectividade Java.

$TOP/bin/test_java_db.sh

O script tenta se conectar ao banco de dados e executar uma 'select count(*) from dual' simples. Se a conexão for estabelecida, os resultados no script de teste aparecerão.


Outros Problemas

Parando e Reiniciando o WebSphere Product Center

Um problema foi relatado ao utilizar scripts de parada regulares no Linux/Solaris. Aparentemente, o WebSphere Product Center não pára de forma correta e com cuidado. Se for este o caso, pare e inicie o WebSphere Product Center utilizando as seguintes etapas:

1. Tente parar com cuidado o WebSphere Product Center executando o seguinte script:

 $TOP/bin/go/stop_local.sh

2. Aguarde aproximadamente um minuto e digite o seguinte comando:

ps –u (USERNAMEWITHOUT THE PARANTHESIS)

3. Se houver processos java ativos, uma tarefa planejada ainda poderá estar em progresso. Se desejar, deixe a tarefa ser concluída ou pare-a manualmente utilizando o seguinte script:

$TOP/bin/go/abort_local.sh

4. Aguarde aproximadamente 30 segundos e digite o seguinte comando:

ps –u (USERNAMEWITHOUT THE PARANTHESIS)

5. Se ainda houver processos java ativos, provavelmente a JVM travou. O processo java deve ser eliminado manualmente utilizando o seguinte comando:

kill `ps -u (USERNAMEWITHOUT THE PARANTHESIS)
| grep java | cut -b10-15`

Nota: Se ainda existirem processos java, o sistema poderá precisar ser reiniciado.

6. Depois que todos os processos java forem eliminados, reinicie o WebSphere Product Center utilizando o seguinte script:

$TOP/bin/go/start_local.sh

7. Aguarde aproximadamente um minuto e verifique se o WebSphere Product Center foi iniciado corretamente. Execute o script $TOP/bin/go/rmi_status.sh ou efetue login no ambiente do WebSphere Product Center.

Cap. 10 - Estrutura de Migração 

Uma estrutura de migração está disponível para migrar do WebSphere Product Center versão 4.2.0.x para a versão 5.2. Uma estrutura de migração para migrar do WebSphere Product Center 5.0 e 5.1 para 5.2 será fornecida posteriormente. Como existem bem poucas alterações conhecidas no núcleo entre os releases 5.0 e 5.2, é possível executar a migração manualmente se isso for necessário. Entre em contato com o representante do WebSphere Product Center para obter informações adicionais.

Migração do 4.2.0.x para o 5.2

Existem scripts shell no 4.2.0.x, que auxiliam na exportação e importação de todos os objetos de uma empresa específica no WebSphere Product Center:

Exportações

Importações

Facilitar a exportação de todos os objetos do WPC na versão 4.2.0.x como um arquivo zip, de forma que o mesmo arquivo zip possa ser importado no 5.2 para executar uma atividade de migração. 

Exportando uma Empresa

Uma empresa no WPC 4.2.0.x pode ser exportada de duas formas. 

1. Utilizando um utilitário de script shell denominado $TOP/bin/exportCompanyAsZip.sh

Uso: 

exportCompanyAsZip --company_code=<code> --script_path=<path/to/trigo/script>
em que,

Um script de amostra é fornecido a seguir.

envObjList = new EnvObjectList();
envObjList.addAllObjectsToExport("CATALOG");
envObjList.addAllObjectsToExport("HIERARCHY_MAPS");
envObjList.addAllObjectsToExport("MAPS");
envObjList.addAllObjectsToExport("FEEDS");
envObjList.addAllObjectsToExport("LOOKUP_TABLE");
envObjList.addAllObjectsToExport("ATTRIBUTE_COLS");
envObjList.addAllObjectsToExport("CONTAINER_ACCESSPRV");
envObjList.addAllObjectsToExport("HIERARCHY");
envObjList.addAllObjectsToExport("COMPANY_ATTRIBUTES");
envObjList.addAllObjectsToExport("SPEC");
envObjList.addAllObjectsToExport("DATASOURCE");
envObjList.addAllObjectsToExport("USERS");
envObjList.addAllObjectsToExport("ACG");
envObjList.addAllObjectsToExport("ROLES");
envObjList.addAllObjectsToExport("CATALOG_CONTENT");
envObjList.addAllObjectsToExport("HIERARCHY_CONTENT");
envObjList.addAllObjectsToExport("LOOKUP_TABLE_CONTENT");
envObjList.addAllObjectsToExport("DOC_STORE");
envObjList.addAllObjectsToExport("MY_SETTINGS");
envObjList.addAllObjectsToExport("DISTRIBUTION");
envObjList.addAllObjectsToExport("DOC_STORE");

sDocFilePath = "archives/company.zip";
exportEnv(envObjList, sDocFilePath);

2. Utilizando o script fornecido acima e executando-o diretamente em um ambiente ativado para script do WebSphere Product Center (por exemplo, um job de importação, um relatório ou mesmo diretamente no Modo Seguro de Script).

Certos objetos predefinidos do WPC também podem ser exportados de um ambiente do WPC como scripts utilizando o script shell $TOP/bin/exportCompany.sh, que exporta os objetos como scripts shell para que a execução desses scripts em outro ambiente possibilite a recriação desses objetos do WPC. Mas, como parte do esforço de migração, isso não será utilizado para exportar objetos do WPC pois esse utilitário não é capaz de exportar conteúdo de objeto do WPC (como informações sobre item ou informações sobre categoria em uma hierarquia).

Importando uma Empresa

A importação de uma empresa pode ser feita de três formas.

1. Utilizando o script shell, $TOP/bin/importCompanyFromZip.sh

Uso: importCompanyAsZip --company_code=<code> --zipfile_path=<path/to/import/archive>
em que,

company_code é o código da empresa a ser importada e 
zipfile_path é um local no armazenamento de documentos onde existe um archive zip de uma empresa.

2. Utilizando a operação de script do WPC importEnv(String sDocFilePath)
em que,

sDocFilePath é um local no armazenamento de documentos onde existe um archive zip de uma empresa.

Uma empresa do WPC também pode ser importada utilizando o resultado de exportCompany.sh. Mas, como parte do esforço de migração, isso não será utilizado pois exportCompany.sh não é capaz de exportar conteúdo de objeto do WPC (como informações sobre item ou informações sobre categoria em uma hierarquia).

3. Utilizando a opção “Importar Ambiente” da GUI do Aplicativo.

Importando dados utilizando a GUI do Aplicativo

Impacto na Migração

Como parte da estrutura da ferramenta de importação/exportação existente fornecida no WPC 4.2.0.x, os seguintes objetos do WPC não são exportados: 
Seleções

Os recursos de exportação fornecidos no 4.2.0.x serão atualizados para suportar também a exportação desses objetos do WPC.

No WPC 5.2, haverá suporte fornecido para pedidos SOAP com base em Documento/Literal alem do estilo RPC/Codificado que já existe na versão anterior. Essa atividade de migração precisará ser testada. 


Migração do 4.2.1 para o 5.2

O 4.2.1 inclui o release oficial das Ferramentas de Importação/Exportação. Esse recurso fornece um ponto de função da GUI para “Importar Ambiente” para importar dados que foram exportados de uma empresa na mesma versão do WebSphere Product Center para outra Empresa no WebSphere Product Center utilizando um arquivo zip.

Um arquivo de controle XML define a ordem das importações. Esse arquivo de controle é criado e empacotado no arquivo zip durante a exportação.  A estrutura de migração recomendada para Clientes seria utilizar exportCompanyAsZip.sh no 4.2.0.x para exportar todos os dados da empresa. O arquivo zip de saída desse script deve ser compatível para importação por “Importar Ambiente” ou importCompanyFromZip.sh no 5.2.

Cap. 11 - Suporte de Serviços da Web

Suporte do WSDL (Web Services Definition Language) - Suporte para pedido/resposta do WSDL 1.2 e SOAP 1.2 para mensagens de pedido simples. O menu Gerenciador de Colaboração inclui um Módulo de Serviços da Web para a configuração de serviços no Console de Serviços da Web. Atualmente, SOAP sobre HTTP é o único protocolo suportado.

Definições

O WebSphere Product Center fornece uma camada de script, que pode ser utilizada como uma camada de API. Esses scripts posteriormente podem ser expostos como serviços da Web. Um serviço da Web é criado para todas as funções de negócios que precisam ser expostas no WebSphere Product Center. Um aplicativo solicitante correspondente é criado para interagir com o serviço da Web. O serviço da Web executará um ou mais scripts no WebSphere Product Center e também funciona com outros serviços da Web para fornecer a função de negócios desejada.

O diagrama a seguir mostra um caso de uso de pedido/resposta do WSDL 1.2 e SOAP 1.2 para mensagens de pedido simples.

 

Caso de Uso do WSDL Geral

Os Serviços da Web são configurados utilizando o Console de Serviços da Web. As etapas a seguir utilizam um caso de uso do WSDL geral.

1. Console de Serviços da Web – Clique em Novo e digite as informações requeridas para os seguintes campos: 

2. Arquivo de Definição de Serviços da Web

O arquivo de definição de serviços da Web é transferido por upload do Console de Serviços da Web e contém uma descrição do serviço da Web no formato WSDL 1.2. O serviço da Web utiliza codificação de pedido/resposta do SOAP 1.2 e o arquivo WSDL inclui o seguinte:

Nota: O arquivo de definição de Serviços da Web é publicado no servidor HTTP padrão, que é o servidor HTTP para o WebSphere Product Center. O Script de Definição de Serviços da Web também é publicado nele. O sistema fornece assistência por meio do botão Ajuda.

3. Script de implementação de Serviços da Web - É chamado por uma mensagem de pedido do SOAP 1.2 recebida que está em conformidade com a definição de serviço da Web descrita acima.O Script de Implementação de Serviços da Web assegura o seguinte:

4. Mensagem de Pedido do Aplicativo do Solicitante - O administrador do Aplicativo do Solicitante grava o processo para criar mensagem do SOAP 1.2 em conformidade com a definição de serviços da Web descrita na Etapa 2.

5. Mensagem de Resposta do Aplicativo do Solicitante - O Administrador do Aplicativo do Solicitante grava o processo para receber e manipular mensagem do SOAP 1.2 em conformidade com a definição de serviços da Web descrita na Etapa 2.

Eventos em Tempo de Execução

Depois que os Serviços da Web são configurados, ocorrem os seguintes eventos:

1. O usuário executa um processo no Requestor Application que ativa a mensagem do SOAP 1.2 do Requestor Application para o Servidor HTTP do WebSphere Product Center.

2. A mensagem de pedido contém apenas atributos de ID, como GTIN ou UPC, GLN e Target Market.

3. O WebSphere Product Center executa o script de implementação de Serviços da Web para analisar a mensagem de pedido do SOAP 1.2, acessar informações do produto, criar uma mensagem de resposta do SOAP 1.2 e transmitir a mensagem de resposta.

4. (Opcional) - O sistema registra a mensagem de pedido e a mensagem de resposta no Armazenamento de Documentos. O sistema registra um link para a mensagem no Armazenamento de Documentos de uma maneira que pode ser acessado no Console de Mensagens.

5. O Requestor Application recebe a mensagem de resposta.

6. O Requestor Application age sobre a mensagem de resposta.

Arquivos de Configuração do Log de Serviços do WebSphere Product Center

Os arquivos a seguir controlam vários subsistemas em todo o WebSphere Product Center. O local do log gerado é definido em cada arquivo.

Nota: Todos os caminhos são relativos a $TOP

/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml


Interface com o Usuário de Serviço da Web

Console de Serviços da Web

O console de Serviços da Web fornece ao usuário a capacidade de criar e gerenciar serviços da Web expostos pelo WebSphere Product Center. Um documento WSDL pode ser gravado para definir um serviço e um script de implementação é criado para controlar como o serviço é executado.

Colunas de Console de Serviços da Web

O console de Serviços da Web contém as seguintes colunas:

Acessando o Console de Serviços da Web

Para acessar o console de Serviços da Web, utilize o caminho de menu:

Gerenciador de Colaboração > Serviços da Web > Console de Serviços da Web.

Criando um Novo Serviço da Web

Para criar um novo serviço da Web, utilize o caminho de menu: 

Gerenciador de Colaboração > Serviços da Web > Novo Serviço da Web

A tela "Detalhe do Serviço da Web" aparece. Digite as informações necessárias para definir o novo serviço da Web. 

Detalhes da Tela Detalhe do Serviço da Web

Esta seção define cada campo da tela Detalhe do Serviço da Web.

Nota: Consulte a seção seguinte para obter as alterações que foram feitas no suporte para estilo Documento-Literal para serviços da Web.

Nome do Serviço da Web: Digite o nome do serviço da Web. Esse nome se tornará parte do URL do serviço SOAP. Ele não deve conter nenhum espaço em branco.  

Descrição do Serviço da Web: Digite uma descrição para o serviço da Web.

Protocolo: O protocolo utilizado para o serviço da Web. Atualmente, SOAP sobre HTTP é o único protocolo suportado. O valor padrão é “SOAP_HTTP”. 

Estilo: O estilo pode ser “DOCUMENT_LITERAL” ou “RPC_ENCODED”. O script WPC que implementa um serviço Documento/Literal será transmitido para o corpo de pedido inteiro e será esperado o retorno de um corpo de resposta inteiro. Um script WPC de serviço RPC/Codificado será transmitido para uma matriz de parâmetros de cadeia e será esperado o retorno de uma única cadeia. Poderá ser mais fácil utilizar os serviços RPC/Codificado para aplicativos simples, enquanto os serviços Documento/Literal oferecem mais flexibilidade para serviços mais complexos.

URL: Fornece o URL onde o serviço pode ser acessado. Este campo é ocupado automaticamente após o serviço da Web ser salvo. 

URL do WSDL: O URL em que o WSDL para o serviço da Web pode ser acessado. Este campo é ocupado automaticamente após o serviço da Web ser salvo. 

WSDL: Digite o WSDL para este serviço. Um documento WSDL é uma descrição da interface, URL e protocolo do serviço em formato XML. Você deve digitar esse documento manualmente, mas uma amostra de documento WSDL é fornecida a seguir. É preciso digitar XML válido para que o serviço da Web seja salvo com êxito.  

Script de Implementação: Digite um script WPC que implementa este serviço. Para um serviço RPC/Codificado, os parâmetros de entrada para o serviço estão disponíveis na variável de matriz "soapParams" e o valor de retorno para o serviço deve ser uma cadeia gravada na variável “out” do Writer. No caso de um serviço Documento/Literal, o corpo do pedido de SOAP será fornecido na variável de cadeia “soapMessage” e o corpo de resposta deve ser gravado na variável “out” do Writer. Para qualquer estilo, grave o código de falha na variável "soapFaultCode" do Writer e grave a mensagem de falha na variável "soapFaultMsg" do Writer para retornar uma falha de SOAP. Uma amostra de script de implementação é fornecida a seguir. 

Armazenar pedidos?: Se esta opção estiver marcada, o WPC armazenará os parâmetros de todos os pedidos que chegam no docstore. Eles estarão disponíveis no Console de Transição.  

Armazenar respostas?: Se esta opção estiver marcada, o WPC armazenará o conteúdo de todas as respostas no docstore. Eles estarão disponíveis no Console de Transição.

Implementado: Se esta opção estiver marcada, o serviço será implementado. Caso contrário, este serviço não estará disponível.

Uma Amostra de Script de Implementação e Documento WSDL

O serviço da Web Documento/Literal a seguir retorna uma cotação de ações para um símbolo de detentor específico.Este exemplo limitado retornará apenas um valor para o detentor “IBM”; todos os outros argumentos resultarão em uma falha de soap.

Este nó de extremidade de serviço da Web é equivalente a um método Java com a seguinte assinatura:

java.math.BigDecimal getStockQuote(String ticker);

Script de Implementação

// analisar o documento de pedido
var doc = new XmlDocument(message);

// obter o parâmetro do detentor
var ticker = parseXMLNode("ticker");

// nós apenas tornamos públicas as cotações ibm aproximadas aqui...
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse 
xmlns:ibm=\"http://ibm.com/wpc/test/stockQuote\">");
out.println(" <ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
soap_fault_msg.print("Apenas as cotações para IBM são suportadas");
}

WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:y="http://ibm.com/wpc/test/stockQuote" 
targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" 
elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address 
location="http://example.wpc.ibm.com/services/StockQuoteService"/>
</port>
</service>
</definitions>

Gerenciando Transações

Acessando o Console de Transação

Para procurar todas as transações de serviços da Web, visualize o Console de Transação utilizando o seguinte caminho de menu: 

Gerenciador de Colaboração > Serviços da Web > Console de Transação.

Visualizando uma Transação de Serviços da Web

1. No Console de Transação, visualize a lista de transações na tabela Transações de Serviços da Web.

2. Clique no botão Visualizar nas colunas Resposta ou Pedido. Os detalhes da transação aparecem em uma nova janela do navegador.

Procurando uma Transação de Serviços da Web

1. No Console de Transação, selecione um intervalo de data nos campos Data de Chegada De e Data de Chegada Para da tabela "Procura de Transação de Serviços da Web".

2. Clique no botão Procurar. Todos os resultados da transação aparecem na tabela "Transações de Serviços da Web", abaixo da tabela de procura.

Integração do Portal Server

A integração do portal do fornecedor oferece vários benefícios aos varejistas, incluindo:

O WebSphere Product Center fornece uma estrutura de serviços da Web para integrar adequadamente com o WebSphere Portal Server, o qual inclui os seguintes recursos:

Suporte da Estrutura de Serviços da Web para o Portal Server

Para integrar com o WebSphere Portal Server, os recursos de Serviços da Web incluem suporte para os seguintes recursos: 

Portanto, a estrutura de Serviços da Web inclui o seguinte recurso:

Operações de Script que Suportam Serviços da Web 

A seguinte lista de operações de script oferecem suporte de Serviços da Web do WebSphere Product Center, que estão disponíveis no Script Sandbox:

Nota: Para obter detalhes adicionais (protótipo e descrição) sobre cada operação de script, consulte o Script Sandbox no WebSphere Product Center.

· createWebService
· deleteWebService
· getDesc
· isDeployed
· getLoginString
· getImplScriptPath
· getName
· getProtocol
· getStoreIncoming
· getStoreOutgoing
· getStyle
· getUrl
· getWebServiceByName
· getWsdlDocPath
· getWsdlUrl
· invokeSoapServer
· saveWebService
· setDeployed
· setDesc
· setImplScriptPath
· setName
· setProtocol
· setStoreIncoming
· setStoreOutgoing
· setStyle
· setWsdlDocPath

Suporte para Estilo Documento/Literal

Esta seção contém os detalhes para dar suporte ao estilo Documento/Literal para suporte de serviços da Web no WebSphere Product Center. O estilo RPC/Codificado de serviços da Web já estava disponível em versões anteriores. Entretanto, os serviços da Web RPC/Codificado suportavam apenas tipos de cadeia simples. Para atender à demanda para suportar envio e recebimento de tipos complexos, o suporte para o estilo Documento/Literal de serviços da Web é incluído no WebSphere Product Center. 

Como o Serviço da Web do Estilo Documento/Literal Funciona no WebSphere Product Center?

Para implementar um serviço da Web de estilo Documento/Literal, um usuário precisará criar um serviço da Web, o qual inclui um WSDL que define o esquema do serviço e um script de ativação do Websphere Product Center a ser chamado quando um pedido é encontrado. Ao salvar o serviço da Web, o usuário precisará selecionar explicitamente que ele foi implementado. Na implementação, o Websphere Product Center criará um URL para o serviço da Web em que o usuário poderá acessar o WSDL implementado. O URL do serviço da Web terá o seguinte formato:

http://<application-webserver>:<application-port-number>/services/<stored-webservice-name>

Anexar a cadeia “?wsdl” ao final do URL renderá no caminho para o WSDL armazenado para o serviço da Web.

Um pedido para um serviço da Web Documento/Literal estará contido em um envelope SOAP e o corpo da mensagem de SOAP incluirá o documento do pedido em sua totalidade. Esse documento do pedido deve estar em formato XML adequado e será transmitido para a rotina de tratamento do serviço da Web do Websphere Product Center na forma em que se encontra. Um responsável pela chamada criou esse pedido com conhecimento anterior do formato do nó de esquema do WSDL armazenado para o serviço da Web que está sendo chamado.

O mecanismo de manipulação do serviço da Web do Websphere Product Center receberá esse pedido e validará seu conteúdo em relação ao esquema WSDL para pedidos do estilo Documento/Literal. Se o pedido não aderir ao esquema WSDL, um AxisFault será lançado. Do contrário, o Websphere Product Center eliminará as referências de espaço de nomes do corpo do pedido e transmitirá o pedido modificado para o script de ativação do Websphere Product Center que foi armazenado no momento da implementação. A remoção do espaço de nomes é requerida devido às limitações da incapacidade do contexto de script do Websphere Product Center de manipular documentos XML ativados por espaço de nomes. O script de ativação do Websphere Product Center obterá o conteúdo do pedido e o utilizará conforme definido pelo autor do script. O script deve fornecer seus resultados como uma resposta válida para o pedido que chega. Dessa forma, a resposta será validade em relação ao WSDL antes de retornar o resultado apresentado.

Exemplo:

A aparência do esquema Documento/Literal é:

<element name="getStockQuote"/>
<complexType>
<sequence>
<element name="ticker" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStockQuoteResponse"/>
<complexType>
<sequence>
<element name="response" type="xsd:decimal"/>
</sequence>
</complexType>
</element>

Se o cliente chamou getStockQuote("IBM"), a aparência do fluxo será:

1. O Websphere Product Center recebe um pedido de SOAP da pilha Axis SOAP.

2. O Websphere Product Center valida a mensagem de pedido em relação ao esquema acima.

3. O Websphere Product Center elimina todos os prefixos de espaço de nomes do corpo do pedido. Não necessário nesse caso, pois esse esquema define tudo no espaço de nomes padrão.

4. O Websphere Product Center chama o script de ativação de serviço da Web. As variáveis de entrada são:

- operationName = "getStockQuote"
- message = 
"<getStockQuote>
<ticker>IBM</ticker>
</getStockQuote>"

5. O script de ativação grava a resposta na variável "out" do Writer:

- out = 
"<getStockQuoteResponse>
<response>83.76</response>
</getStockQuoteResponse>"

6. O Websphere Product Center valida a resposta em relação ao esquema acima.

7. O Websphere Product Center envia toda a resposta de SOAP de volta para o cliente por meio da pilha Axis SOAP.

Alterações Feitas para Suportar o Estilo Documento/Literal

A lista a seguir são alterações que foram feitas para suportar o estilo Documento/Literal.

Qual É o Impacto na Migração de Versões Anteriores?

Dependendo da versão do WebSphere Product Center, poderá ser necessário executar uma modificação mínima do banco de dados (DB2/Oracle). Consulte o representante do WebSphere Product Center a respeito de qualquer problema de migração.

Links Úteis sobre o Estilo Documento/Literal de Serviços da Web

http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/

 http://searchwebservices.techtarget.com/ateQuestionNResponse/0,289625,sid26_cid494324_tax289201,00.html

Limitações Conhecidas

O Espaço de Nomes Deve Ser Definido no Nó de Esquema do WSDL devido a Versões DOM

Por causa das limitações causadas pela implementação da análise XML fornecida com o Websphere Product Center (fornecido pelo Xerces versão 2.4.0), a declaração de espaço de nomes deverá ser definida localmente no nó de esquema do WSDL. Isto será observado, principalmente, ao implementar serviços da Web de estilo Documento-Literal. Por exemplo, o seguinte é um WSDL, que não será corretamente reconhecido pelo Websphere Product Center:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>

O WSDL precisará ser gravado, da maneira a seguir, para ser corretamente analisado:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>

Serviços da Web Criados Recentemente Não São Implementados Automaticamente 

ID de Caso: P16473

Problema: Crie um novo serviço da Web e reinicie o WebSphere Product Center. Um erro aparece ao tentar chamar o serviço da Web criado recentemente.

Solução alternativa: Permita o acesso de gravação ao arquivo de configuração do Axis "server-config.wsdd" no diretório "public_html/WEB-INF". Além disso, para ambientes que utilizam o WebLogic, a instância do WebSphere Product Center deve ser implementada em formato de diretório expandido. Se isto não for feito, a funcionalidade de reimplementação automática do Axis não implementará os serviços da Web criados pelo WebSphere Product Center ao reiniciar, causando assim um erro.

WSDL Aperfeiçoado: Não É Possível Alterar o Estilo

ID de Caso: P16059

Crie um serviço da Web utilizando DOCUMENT-LITERAL. Salve e retorne ao serviço da Web criado recentemente, altere o estilo para RPC-ENCODED e salve novamente. O estilo DOCUMENT-LITERAL é exibido.

Esta é uma limitação conhecida. Um usuário não pode alterar o estilo de um serviço da Web que foi implementado.

Criar Serviço da Web para o Tipo Doc-Literal e Chamar Esse Serviço

Executando um Serviço da Web de Estilo Documento-Literal

1. Vá para common.properties. Defina um valor para "soap_company" e "soap_user". Esses valores referem-se à empresa e ao usuário utilizados por pedidos de SOAP que chegam para acessar o banco de dados e executar scripts. Além disso, defina um valor para "wpc_web_url". 

Por exemplo: 

soap_company=acme
soap_user=Admin
wpc_web_url=http://myinstance.acme.com:1234/

2. Devolva o WebSphere Product Center. Vá para "Gerenciador de Colaboração->Serviços da Web->Novo Serviço da Web". Digite ou selecione valores conforme especificado a seguir.

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Dave Marquard (IBM) -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>

<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>

<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>

<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>

<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>

// analisar o documento de pedido
var doc = new XmlDocument(soapMessage);

// obter o parâmetro do detentor
var ticker = parseXMLNode("ibm:ticker");

// nós apenas tornamos públicas as cotações ibm aproximadas aqui...
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse xmlns:ibm=\"http://ibm.com/wpc/test/stockQuote\">");
out.println("<ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
// preciso imprimir em soapFaultCode também?
soapFaultMsg.print("Apenas as cotações para IBM são suportadas");
}

3. Selecione Armazenar pedidos para que você possa visualizar o histórico de pedidos do console de transação

4. Selecione Armazenar respostas para que você possa visualizar o histórico de respostas do console de transação

5. Selecione Implementado para implementar o serviço da Web. O serviço da Web não está disponível para você, a menos que selecione esta opção

6. Chame o Serviço da Web utilizando com.ibm.ccd.soap.test.StockQuoteTest.java

Uso: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest <URL> <NUM_CASE>
Exemplo: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest http://trillian:9099/services/DocumentWebServiceTest 0

<NUM_CASE> pode ser qualquer inteiro de 0 a 5
0 pode ser utilizado para consulta a cotação de ações da IBM. Consulte StockQuoteTest.java para obter mais detalhes.

6. A resposta será, 

Chamou o serviço SOAP no URL 'http://trillian:9099/services/TestingDocumentStyle14'
O pedido era '<ibm:getStockQuote xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:ticker>SNM</ibm:ticker>
</ibm:getStockQuote>'
A chamada SOAP foi bem-sucedida.
O resultado foi '<ibm:getStockQuoteResponse xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:response>123.45</ibm:response>
</ibm:getStockQuoteResponse>'

Cap. 12 - Chamada de Tarefa da Linha de Comandos

Uma interface de linha de comandos para o planejador do WebSphere Product Center foi implementada para permitir integração com um planejador externo e em uma forma automatizada, se desejado. Atualmente, esse recurso é certificado com o IBM Tivoli Workload Scheduler. Esse recurso permite aos usuários utilizar uma interface de comando ou o uso da interface com o usuário do Tivoli Workload Scheduler para acionar uma importação ou exportação do WebSphere Product Center.

Limitações: Esse recurso só é suportado no código do idioma "Inglês". Instalações utilizando "inglês americano" como o idioma no servidor serão capazes de utilizar esse recurso. Todos os outros idiomas não são suportados completamente, visto que todas as mensagens exibidas no console de saída estão em inglês.  É planejado que todos os outros códigos de idioma do Grupo 1 sejam suportados em um futuro Fix Pack ou em um release principal do WebSphere Product Center.

Pré-requisito

Há dois métodos de execução das tarefas de importação e exportação do WebSphere Product Center. O primeiro é utilizar a interface de comando para acionar uma tarefa utilizando o planejador do WebSphere Product Center; o segundo, utilizar a interface com o usuário do Tivoli Workload Scheduler. Para chamar o segundo método, os seguintes pré-requisitos devem ser atendidos:

1. Instalação do Tivoli Workload Scheduler 8.2, Tivoli Management Framework 4.1 e Tivoli Management Framework Language Support 4.1 no servidor de aplicativos.

2. Certifique-se de que o script de shell, "run_job_template.sh", esteja disponível na pasta "$TOP/bin/”, no ambiente onde as tarefas planejadas serão executadas.

3. Instale o Tivoli Management Framework 4.1 no desktop que será utilizado para facilitar a execução ou o planejamento de uma tarefa.

Integração de Planejador com o IBM Tivoli Workload Scheduler  

O planejador do WebSphere Product Center integra-se com o IBM Tivoli Workload Scheduler por meio de um script de shell fornecido pelo $TOP/bin/run_job_template.sh de instalação do WebSphere Product Center. Exige-se que esse script de shell esteja disponível no ambiente onde uma tarefa planejada será executada, e cada tarefa exigirá seu próprio script de shell. 

Por exemplo, 

Nome da Tarefa

Script de Shell Associado

Feed 1  

  run_job_feed1.sh

Feed 2

  run_job_feed2.sh

DailyFeed3   run_job_dailyfeed3.sh

Modificando o run_job_template.sh

O run_job_template exige modificação para cada ambiente de teste ou produção, por tarefa a ser executada.

Por exemplo: 

Abra run_job_feed1.sh e verá o seguinte snippet:

#export TOP=<Caminho para o diretório home de Instalação do WPC> # E.g. /usr/appinstalls/wpc52
#WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
#. $WPC_INIT_VARS

# Defina as variáveis relacionadas à tarefa conforme necessário e não modifique nada mais após isso
# CCD_JOB_NAME=<Nome da Tarefa> # [Obrigatório]
# CCD_JOB_TYPE=<Tipo de Tarefa> # [Obrigatório, Valores válidos são importar|exportar]
# CCD_COMPANY_CODE=<Código da Empresa> # [Opcional, Valor Padrão é trigo] 
# CCD_USERNAME=<Nome do Usuário> # [Opcional, Valor Padrão é Admin]
# CCD_DEBUG=<Depuração ativada ou desativada> # [Opcional, Valor Padrão é desativada]

Nota: O valor padrão para CCD_COMPANY_CODE é "trigo", que é a empresa padrão que obtém, criado ao executar o create_schema.sh.

O snippet anterior de parâmetros seria alterado para:

export TOP=/usr/trigo/wpc52_41/bin
WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
. $WPC_INIT_VARS

# Defina as variáveis relacionadas à tarefa conforme necessário e não modifique nada mais após isso
CCD_JOB_NAME=Feed1 # [Obrigatório]
CCD_JOB_TYPE=import # [Obrigatório, Valores válidos são importar|exportar]
CCD_COMPANY_CODE=test # [Opcional, Valor Padrão é trigo] 
CCD_USERNAME=m # [Opcional, Valor Padrão é Admin]
CCD_DEBUG=on # [Opcional, Valor Padrão é desativado]

Executando uma Tarefa Utilizando o Tivoli Workload Scheduler

A interface com o usuário do Tivoli Workload Scheduler pode ser utilizada para acionar uma importação ou exportação do WebSphere Product Center. A interface com o usuário utiliza um script de shell para definir qual tarefa executar ou planejar. Esta seção fornece etapas detalhadas para executar uma tarefa utilizando o IBM Tivoli Workload Scheduler.

Para que uma tarefa do WebSphere Product Center possa ser executada utilizando o Tivoli Workload Scheduler, uma tarefa deve ser criada para defini-la.

Criar uma Tarefa

Criar uma tarefa definirá o host que será utilizado para executar a tarefa planejada e o caminho para o arquivo de script de shell necessário.

1. Abra o Tivoli Desktop e na caixa de diálogo "Tivoli Management Environment" digite as informações para o servidor que contém os aplicativos necessários para utilizar o recurso de planejador de mesclagem:  WebSphere Product Center 5.2,  Tivoli Workload Scheduler 8.2, Tivoli Management Framework 4.1 e Tivoli Management Framework Language Support 4.1. Quando concluído, clique em OK.

2. Dê um clique duplo no nome da máquina host onde o Tivoli Workload Scheduler está instalado. O diálogo "Região de Política" é aberto.

3. Na barra de menu, selecione Criar > Biblioteca de Tarefas; o diálogo Criar Biblioteca de Tarefas é exibido. Digite um nome para a nova Biblioteca de Tarefas e clique em “Criar & Fechar”

4. Dê um clique duplo na biblioteca de tarefas para criar uma tarefa. Criar uma tarefa é semelhante a criar um job no WebSphere Product Center.

5. Na barra de menus, selecione Criar > Tarefa e digite um nome para a tarefa. Por exemplo, “Tarefa para Feed 1”.

6. Quando editar a tarefa, selecione a função que será exigida para executá-la.

7. Selecione a plataforma onde a tarefa será executada. Se a tarefa estiver em execução em uma plataforma AIX, marque a opção AIX e o "Executável do AIX para a Tarefa" será exibido. Digite as informações necessárias no local onde o script de shell “run_job_template” necessário está disponível:

Nota: As alterações feitas em run_job_template.sh não são refletidas dinamicamente na tarefa. Na tela "Editar Tarefa", desmarque e marque a opção de plataforma  e especifique o caminho do script de shell atualizado para refletir as últimas alterações feitas.

Para obter informações sobre como fazer alterações no "run_job_template.sh", consulte a seção "Modificando run_job_template.sh".

8. Clique no botão “Criar & Fechar” para salvar as edições feitas na tarefa.

Executar uma Tarefa

Tendo sido criada uma tarefa na Biblioteca de Tarefas, ela poderá ser executada manualmente ou em uma hora planejada. A tarefa, quando executada, utilizará seu host definido e seu arquivo de script "run_job_template.sh" para iniciar uma importação/exportação do WebSphere Product Center.

1. Na tela Biblioteca de Tarefas, dê um clique duplo na tarefa desejada.

2. Marque a opção “Exibir no Desktop” para ver os detalhes de execução e o status da conclusão da tarefa.

3. Em "Nós de Extremidade de Tarefas Disponíveis", selecione o host apropriado para que esteja disponível em "Nós de Extremidade de Tarefas Selecionados"

4. Clique em “Executar” e verifique os resultados na tela Saída Formatada. O desktop mostra os detalhes de execução da tarefa, que podem ser salvos em um arquivo clicando em "Salvar no Arquivo...".

Planejando uma Tarefa 

Para que um job possa ser planejado, crie uma Tarefa para o job do WebSphere Product Center que precisa ser planejado.

Criar uma Tarefa 

1. No desktop Tivoli, clique em um host e dê um clique duplo na Biblioteca de Tarefas desejada para criar uma tarefa.

2. Na opção de menu Criar, selecione Tarefa e digite um nome de tarefa. 

3. Selecione a Tarefa para a qual o Job precisa ser planejado.

4. Marque a opção “Exibir no Desktop” para ver os detalhes de execução e o status da conclusão do job.

5. Em "Nós de Extremidade de Tarefas Disponíveis", selecione o host desejado para que esteja disponível em "Nós de Extremidade de Tarefas Selecionados".

6. Clique em "Criar & Fechar".

Executar uma Tarefa

1. Vá para a página Biblioteca de Tarefas e mantenha o Desktop aberto.

2. Arraste a tarefa “Tarefa para Feed 1” e solte-a em “Planejador” no Desktop.

3. Digite um rótulo para a Tarefa. 

Há poucas opções de execução da tarefa aqui dependendo do requisito dos usuários. Por exemplo, a tarefa pode ser planejada para execução indefinida ou o usuário pode querer executá-la em intervalos de tempo regulares. Por isso, dependendo do requisito, o usuário pode alterar as configurações na página Incluir Tarefa Planejada.

Suponha que o usuário queira planejar uma tarefa de tal maneira que ela seja executada três vezes em um intervalo de tempo a cada uma hora|60 minutos. Em tal cenário, é importante certificar-se de que a hora atual mostre a hora exata do servidor conforme o Fuso Horário definido.

4. Marque "Repetir a Tarefa" e digite "3".

5. Digite "60" para minutos.

6. Se o usuário quiser notificar um grupo em particular, marque "Postar Aviso Tivoli" e clique em "Grupos Disponíveis" e selecione qualquer grupo em Grupos de Avisos Disponíveis e clique em Definir para fechar a janela.

7. Marque "Postar Diálogo de Status no Desktop" 

8. Se o e-mail já estiver  configurado no ambiente de usuários, escolha especificar um ID de e-mail para notificação.

9. Marque "Registrar no Arquivo" e especifique o caminho de arquivo de log, especifique o nome do host e o caminho de arquivo, conforme desejado.

10. Clique em Planejar Tarefa ou Planejar Tarefa & Fechar.

Verificando Status da Tarefa

O status de uma tarefa pode ser visualizado através do recurso Avisos do IBM Tivoli Workload Scheduler. Se desejado, os usuários também podem efetuar login no WebSphere Product Center para verificar o status de uma tarefa.

1. Na página Desktop, dê um clique duplo em Avisos. 

2. Selecione qualquer grupo especificado e clique em Abrir.

Controle de Planejador através da Interface de Linha de Comandos

Se desejado, um usuário pode executar uma importação ou exportação utilizando o planejador do WebSphere Product Center utilizando a interface de linha de comandos. Isso exige que o usuário tenha os privilégios necessários para acessar o servidor onde as tarefas planejadas serão controladas.

Executando uma Importação ou Exportação Utilizando a Interface de Linha de Comandos

Para acionar uma tarefa, utilize a seguinte linha de comandos:

$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="aaaa" --job_type=import|export [--company_code=bbbb --username=cccc --debug=on / off]

Por exemplo:

$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="Item Feed " --job_type=import --company_code=test --username=user1 --debug=on

Isso aciona uma tarefa de importação denominada "Item Feed" da empresa chamada "test". 

Cap. 13 - Boas Práticas de Integração

O objetivo deste capítulo é resumir as Boas Práticas de Integração em uma implementação do WebSphere Product Center. O uso dessas boas práticas ajudará a obter uma integração segura e de alta qualidade entre os sistemas. Para abordar todos os aspectos de integração, este documento foi desenvolvido para identificar as boas práticas associadas a cada um desses aspectos de integração diferentes.

Principais Elementos de Integração:


Definições e Acrônimos

Dimensões de Integração: Podemos utilizar as dimensões listadas a seguir para compreender os vários tipos de implementações encontrados nas implementações do WebSphere Product Center. O restante do documento destacará quais boas práticas ou diretrizes são aplicáveis a quais dimensões ou tipos de implementações.

WebSphere Product Center como Sistema de Origem ou de Destino

A dimensão mais óbvia é se o WebSphere Product Center é o sistema de origem ou de destino para as informações que estão sendo trocadas. Um sistema de origem coloca suas restrições em uma integração, sendo a mais importante delas a (a) capacidade para fazer publicações periódicas deltas, (b) a capacidade para iniciar uma integração, (c) a capacidade para receber uma notificação sobre o sucesso/a falha dos dados transmitidos e tomar a ação apropriada e (d) os protocolos e formatos suportados, bem como o suporte de uma infra-estrutura EAI.

Sistema de Controle

Será definido um sistema de controle como um sistema que toma a ação de acordo com um acionador interno para uma integração. Um exemplo seria o WebSphere Product Center executando uma publicação periódica com planejamento como uma tarefa. Outro exemplo seria o SAP acionando um adaptador WBI como o resultado de uma inclusão de item. Se o WebSphere Product Center for o sistema de origem ou de destino de uma integração, ele será completamente independente do sistema de controle em uma integração. Vários casos são possíveis. Quando um intermediário, como um servidor FTP ou uma ferramenta EAI, está envolvido, os sistemas de origem e de destino poderão ser sistemas de controle: um sistema de legado com planejamento coloca um arquivo em um servidor FTP, enquanto o WebSphere Product Center com planejamento seleciona o arquivo. Um exemplo de onde o WebSphere Product Center é um sistema de destino controlado (isto é, aguarda algo externo para acionar uma importação de dados) seria o IBM WBI enviando uma mensagem para o WebSphere Product Center por meio do recurso de chamada com o conteúdo da mensagem sendo uma atualização de item de Transora, vamos dizer. Um exemplo de onde o WebSphere Product Center é um sistema de origem controlado (isto é, aguarda algo externo para acionar uma exportação de dados) é onde o IBM WBI efetua o poll de uma fila do WebSphere Product Center periodicamente para ver se há um arquivo pronto para ser selecionado.

Protocolo

Existe muita confusão nas equipes de implementação do WebSphere Product Center e nos recursos dos clientes entre protocolo, formato e mensagem versus integração baseada em arquivo. Portanto, uma meta deste documento é certificar de que estabelecemos uma nomenclatura comum para esses conceitos. Exemplos de protocolos são FTP (File Transfer Protocol), HTTP (Hyper Text Transfer Protocol), SMTP (Simple Message Transfer Protocol, ou seja, e-mail), JMS (Java Messaging Service) e IBM WebSphere MQ (IBM WebSphere Message Queuing). Um protocolo define envelopes, codificação de dados, como números, e resposta esperada, mas não tem nada a ver com o conteúdo que está sendo transmitido. Em todas as integrações, devemos ser bem claros em relação aos protocolos que estão sendo utilizados, pois sempre haverá pelo menos um. Além disso, os vários estágios de uma integração podem realmente estar utilizando protocolos diferentes: O adaptador WBI no SAP pode estar transmitindo dados do SAP para o WBI ICS (Inter Connection Server) via HTTP, o qual entrega para um gerenciador de filas IBM MQ os dados a serem transmitidos para outro gerenciador de filas com o qual o WebSphere Product Center está conectado como um cliente MQ.

Formato

O formato em que os dados são apresentados é independente do protocolo. Exemplos de formatos são CSV (Comma Separated Values), canalização delimitada, XML (eXtensible Markup Language) ou apenas alguma estrutura predefinida de campo e de registro, como para mensagens EDI (Electronic Data Interchage). Cada formato define campos através de parâmetros de local/comprimento ou através de tags. É importante lembrar que a codificação pode ser necessária para um formato específico. Por exemplo, o fato que caracteres como parênteses ('<', '>') precisam ser evitados em XML ou que o conteúdo pode realmente conter vírgulas em CSV é esquecido com freqüência nas implementações.

Tamanho dos Dados

Esta dimensão geralmente é muito confusa com comunicação "baseada em mensagem" ou "baseada em arquivo". Portanto, é importante que isto seja obtido corretamente. Geralmente, supõe-se que a integração "baseada em mensagem" envolva trocas menores de dados e propriedades como as seguintes:

No entanto, não há uma linha clara que possa ser determinada para distinguir uma integração baseada em mensagem de uma baseada em arquivo ou em batch, e é importante definir um conjunto claro de dimensões e não conjuntos confusos ou sobrepostos. Dessa forma, o tamanho geral dos dados deve ser uma dimensão mais importante a considerar do que se estivesse rotulada como integração "baseada em mensagem" ou "em batch".

Tipos de Comunicação

Outra dimensão a ser considerada é o tipo de comunicação que será envolvido na integração. A comunicação síncrona fornece feedback direto para um usuário ou sistema do resultado de uma ação específica. Por exemplo, utilizar HTTP para se comunicar fornece feedback automático para o sistema ou usuário depois que uma ação foi enviada. Por outro lado, a comunicação assíncrona utiliza mais de uma estratégia "ativar e esquecer". Se a integração envolver o depósito de um arquivo em um servidor FTP, o qual depois será selecionado por um sistema, por exemplo, não haverá feedback automático para o sistema depositar o arquivo resultante de sua ação.

Freqüência

Juntamente com a dimensão de "tamanho de dados", esta dimensão de "freqüência" captura a quantidade total de dados que precisarão ser processados periodicamente.

Encadeamento de Integração

Esta dimensão de infra-estrutura e sistemas intermediários identifica se uma infra-estrutura EAI está sendo utilizada ou não. Além disso, às vezes em integrações com sistemas de legado, programas intermediários podem ser gravados para upload ou extração de dados no sistema de legado. É importante compreender e documentar esses sistemas ou programas intermediários, uma vez que geralmente eles são o link mais fraco na cadeia de integração.

Especialmente em integrações complexas que podem requerer vários saltos (por exemplo, do WebSphere Product Center para o WBI para o sistema de destino), meios não padrão (como atualizações diretas de bancos de dados), vários protocolos ou outros desafios de comunicação (como comunicação por um firewall), estabeleça um único encadeamento ativo ou caminho de integração completo primeiro. Isso identificará problemas e proporcionará às outras partes (como administradores de rede ou equipes que trabalham em IBM WBI) mais tempo para resolver seus problemas de conectividade paralelamente.

As dimensões de uma integração listada acima devem se tornar a terminologia padrão para descrever a integração em implementações do WebSphere Product Center. A documentação fornecida pelas equipes de PS em estágios de análise/design deve utilizar essas dimensões de forma clara e consistente.

Acrônimos

Acrônimo

Definição

EAI

Enterprise Application Integration

FTP

File Transfer Protocol

HTTP

Hyper Text Transfer Protocol

MQ

O middleware de enfileiramento de mensagens da IBM. Geralmente referido como IBM Websphere MQ, uma vez que todas as soluções de conectividade agora estão sob a marca WebSphere.

ICS

Inter Connect Server de WBI da IBM

WBI

Conjunto WebSphere Business Integration da IBM, o conjunto EAI da IBM.


Princípios de Design

Nova Capacidade de Uso

A base global que sustenta a metodologia de implementação de integração é a nova capacidade de uso. À medida que o WebSphere Product Center se desenvolve e mais implementações de clientes são feitas, é necessário que sejamos capazes de escalar rapidamente e resolver integrações com sistemas não integrados anteriormente e com aqueles que foram integrados com implementações anteriores. Para resolver este requisito, é necessário que abordemos todos os esforços de integração tendo a nova capacidade de uso em mente, de forma que se precisarmos integrar com o mesmo sistema para outro cliente, seremos capazes de fazer isso com a máxima eficiência.

A nova capacidade de uso é realizada por: (a) alavancagem de ferramentas EAI, como IBM WBI e seu modelo de objetos de negócio genéricos, (b) escolha de formatos que são independentes do modelo de dados, (c) gravação de bibliotecas de scripts do WebSphere Product Center (reconhecimento, polling, etc.) que são independentes do modelo de dados e podem ser reutilizado em outras implementações.

Compartilhamento de Informações

Comunicação como Meio para Integração

Conceitualmente, integração pode ser considerada simplesmente como uma série de eventos que podem ser acionados por comunicação entre um sistema de controle WebSphere Product Center e sistema(s) controlado(s). Esses eventos podem ser acionados por meio de mensagens transmitidas entre os sistemas, processos automatizados que efetuam poll para conteúdo ou arquivos ou qualquer outro meio de comunicação rudimentar. A comunicação inclui, por exemplo, o tipo de alteração a ser feita (incluir, atualizar, excluir), um ID de comunicação exclusivo (para rastreamento / confirmação) e o conteúdo relevante para realizar a alteração no WebSphere Product Center ou no(s) sistema(s) integrante(s).

Medidas de Confiabilidade

Além de transmitir informações entre os sistemas para comunicar as alterações, também deve haver um meio no local para comunicar o sucesso ou a falha de uma transação específica. Essas comunicações interativas podem ser implementadas mais intuitivamente com formatos síncronos de comunicação e permitem aos sistemas integrados rastrear se uma transação específica precisa ser reenviada devido à falha na recepção na outra extremidade e, assim, aprimorar e, finalmente, garantir a confiabilidade da integração.

Formatos de Informações

O formato específico destas comunicações deve ser projetado em um modelo suficientemente genérico que tanto o formato como a funcionalidade de processamento que o circunda possam ser reutilizados nas implementações.

Ao considerar o formato geral para utilizar comunicações entre sistemas, é importante observar a capacidade de uso de um formato levando em consideração as seguintes necessidades:

Processamento de Informações

Ao mesmo tempo que é concebível que o formato das informações que estão sendo enviadas entre sistemas deve ser genérico, é compreensível que nem todas as implementações poderão se ajustar a um formato predefinido, especialmente se estivermos visualizando a integração como um link direto entre o WebSphere Product Center e o(s) sistema(s) integrante(s). Para evitar uma necessidade de reformulação de formatos e mapeamentos entre formatos e especificações do WebSphere Product Center em todas as implementações por causa das diferenças, como modelos de dados, é recomendável que façamos uso da funcionalidade de mapeamento reutilizável entre formatos XML e especificações do WebSphere Product Center.

Utilizando Plataformas EAI

Uma maneira de fazer isto é utilizar as plataformas EIA, como o conjunto WBI ou webMethods, o qual nos permitirá construir conectores reutilizáveis que permitirão ao WebSphere Product Center, por exemplo, se comunicar por um formato de mensagem único e completamente reutilizável (isto é um XML DTD único). As diferenças que surgem devido a particularidades de uma implementação podem ser convertidas pelo WBI, em vez de precisarem de uma reformulação da funcionalidade do WebSphere Product Center para processar as informações. Sem reformulação da funcionalidade do WebSphere Product Center ser requerida, a mesma funcionalidade pode ser utilizada em implementações.

Outras Opções

Entretanto, outro fator a ser considerado é que clientes específicos podem precisar reutilizar um formato que já está em uso com outros sistemas em sua empresa. Isso dificultará para o WebSphere Product Center a apresentação de um DTD completamente separado que precisará ser convertido para outros sistemas na empresa compreenderem, em vez do WebSphere Product Center utilizar o DTD que já existe. Nestes casos, devemos utilizar a funcionalidade reutilizável para conversão entre especificações no WebSphere Product Center e no DTD.

Isso também pode ocorrer mesmo com uma plataforma EIA em uso. Essa abordagem também será mais útil para um cliente específico partindo da perspectiva de compreensão do mapeamento de informações gerenciadas pelo WebSphere Product Center para seus DTDs internos para comunicar informações e poderá ser uma abordagem mais ideal.

Manipulação de Eventos

De maneira ideal, um processo automatizado dentro do WebSphere Product Center manipulará eventos. Por exemplo, a funcionalidade de enfileiramento que foi inserida no release do WebSphere Product Center poderá ser utilizada para manipular o envio de mensagens (filas de saída) e a recepção de respostas e mensagens que chegam (filas de entrada). Os scripts de processamento de filas poderão ser reutilizados para manipular o processamento real das mensagens e, dessa forma, transportar os eventos que devem ser acionados como resultado de uma mensagem específica.

No entanto, a manipulação de eventos não precisa ser vinculada diretamente à funcionalidade específica ou às versões específicas do WebSphere Product Center. Outros meios de manipulação de eventos podem incluir tarefas planejadas no WebSphere Product Center que efetuam poll de um servidor FTP, tarefas planejadas que verificam um sistema de arquivos local para um arquivo (por meio do Armazenamento de documentos), tendo eventos de ativação de script de acionamento baseado no chamador baseados em informações enviadas ou outros meios. O método escolhido deve depender de consideração cuidadosa do tamanho de dados e dos requisitos de dimensão de freqüência de um item específico.

Rastreio de Alterações

Para poder implementar uma sincronização total entre os sistemas, deverá haver um meio no WebSphere Product Center de rastrear as alterações feitas no conteúdo e nos itens que podem ser efetivamente ativados como comunicados para o(s) sistema(s) integrante(s) ou não. Por exemplo, se um item for excluído dentro do WebSphere Product Center (como um sistema de origem), provavelmente desejaremos não apenas acionar uma mensagem que está sendo enviada ao sistema de destino que notifica ao sistema de destino que ele deve excluir o mesmo item, mas também que o WebSphere Product Center pode estar ciente de se o item foi realmente excluído do sistema de destino.

Conectores Reutilizáveis

Repositório de Conectores

À medida que as implementações progridem e nossas parcerias evoluem, gradualmente ficaremos construindo um repositório de conectores reutilizáveis para uma variedade de sistemas. Sempre que possível, faremos todos os esforços para reutilizar esses conectores, uma vez que a funcionalidade em torno dos itens de processamento e, portanto, o fluxo que através desses conectores podem ser reutilizados com um pouco ou nenhuma modificação a partir do ponto inicial de uma implementação específica. É claro que isso acelerará bastante o tempo de implementação como um todo e aprimorará a confiabilidade geral e a estabilidade dos conectores e as implementações que utilizam esses conectores conforme os problemas foram localizados e resolvidos com o tempo.

Ao integrar-se com sistemas que ainda não possuem conectores, um especialista em integração deve estar envolvido e pode construir rapidamente um conector reutilizável que, em seguida, pode ser utilizado para a integração na implementação específica e também pode ser armazenado no repositório de conectores para uso futuro se sempre precisamos integrar com o sistema em outra implementação.

Uso de Conectores

Os conectores devem ser utilizados de forma que quaisquer modificações que possam precisar ser feitas sejam feitas por meio de conversões de manipulação da camada EAI de quaisquer informações que estejam sendo transmitidas entre sistemas. Em outras palavras, antes de regravar qualquer uma das funcionalidades reutilizáveis dentro do WebSphere Product Center para processar informações transmitidas por um EAIi, devemos tirar proveito da capacidade da plataforma EAI para fazer todas as traduções necessárias, de forma que não precisamos regravar nenhuma na funcionalidade WebSphere Product Center.


Implementação

Escalando a Implementação

Mini-integrações

A grande tarefa de uma integração global deve ser dividida em tarefas bem menores e bem mais fáceis de gerenciar. Por exemplo, isso pode ser feito dividindo uma integração única, completa - de integrações "separadas" para cada tipo de item (especificação), para integrações para cada contêiner (catálogo), todo o percurso para integrações de um grupo de atributos (se necessário). Uma vez que há confiança que cada uma dessas "mini-integrações" funciona de maneira impecável, elas podem ser combinadas para formar a integração única, completa.

Granularidade da Funcionalidade

Deve-se prestar atenção aos níveis em que a integração entre sistemas precisa ocorrer. Por exemplo, ao enviar alterações a um sistema de destino, uma pessoa pode desejar enviar todas as alterações desde uma data específica, somente aquelas alterações de um catálogo específico desde que as últimas alterações foram enviadas, somente alterações que ocorreram em um grupo de itens específico ou quaisquer alterações que tenham ocorrido em um atributo específico em todos os itens. Os requisitos específicos não dependerão da implementação, mas é importante considerar a granularidade requerida anteriormente no processo de design da implementação, de forma que ele possa ser categorizado apropriadamente.

Ajuste de Desempenho

Comentários Gerais de Desempenho

Não deixe os problemas de desempenho como uma reflexão. Será mais fácil alterar e corrigir formatos ou outros aspectos de integração posteriormente no jogo, mas um gargalo de desempenho pode requerer novo desenho principal e, algumas vezes, o suporte de engenharia. Coloque os ganchos de medida de desempenho nos scripts no curso vencido de desenvolvimento.

Medindo Desempenho

Assumindo-se a abordagem de mini-integração (conforme detalhado na seção Implementação), o desempenho deve ser medido em cada etapa da integração medindo o tempo total requerido para cada tarefa de mini-integração. As possíveis áreas de desempenho inadequado podem, em seguida, ser identificadas em um nível apropriadamente granular e podem ser mais facilmente destinada para desempenho tweaking.

Desempenho Tweaking

Depois que as áreas com problema de desempenho forem identificadas, uma análise detalhada deverá ser concluída para determinar a causa raiz de operação eleita. Uma análise detalhada pode ser feita utilizando ferramentas como a atribuição de perfil do middleware WebSphere Product Center e a guia de desempenho na tela de detalhes da tarefa. Em seguida, a análise pode ser aplicada para focalizar uma área específica de um script ou uma linha SQL, e a ação apropriada pode ser formada, então, modificando ou regravando o script ou envolvendo Engenharia para aprimorar a consulta do banco de dados.

Validação

Estabilidade

Vantagens de Mini-integrações

A implementação de mini-integrações (conforme detalhado na seção Implementação) deve fornecer um nível mais alto de confiança que uma integração foi bem-sucedida, fornecendo uma listagem detalhada de todas as áreas em que a integração foi mostrada para estar funcionando. Sem a visibilidade das mini-integrações, não é apenas mais difícil fornecer prova dos detalhes do trabalho de integração, mas a integração como um todo também é mais provável para sofrer de problemas difíceis para identificar, diagnosticar e depurar. A implementação de mini-integrações aprimorará daqui a estabilidade global de integração.

Teste Escalável

Vantagens de Mini-integrações

A implementação de mini-integrações (conforme detalhado na seção Implementação) permite que o teste de integração ocorra em um nível mais fino de detalhe, de forma que quaisquer erros ou problemas que surjam não sejam ocultados por grandes quantidades de complexidade (potencialmente irrelevante). Dessa forma, conforme mencionado acima, os processos de diagnosticar, limpar e resolver problemas localizados devem ser todos acelerados por esta abordagem.

Ambientes Representativos vs. Completos

O teste de integração deve ser feito em um ambiente representativo com a mesma configuração que o ambiente final (mesmas especificações, regras de validação, regras de valor, visualizações), mas com poucas entidades representativas possíveis (códigos do idioma, catálogos, árvores de categorias, itens, categorias, organização, usuários, funções). Isso deve reduzir o tempo que ele demora para que os testes sejam executados, as telas serem colocadas e, em geral, dúvida geral deve acelerar o teste de tempo versus o teste feito em um ambiente que está totalmente preenchido. Todas as limpezas e depurações devem ser vistas neste ambiente.

Apenas após o teste ser concluído no ambiente representativo e tudo parecer estar funcionando, a integração deve ser verificada em um ambiente completo e totalmente ocupado. Esta etapa ainda deve ser transportada. No entanto, para garantir que nenhum cenário de borda testa o desempenho da integração.

Teste de Processo Escalável

Qualquer tarefa planejável (isto é, importações, exportações) deve primeiro ser executada apenas com um número muito pequeno de itens representativos – 10 ou menos. Esse número deve ser aumentado em proporção ao nível de confiança que é obtido no script que realmente está processando esses itens. Esta abordagem garantirá que uma tarefa grande não seja executada em algumas horas apenas para a pessoa que a está executando para localizar no final que algo estava errado sem fazer com que o processo inteiro falhe completamente nos primeiros minutos de execução.

Somente depois que houver total confiança na operação do script associado à tarefa, uma tarefa deve ser executada envolvendo um conjunto de dados completo. Assim como ocorreu com a recomendação completa de ambiente, esta etapa ainda deve ser transportada para garantir que nenhum cenário de borda seja acidentalmente ignorado na menor tarefa executada e no teste do desempenho de nível de produção do trabalho.

Visibilidade

Relatório

Vantagens de Mini-integrações

A implementação de mini-integrações (conforme detalhado na seção Implementação) permite um nível mais detalhado de geração de relatório devido a quantidades de integração menores e que podem ser implementadas mais rapidamente. Comparado à geração de relatório no progresso de implementação no nível da integração inteira, esse nível mais fino de geração de relatórios permite um rastreamento mais concreto e quantitativo da implementação.

As mini-integrações podem ser listadas e seus relacionamentos à imagem maior da integração completa detalhada em um gráfico e, em seguida, uma imagem precisa do progresso global de implementação pode ser facilmente desenhada a partir da geração de relatório no progresso de tarefas de mini-integração.

Propriedade

Mesmo quando está trabalhando com múltiplas equipes, atribua a propriedade a uma única pessoa na integração. A tarefa desta pessoa é assegurar que o encadeamento único será estabelecido, que as equipes estão trabalhando de acordo com as diretrizes contidas neste documento e que o ciclo de construção/teste em (a) mini-integrações, (b) teste de processo escalável e (c) ambientes representativos vs. completos está em síncrono nas várias equipes.

Documentação

Identificar Claramente Formatos e Abordagem

Decida em um caminho limpo para execução e documente claramente quaisquer formatos que serão utilizados quando houver várias equipes trabalhando na integração. O exemplo mais comum é onde uma equipe do WebSphere Product Center está trabalhando na exportação de dados do WebSphere Product Center, e um cliente ou uma equipe de SI está trabalhando no upload desses dados para o sistema de destino. Não comece o trabalho sem especificações para o formato comum e mantenha esta documentação diariamente atualizada. Esse é um requisito absoluto que o coordenador de projeto deve reforçar.

Esta abordagem não está inconsistente com o uso de ambientes representativos e execução de mini-integrações. As duas equipes devem construir e testar incrementalmente para assegurar um progresso visível e estável.


As Dez Principais Diretrizes para Integrações do WebSphere Product Center

Utilizar Terminologia Clara e Comum para Descrever Integrações

Todas as implementações devem utilizar as dimensões identificadas na seção Dimensões de Integração.

Nova Capacidade de Uso

A chave para escalar consistirá em aprender a partir de integrações anteriores e em empacotar as integrações tendo em mente os princípios da nova capacidade de uso descritos na seção Nova Capacidade de Uso.

Visibilidade

Estabeleça uma métrica global para relatar o progresso e fornecer uma atualização clara do status a cada poucos dias para o coordenador de projeto.

Mini-integrações

Corte a complexidade de uma grande integração, de acordo com as várias dimensões (catálogos, atributos) que fazem sentido para esta integração. Concentre-se em uma mini-integração de cada vez e vincule diretamente com as métricas de visibilidade.

Ambientes Representativos vs. Completos

Mantenha um ambiente representativo que seja fácil de depurar e com o qual seja fácil efetuar testes. Mova para o ambiente completo apenas quando houver confidência na validade de scripts e especificações. Vincule isso com as métricas de visibilidade.

Teste de processo escalável

Teste todas as tarefas com conjuntos de dados pequenos para verificar se está correto antes de rolar para os conjuntos de dados completos. Vincule isso com as métricas de visibilidade.

Aplicativo

Sem se preocupar com a correção de lógica e formatação, execute alguns testes de desempenho primeiramente no ciclo de desenvolvimento e regularmente depois para identificar problemas.

Estabelecer Encadeamento Único Primeiro

Especialmente em integrações complexas que requerem vários saltos, múltiplos protocolos ou meios não padrão, estabeleça um encadeamento único ativo de integração.

Projetar Especificações e Documentação

Defina e documente um caminho limpo para execução e documente claramente quaisquer formatos que serão utilizados quando houver várias equipes trabalhando na integração.

Proprietário Único

Mesmo quando está trabalhando com múltiplas equipes, atribua a propriedade a uma única pessoa na integração.


Integrações da Plataforma EAI

Abordagem

Formato de Comunicação Genérica

Sempre que possível, um formato de comunicação genérico deve ser designado ou reutilizado de um projeto anterior. Quanto mais geral o formato, mais sistemas podem ser envolvidos na integração sem o novo trabalho de formatos requerido para que todos os sistemas se comuniquem entre si. Claramente, pode haver alternância no desempenho. Quanto mais claro um formato torna-se e, depois, o formato direito para um projeto não pode ser a opção ideal para outra. As Dimensões de Integração ainda devem ser levadas em consideração ao determinar um formato específico para uso.

Mapeamentos de Conteúdo

O máximo possível, os mapeamentos entre o modelo de conteúdo no WebSphere Product Center e o modelo visto através do formato de comunicação deve ser feito através de meios atualizáveis dinamicamente. Novamente, com base em uma investigação das Dimensões de Integração, as necessidades determinadas do projeto podem informar que a criação desses mapeamentos não pode ser totalmente atualizável dinamicamente - devido a uma alta prioridade colocada no rendimento máximo de processamento. Uma maneira de fazer isso envolve o uso das árvores de categoria (representando uma estrutura XML, por exemplo) com uma especificação de nó único relacionado a elas que podem indicar o caminho do nó de especificação do atributo, um nó específico da árvore de categorias no modelo de conteúdo do WebSphere Product Center. Um script de processamento recursivo porque pode ser utilizado para processar o mapeamento de um item em um arquivo XML baseado nesta árvore de categorias e seus mapeamentos definidos, e podem reunir cater para várias ocorrências casadas com um mínimo esforço.


Vantagens Adicionais

Tradução / Transformação de Informações

Os sistemas envolvidos na integração não devem precisar manipular as informações e restrições (restrições de conteúdo e requerido) de conteúdo e informação e os requisitos de outros sistemas na integração. As plataformas EAI podem ser facilmente utilizadas para manipular seu conteúdo de tradução e transformação de conteúdo. Por exemplo, enquanto o WebSphere Product Center armazena um valor do FLAG como "TRUE" ou "FALSE", um sistema com o qual integramos poderá armazenar o valor como "Y" ou "N". As plataformas EAI podem ser utilizadas para fazer essas conversões de tal forma que o WebSphere Product Center pode sempre enviar TRUE/FALSE e assumir que ele será enviado TRUE/FALSE, enquanto sistemas integrados podem sempre enviar e assumir que seja enviado Y/N. Isso garante que abaixo da linha, se mais sistemas estiverem envolvidos na integração, nenhuma nova codificação será requerida tendo em mente esses sistemas operacionais.

Compreensão do Cliente

Como podemos reutilizar uma plataforma com a qual um cliente provavelmente esteja familiarizado, o cliente obterá a confiança incluída que a integração faz uso da funcionalidade conhecida, isto é, a plataforma EAI. Adicionalmente, se um formato de comunicação específico do cliente já existir e for reutilizado para a integração do WebSphere Product Center, os desenvolvedores no lado do cliente precisam pouco para treinamento não adicional para compreender o formato de comunicação para o qual o WebSphere Product Center será mapeado.

Flexibilidade e Confiabilidade da Comunicação

A maioria das plataformas EAI possuem funcionalidade nativa para permitir que as comunicações ocorram em vários protocolos, e também para assegurar que as comunicações sejam entregues por intermediários. Isso permite que o WebSphere Product Center se concentre simplesmente na geração do documento necessário para se comunicar e que não precisa se preocupar em suportar meios potencialmente diferentes para comunicar este documento para vários sistemas, nem precisa se preocupar em rastrear se o documento foi recebido ou não por todos os sistemas – essas preocupações tornam-se preocupações da camada e da plataforma EAI e o WebSphere Product Center precisa apenas estar ciente deles a partir de uma perspectiva de encadeamento de integração global.


Avisos

A IBM pode não oferecer os produtos, serviços ou recursos discutidos neste documento em todos os 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 um produto, programa ou serviço da IBM não pretende declarar ou inferir que somente aquele produto, programa ou serviço da IBM pode ser utilizado. Qualquer produto, programa ou serviço funcionalmente equivalente, que não infrinja o direito sobre propriedade intelectual da IBM pode ser utilizado no lugar. Entretanto, é responsabilidade do usuário avaliar e verificar a operação de qualquer produto, usuário ou operação não-IBM.

A IBM pode ter aplicativos de patente ou de patente pendente cobrindo assunto sujeito descrito nesse documento. O fornecimento desta publicação não lhe garante direito algum 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

O parágrafo a seguir não se aplica ao Reino Unido ou a qualquer país no qual tais previsões são incompatíveis com a lei 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 MERCADO OU DE 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 a você.

Essas informações poderiam incluir inadequaçõ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, aprimorar e/ou alterar os produtos e/ou programas descritos nesta publicação sem aviso prévio.

Referências nestas informações a Web sites não-IBM são fornecidas apenas por conveniência e não representam de forma alguma um endosso a estes Web sites. Os materiais desses sites da Web não fazem parte deste produto IBM e o uso dos mesmos fica por sua própria conta e risco.

A IBM pode utilizar ou distribuir as informações fornecidas da maneira que achar conveniente, sem que isso implique em qualquer obrigação para com o Cliente.

Os possuidores de licença deste programa que pretendam obter informações sobre o mesmo 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 apropriados, 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.

Quaisquer dados de desempenho contidos aqui 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 em nível de desenvolvimento de sistema e não há garantia de que essas medidas serão as mesmas em sistemas geralmente disponíveis. Além disso, alguma medida pode ter sido estimada através de extrapolação. Resultados reais podem variar. Usuários desse documento devem verificar os dados aplicáveis aos seus ambientes específicos.

As informações sobre 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 necessariamente 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. Questões sobre as capacidades dos produtos não IBM devem ser endereçadas aos fornecedores desses produtos.

Estas informações podem conter exemplos de dados e relatórios utilizados nas operações diárias de negócios. Para que sejam ilustrados do modo mais completo possível, os exemplos incluem nomes de indivíduos, empresas, marcas e produtos. Todos estes nomes são fictícios e qualquer semelhança com nomes e endereços utilizados por uma empresa real é mera coincidência.

Todas as declarações em relação a futura direção ou objetivo da IBM estão sujeitas a alterações e retirada sem aviso e representam metas e objetivos somente.

Informações da Interface de Programação

As informações da interface de programação, se fornecidas, foram projetadas para ajudar você a criar software aplicativo utilizando este programa.

As interfaces de programação de uso geral permitem gravar o software aplicativo que obtém os serviços das ferramentas deste programa.

No entanto, estas informações também podem conter informações de diagnóstico, modificação e ajuste. As informações de diagnóstico, modificação e ajuste são fornecidas para ajudá-lo a depurar seu software aplicativo.

Aviso: Não utilize estas informações de diagnóstico, modificação e ajuste como uma interface de programação, pois está sujeita a alterações.

Marcas Registradas e Marcas de Serviço

Os termos a seguir são marcas registradas ou marcas registradas da International Business Machines Corporation nos Estados Unidos e/ou em outros países:

IBM
o logotipo IBM
AIX
CrossWorlds
DB2
Banco de Universal DB2
Domino
Lotus
Lotus Notes
MQIntegrator
MQSeries
Tivoli
WebSphere

Microsoft, Windows, Windows NT e o logotipo Windows são marcas registradas da Microsoft Corporation nos Estados Unidos e/ou em outros países.

MMX, Pentium e ProShare são marcas registradas ou marcas registradas da Intel Corporation nos Estados Unidos e/ou em outros países.

Java e todas as marcas registradas baseadas em Java são marcas registradas da Sun Microsystems, Inc. nos Estados Unidos e/ou em outros países.

Outros nomes de empresas, produtos ou serviços podem ser marcas registradas ou marcas de serviços de terceiros.


O IBM WebSphere Product Center contém determinados Componentes Excluídos (conforme definido 
no documento pertinente Informações sobre Licença), aos quais são aplicados os seguintes 
termos adicionais. Esse software está licenciado sob os termos e 
condições do Acordo de Licença do Programa Internacional, sujeito às suas 
provisões de Componentes Excluídos. A IBM deve fornecer os seguintes 
avisos juntamente com este software:

i.) O IBM WebSphere Product Center inclui o seguinte software que foi 
licenciado pela IBM a partir da Apache Software Foundation sob os termos e 
condições da licença do Apache 2.0:

- Apache Regular Expression v1.2
- Apache Axis v1.1
- Apache XML4J v3.0.1
- Apache Log4j v1.1.1
- Apache Jakarta Commons DBCP Package v1.1
- Apache Jakarta Commons Pool Package v1.1
- Apache Jakarta Commons Collections Package v3.0

Licença da Apache
Versão 2.0, janeiro de 2004
http://www.apache.org/licenses/

TERMOS E CONDIÇÕES DE USO, REPRODUÇÃO E DISTRIBUIÇÃO

1. Definições.

"Licença" deve significar os termos e as condições de uso, reprodução
e distribuição, conforme definido pelas Seções 1 a 9 deste documento.

"Licenciador" deve significar o proprietário de copyright ou a entidade autorizada
proprietário de copyright que está concedendo a Licença.

"Entidade Jurídica" deve significar a união da entidade atuante e todas
as outras entidades que controlam, são controladas ou que estejam sob
controle comum com essa entidade. Para a finalidade dessa definição,
"controle" significa (i) o poder, direto ou indireto, de causar
a administração ou o gerenciamento de tal entidade, seja por contrato ou,
caso contrário, (ii) a propriedade de 50% ou mais
de ações em aberto ou (iii) a propriedade usufrutuária de tal entidade.

"Você" (ou "Seu") deve significar um indivíduo ou uma Entidade Jurídica
que está utilizando as permissões concedidas por esta Licença.

Formato de "origem" deve significar o formato preferido para fazer modificações,
incluindo, mas não se limitando ao código fonte do software, à origem
da documentação e aos arquivos de configuração.

Formato de "objeto" deve significar qualquer formato resultante de transformação
mecânica ou conversão de um formato de Origem, incluindo, mas não
se limitando ao código do objeto compilado, à documentação gerada
e às conversões para outros tipos de mídia.

"Trabalho" deve significar o trabalho de autoria, seja no formato de Origem ou
de Objeto, disponível sob a Licença, conforme indicado por um
aviso de copyright incluído ou anexado ao trabalho
(um exemplo é fornecido no Apêndice abaixo).

"Trabalhos Derivativos" devem significar qualquer trabalho, seja no formato de
Objeto, baseado (ou derivado de) no Trabalho e para o qual as
revisões editoriais, anotações, elaborações ou outras modificações
representam, como um todo, um trabalho original de autoria. Para a finalidade
dessa Licença, Trabalhos Derivativos não devem incluir trabalhos que permanecem
separados ou, simplesmente, são vinculados (ou ligados pelo nome) às interfaces
do Trabalho e dos Trabalhos Derivativos.

"Contribuição" deve significar qualquer trabalho de autoria, incluindo
a versão original do Trabalho e quaisquer modificações ou inclusões
naquele Trabalho ou Trabalhos Derivativos, que seja intencionalmente
submetido ao Licenciador para inclusão no Trabalho pelo proprietário de copyright
ou por um indivíduo ou Entidade Jurídica autorizada a submeter em nome do
proprietário de copyright. Para a finalidade dessa definição, "submetido"
significa qualquer formato de comunicação eletrônica, verbal ou escrita enviado
ao Licenciador ou seus representantes, incluindo, mas não se limitando à
comunicação em listas de correio eletrônico, sistemas de controle de código de origem
e sistemas de rastreio de emissão que são gerenciados pelo, ou em nome do,
Licenciador com o objetivo de discutir e aprimorar o Trabalho, mas
excluindo a comunicação que é visivelmente marcada ou, de outra forma,
designada, por escrito, pelo proprietário de copyright como "Não é uma Contribuição."

"Contribuinte" deve significar Licenciador ou qualquer indivíduo ou Entidade
Jurídica em nome da qual uma Contribuição foi recebida pelo Licenciador e
subseqüentemente incorporada no Trabalho.

2. Concessão de Licença de Copyright. Sujeito aos termos e condições desta
Licença, cada Contribuinte concede ao Cliente, por meio desta, uma licença de copyright
perpétua, mundial, não-exclusiva, sem taxas, livre de royalty e irrevogável
para reproduzir, preparar Trabalhos Derivativos,
exibir e executar publicamente, sublicenciar e distribuir o
Trabalho e os Trabalhos Derivativos no formato de Origem ou de Objeto.

3. Concessão de Licença de Patente. Sujeito aos termos e condições desta
Licença, cada Contribuinte concede ao Cliente, por meio desta, uma licença de copyright
perpétua, mundial, não-exclusiva, sem taxas, livre de royalty e irrevogável
(exceto pelo declarado nesta seção) para criar, utilizar
oferecer para venda, vender, importar e transferir o Trabalho
no qual tal licença se aplica apenas àquelas solicitações de patente licenciáveis
por tal Contribuinte, que são necessariamente violadas por seu(s)
Contribuinte(s) sozinho(s) ou em combinação de seu(s) Contribuinte(s)
com o Trabalho ao qual tal(is) Contribuinte(s) foi(ram) submetido(s). Se Você
instituir um litígio de patente contra qualquer entidade (incluindo uma
contra-solicitação ou reivindicação em uma ação judicial) alegando que o Trabalho
ou uma Contribuição incorporada no Trabalho constitui violação direta
ou de patente do contribuinte, então, quaisquer licenças de patente
concedidas ao Cliente sob esta Licença para aquele Trabalho devem terminar
a partir da data que tal litígio for arquivado.

4. Redistribuição. Você poderá reproduzir e distribuir cópias do
Trabalho ou dos Trabalhos Derivativos em qualquer mídia, com ou sem
modificações, no formato de Origem ou de Objeto, contanto que Você
atenda às seguintes condições:

(a) Você deve fornecer a qualquer outro destinatário do Trabalho
ou dos Trabalhos Derivativos uma cópia desta Licença; e

(b) Você deve fazer com que quaisquer arquivos modificados enviem avisos
proeminentes informando que Você alterou os arquivos; e

(c) Você deve reter, no formato de Origem de quaisquer Trabalhos Derivativos
que distribuir, todos os avisos de copyright, de patente, de marca registrada e
de atribuição do formato de Origem do Trabalho,
excluindo aqueles avisos que não pertencem a nenhuma parte
dos Trabalhos Derivativos; e

(d) Se o Trabalho incluir um arquivo de texto "AVISO" como parte de sua
distribuição, então, todos os Trabalhos Derivativos que Você distribuir
deverão incluir uma cópia legível dos avisos de atribuição contidos
em tal arquivo AVISO, excluindo aqueles avisos que não pertencem
a nenhuma parte dos Trabalhos Derivativos, em pelo menos um
dos seguintes locais: em um arquivo de texto AVISO distribuído
como parte dos Trabalhos Derivativos; no formato ou documentação
de Origem, se fornecida junto com os Trabalhos Derivativos; ou
em uma exibição gerada pelos Trabalhos Derivativos, se e
sempre que tais avisos de terceiros aparecerem normalmente. O conteúdo
do arquivo AVISO é apenas para fins informativos e
não modifica a Licença. É possível incluir os Seus próprios avisos
de atribuição nos Trabalhos Derivativos que distribuir, juntamente ou
como um adendo ao texto de AVISO do Trabalho, contanto que
tais avisos de atribuição adicionais não sejam construídos
como modificadores da Licença.

Você poderá incluir as Suas próprias declarações de copyright em Suas modificações e
poderá fornecer termos e condições de licença adicionais ou diferentes
para uso, reprodução ou distribuição de Suas modificações ou
para quaisquer Trabalhos Derivativos do tipo, como um todo, contanto que Seu uso,
reprodução e distribuição do Trabalho estejam em conformidade com
as condições declaradas nesta Licença.

5. Submissão de Contribuições. A menos que Você declare explicitamente de outra forma,
qualquer Contribuição intencionalmente submetida para inclusão no Trabalho
por Você ao Licenciador deve estar sob os termos e condições desta
Licença, sem quaisquer termos ou condições adicionais.
Apesar do que foi dito anteriormente, nada descrito aqui deve substituir ou modificar
os termos de qualquer acordo de licença separado que você tenha firmado
com o Licenciador sobre tais Contribuições.

6. Marcas Registradas. Esta Licença não concede permissão para utilizar os nomes comerciais,
as marcas registradas, as marcas de serviço ou os nomes de produtos do Licenciador,
exceto quando requerido para uso razoável e habitual na descrição da
origem do Trabalho e na reprodução do conteúdo do arquivo AVISO.

7. Isenção de Responsabilidade de Garantia. A menos que requerido pela lei aplicável ou
firmado um acordo, por escrito, o Licenciador fornece o Trabalho (e cada
Contribuinte fornece suas Contribuições) no ESTADO "EM QUE SE ENCONTRA",
SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, sejam expressas ou
implícitas, incluindo, mas sem limitação, quaisquer garantias ou condições
de TÍTULO, NÃO-VIOLAÇÃO, COMERCIALIZAÇÃO OU ADEQUAÇÃO PARA UM
PROPÓSITO ESPECÍFICO. Você é responsável unicamente por determinar a
adequação de uso ou redistribuição do Trabalho e assumir todos os
riscos associados ao Seu exercício de permissões sob esta Licença.

8. Limitação de Responsabilidade. Em nenhuma circunstância e sob nenhuma teoria jurídica,
seja em danos (incluindo negligência), contrato ou, de alguma outra forma,
a menos que requerido pela lei aplicável (como leis de deliberação e
negligência excessiva) ou firmado em acordo, por escrito, qualquer Contribuinte deve ser
responsabilizado por Você por danos, incluindo quaisquer danos diretos, indiretos,
especiais, incidentais ou conseqüenciais de qualquer espécie que surgirem como um
resultado desta Licença ou pela uso ou inabilidade em utilizar o
Trabalho (incluindo, mas não se limitando aos danos de perda de clientela,
interrupção do trabalho, defeito ou mau funcionamento do computador ou de todos os
danos ou perdas comerciais), mesmo que tal Contribuinte
tenha sido avisado da possibilidade de tais danos.

9. Aceitando a Garantia ou Responsabilidade Adicional. Ao redistribuir
o Trabalho ou os Trabalhos Derivativos, Você poderá optar por oferecer
e cobrar uma taxa pela aceitação de suporte, garantia, indenização ou
outras obrigações e/ou direitos de responsabilidade consistentes com esta
Licença. No entanto, ao aceitar tais obrigações, Você poderá agir apenas
em seu próprio nome e sob Sua única responsabilidade, e não em nome de qualquer
outro Contribuinte e apenas se Você concordar em indenizar, defender
e manter cada Contribuinte ileso de qualquer responsabilidade
incorrida ou de reclamações declaradas contra tal Contribuinte pela razão
de sua aceitação de qualquer garantia ou responsabilidade adicional.

FIM DOS TERMOS E DAS CONDIÇÕES

APÊNDICE: Como Aplicar a Licença Apache em seu Trabalho.

Para aplicar a Licença Apache em seu trabalho, anexe o seguinte aviso
final, com os campos entre aspas "[]"
substituídos por suas próprias informações de identificação. (Não inclua
as aspas!) O texto deve ficar envolvido na sintaxe de comentário
adequada para o formato de arquivo. Também recomendamos que um
arquivo ou nome de classe e descrição do objetivo sejam incluídos na
mesma "página impressa" do aviso de copyright para facilitar
a identificação dentro dos archives de terceiros.

Copyright [aaaa] [nome do proprietário de copyright]

Licenciado sob a Licença Apache, Versão 2.0 (a "Licença");
Não é possível utilizar esse arquivo, exceto em conformidade com a Licença.
É possível obter uma cópia da Licença em

http://www.apache.org/licenses/LICENSE-2.0

A menos que requerido pela lei aplicável ou firmado em acordo, por escrito, o software
distribuído sob a Licença é distribuído "NO ESTADO EM QUE SE ENCONTRA",
SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, sejam expressas ou implícitas
Consulte a Licença para obter as permissões de controle no idioma específico e
as limitações sob a Licença.

ii.) O IBM WebSphere Product Center inclui o seguinte software que foi 
licenciado pela IBM a partir da Scott Hudson, Frank Flannery and C. Scott Ananian sob 
os termos e condições a seguir:

- Cup Parser Generator v0.10k

Aviso de Copyright, Licença e Isenção de Responsabilidade do CUP Parser Generator
Copyright 1996-1999 da Scott Hudson, Frank Flannery, C. Scott Ananian 
Permissão para uso, cópia, modificação e distribuição desse software e sua 
documentação para qualquer finalidade e sem taxa é por meio disso concedido, contanto que 
o aviso de direitos autorais acima apareça em todas as cópias e que o aviso de 
direitos autorais, esse aviso de permissão e o isenção de responsabilidade de garantia apareça na documentação de 
suporte, e que os nomes dos autores ou seus empregadores não sejam 
utilizados em propaganda ou publicidade relativa à distribuição do software 
sem permissão prévia por escrito e específica. Os autores e seus empregadores 
renunciam todas as garantias relativas a este software, incluindo todas as garantias implícitas 
de mercado e adequação. Em nenhuma circunstância os autores ou 
seus empregadores são responsabilizados por quaisquer danos específicos, indiretos ou conseqüentes 
ou quaisquer danos sejam quais for resultantes da perda do uso, dados ou lucros, se 
em uma ação de contrato, negligência ou outra ação prejudicial, que surge fora 
ou juntamente com o uso ou desempenho desse software. 

iii.) O IBM WebSphere Product Center inclui o seguinte software que foi 
licenciado pela IBM a partir da Elliot Joel Berk and C. Scott Ananian sob 
os seguintes termos e condições:

- JLex v1.2.6

AVISO DE COPYRIGHT, LICENÇA E ISENÇÃO DE RESPONSABILIDADE DA JLEX.
Copyright 1996-2003 da Elliot Joel Berk and C. Scott Ananian 
Permissão para uso, cópia, modificação e distribuição desse software e sua 
documentação para qualquer finalidade e sem taxa é por meio disso concedido, contanto que 
o aviso de direitos autorais acima apareça em todas as cópias e que o aviso de 
direitos autorais, esse aviso de permissão e o isenção de responsabilidade de garantia apareça na documentação de 
suporte, e que os nomes dos autores ou seus empregadores não sejam 
utilizados em propaganda ou publicidade relativa à distribuição do software 
sem permissão prévia por escrito e específica. Os autores e seus empregadores 
renunciam todas as garantias relativas a este software, incluindo todas as garantias implícitas 
de mercado e adequação. Em nenhuma circunstância os autores ou 
seus empregadores são responsabilizados por quaisquer danos específicos, indiretos ou conseqüentes 
ou quaisquer danos sejam quais for resultantes da perda do uso, dados ou lucros, se 
em uma ação de contrato, negligência ou outra ação prejudicial, que surge fora 
ou juntamente com o uso ou desempenho desse software. Java é uma marca registrada 
da Sun Microsystems, Inc. As referências à linguagem de programação Java em 
relação ao JLex não indicam que a Sun aprova este produto. 

iv.) O IBM WebSphere Product Center inclui o seguinte software que foi 
licenciado pela IBM da International Business Machines Corporation e outros 
sob os seguintes termos e condições:

- ICU4J v2.8

ICU License - ICU 1.8.1 e posterior
AVISO DE COPYRIGHT E PERMISSÃO

Copyright (c) 1995-2003 International Business Machines Corporation e outros
Todos os direitos reservados.

A permissão é aqui concedida, sem taxas, para qualquer pessoa que obtiver uma
cópia deste software e dos arquivos de documentação associados (o
"Software"), para trabalhar com o Software sem restrição, incluindo,
sem limitação, os direitos de uso, cópia, modificação, mesclagem, publicação,
distribuição e/ou venda de cópias do Software e para permitir às pessoas,
às quais o Software foi fornecido, que façam essas ações, contanto que os avisos de
copyright acima e este aviso de permissão apareçam em todas as cópias do
Software e que ambos os avisos de copyright acima e este
aviso de permissão apareça na documentação de suporte.

O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA" SEM GARANTIA DE NENHUM TIPO,
EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE
COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO ESPECÍFICO E NÃO-VIOLAÇÃO
DOS DIREITOS DE TERCEIROS. EM NENHUMA CIRCUNSTÂNCIA, OS PORTADORES DO COPYRIGHT
INCLUÍDOS NESTE AVISO SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO OU QUAISQUER DANOS
ESPECIAIS, INDIRETOS OU CONSEQÜENCIAIS OU POR QUAISQUER DANOS RESULTANTES
DA PERDA DE USO, DADOS OU LUCROS, SEJA EM UMA AÇÃO DE CONTRATO,
NEGLIGÊNCIA OU OUTRA AÇÃO DE DANOS RESULTANTE OU EM CONEXÃO
COM O USO OU DESEMPENHO DESTE SOFTWARE.

Exceto conforme contido neste aviso, o nome de um portador de copyright
não deve ser utilizado em publicidades ou, de alguma outra forma, promover a venda, o uso
ou outras negociações neste Software sem autorização, por escrito, do
portador de copyright.


Todas as marcas registradas aqui mencionadas, são a propriedade de 
seus respectivos proprietários.