IBM Mashup Center: V1.1
Transcrição
IBM Mashup Center: V1.1
Lotus Mashups 1.1 ® Version 1 Release 1 Tópicos do Developer Nota Antes de usar essas informações e o produto suportado por elas, leia as informações em “Avisos” na página 25. Esta edição aplica-se à versão 1, release 1 do IBM Mashup Center 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 Corporation 2008, . Índice Trabalhando com Temas e Skins (V1.1) 1 Adicionando Widgets e Páginas de Mashup às Páginas da Web . . . . . . 7 Definindo os Modos de Widget Personalizado. . . . . . . . . . . . 21 Avisos . . . . . . . . . . . . . . . 25 Marcas Registradas . . . . . . . . . . . . 27 Boas Práticas para Criação de Widgets 11 Trabalhando com Tipos de Carga Útil © Copyright IBM Corp. 2008, 13 iii iv IBM Mashup Center: V1.1 Trabalhando com Temas e Skins (V1.1) O Lotus Mashups é fornecido com os seguintes dois temas padrão: defaultTheme e defaultThemeColumnar. Cada um contém vários skins. Os temas fornecem a navegação, a aparência e o layout da página de mashup, incluindo cores, fontes e imagens ao redor dos widgets na página. Os skins definem a aparência dos widgets que você arrasta para a página. Os skins envolvem essencialmente os widgets e definem os ícones de menu e as cores do widget. Ao trabalhar no modo de edição, é possível alternar entre os dois temas de página padrão e alterar os skins de widget. Para obter detalhes adicionais sobre temas e skins, consulte Develop and deploy new themes and skins for IBM Mashup Center no developerWorks em http://www.ibm.com/developerworks/lotus/library/mashups-themes/. Como os nomes sugerem, a principal diferença entre os dois temas padrão é que o defaultThemeColumnar adiciona colunas à página, e o defaultTheme não. Os dois temas padrão estão localizados no seguinte diretório: Mashups_install_root\mm\eclipse\plugins\com.ibm.mm.server.themes_1.0.0\ resources. Aqui está uma captura instantânea do diretório de recursos: |--------defaultTheme | |--------------metadata.xml | |--------------theme.html | |--------------theme.css | |--------------Glass | |--------------NoSkin | |--------------nva | |--------------RealNone | |--------------ThinSkin | |--------------Title | |--------------images |--------defaultThemeColumned | |--------------metadata.xml | |--------------theme.html | |--------------theme.css | |--------------Glass | |--------------NoSkin | |--------------nva | |--------------RealNone | |--------------ThinSkin | |--------------Title | |--------------images Note como cada tema contém o mesmo conjunto de arquivos e pastas. Vamos verificar detalhadamente o que cada tema contém. metadata.xml Este arquivo contém duas informações importantes sobre o tema -- (1) o título do tema como ele aparece na interface de usuário do Lotus Mashups e o (2) skin padrão usado no tema. Para o tema defaultTheme, o título é Mashups Free Form, e o skin padrão é Vidro. Para o tema defaultThemeColumned, o título é Mashups Column, e o skin padrão é Vidro. © Copyright IBM Corp. 2008, 1 theme.html Este arquivo contém o código HTML que define a estrutura e o layout da página de mashup. Ele identifica quais widgets de sistema adicionar na página e também sua posição na página. Os widgets de sistema são os widgets da estrutura do Lotus Mashups que constituem a página de mashup. Eles não são confundidos com os widgets prontos para uso na caixa de ferramentas que você arrasta para sua página de mashup. Os widgets de sistema incluem banner, navegação, caixa de ferramentas, layout e widgets de rodapé. A estrutura dos widgets de sistema é definida no theme.html usando tags DIV. Essas tags DIV chamam as classes de estilo a partir do theme.css e as aplicam aos widgets do sistema na página para criar uma aparência exclusiva. theme.css Este arquivo contém as classes de estilo com referência no theme.html. Cada classe de estilo define uma aparência para uma determinada área na página de mashup. Por exemplo, no theme.html, cada tag DIV contém um widget de sistema que também faz referência a uma classe de estilo a partir de theme.css para ser aplicada a esse widget. Subdiretórios de Skins Cada um dos dois temas padrão contém cinco skins. Consulte a tabela a seguir para saber como os nomes de skins no diretório de recursos mapeiam para os nomes de skins na interface com o usuário do Lotus Mashups: Pasta de skins no diretório de recursos Nome de skin na interface com o usuário do Lotus Mashups Glass Vidro Colorido NoSkin Vidro Fosco - Sem Barra de Título RealNone Sem Skin ThinSkin Vidro Fosco Title Laranja Agora, vamos abrir um dos subdiretórios de skins no diretório de recursos para saber quais arquivos são necessários. Similar aos diretórios defaultTheme e defaultThemeColumned, cada subdiretório de skins contém um arquivo XML de metadados, um arquivo HTML e um arquivo CSS: v metadata.xml - similar a metadata.xml para os temas, o metadata.xml nos subdiretórios de skins define o nome de skin exibido na interface com o usuário do Lotus Mashups. Por exemplo, abra o arquivo metadata.xml dentro do subdiretório Glass. Note que o nome de skin está definido como Vidro Fosco. Repita esse procedimento com os outros subdiretórios de skin e compare-os com a tabela acima. v skin.html - similar ao theme.html, skin.html também faz referência às classes de estilo e define o layout. Entretanto, diferentemente do them.html que define a página de mashup, o skin.html define a aparência de widgets na página de mashup, por exemplo, o estilo da borda. v skin.css - similar ao theme.css, o skin.css define um conjunto de classes de estilo, define a aparência do widget. 2 IBM Mashup Center: V1.1 Subdiretório images O subdiretório images contém as imagens com referência no theme.css. Por exemplo, se abrir o theme.css em qualquer diretório de temas padrão, você verá a seguinte linha próxima à parte superior do arquivo: background:url(images/ background.png) repeat-x;. Note como este código fornece um caminho relativo para background.png na pasta images. Aplicando Temas Padrão às Páginas de Mashup É possível aplicar esses temas padrão às páginas de mashup executando as seguintes etapas: 1. Abra a página no navegador do Lotus Mashups e alterne para o modo de edição. 2. No menu Ações da página, selecione Editar Propriedades. 3. Na caixa de diálogo, no campo Tema, selecione um dos dois temas padrão. Note que Mashups Free Forms corresponde ao tema defaultTheme e Mashups Column corresponde ao tema defaultThemeColumnar. O Formulário Livre do Mashups é o tema padrão para páginas, conforme especificado no arquivo ConfigService.properties, localizado no diretório Mashups_install_root\mm\ config. 4. Clique em Salvar para salvar suas alterações e aplicar o tema. Aplicando Skins aos Widgets Depois de aplicar o tema à sua página de mashup, você poderá aplicar os skins a widgets individuais na página, executando uma das seguintes etapas: 1. Abra a caixa de ferramentas e arraste um widget para a página de mashup. 2. Passe o cursor do mouse sobre o widget e clique no ícone de opções do menu. 3. Selecione Selecionar Skin para exibir a lista de skins disponíveis. Por padrão, o skin Vidro Colorido é selecionado para todos os widgets 4. Continue selecionando os skins até que você decida qual deseja aplicar a seu widget. Criando e Implementando um Tema Personalizado Se você preferir criar seu próprio tema e skin personalizados, poderá usar os temas padrão fornecidos com o Lotus Mashups como um modelo e, em seguida, usar uma ferramenta baseada em Eclipse como o WebSphere Application Server (WAS) Toolkit ou o Rational Application Development para compactar seu novo tema como um arquivo WAR e implementá-lo no servidor Lotus Mashups. Depois da implementação, seu novo tema será exibido como uma opção no campo Tema, na página propriedades. Consulte Aplicando Temas Padrão às Páginas de Mashup acima para obter informações adicionais. Para criar e implementar o novo arquivo WAR de tema, execute as seguintes etapas: Etapa 1: Organizando a estrutura do arquivo do arquivo WAR de tema Trabalhando com Temas e Skins (V1.1) 3 Nesta aula, você configurará a estrutura do diretório que contém todos os subdiretórios necessários e os arquivos necessários para o novo arquivo WAR de tema. Na etapa anterior, você criará arquivo ZIP e dará uma extensão de arquivo WAR ao novo arquivo ZIP. 1. Clique com o botão direito do mouse no seguinte diretório e, em seguida, copie e cole-o em um local diferente em seu sistema de arquivos local: Mashups_install_root\mm\eclipse\plugins\com.ibm.mm.server.themes_1.0.0. Desse ponto em diante, você trabalhará apenas com o conteúdo recém-colado. 2. Renomeie com.ibm.mm.server.themes_1.0.0 para mycustomthemes. 3. Exclua o diretório mycustomthemes\resources\defaultThemeColumned. 4. Diretamente sob mycustomthemes, crie uma nova pasta denominada WEB-INF. 5. Diretamente sob mycustomthemes\WEB-INF, crie os dois arquivos a seguir: v mashups.properties v web.xml 6. Abra o mashups.properties em um editor de texto e inclua a seguinte linha: themeRootDir=mycustomthemes. 7. Renomeie o subdiretório defaultTheme em mycustomthemes\resources para mynewtheme. 8. Exclua as seguintes pastas no diretório \resources\mynewtheme: v NoSkin v RealNone v ThinSkin v Title 9. Renomeie a pasta Glass em \resources\mynewtheme para mynewskin. Agora você configurou a estrutura de diretório para o novo tema e está pronto para iniciar a criação de seu novo tema e skin. Etapa 2: Nomeando seu tema e skin Nesta etapa, você atualizará os arquivos metadata.xml para o novo tema e skin. Para nomear seu novo tema e definir o novo skin como o padrão no arquivo metadata.xml de tema, execute as seguintes etapas: 1. Abra \resources\mynewtheme\metadata.xml e substitua Mashups Free Form por mynewtheme na seguinte seqüência: <nls-string language="en">Mashups Free Form</nls-string>. Este é o nome que aparecerá na interface com o usuário do Lotus Mashups. 2. Opcional: Para definir o novo nome do tema em outros idiomas, substitua os valores nas outras seqüências nls. Se você não quiser definir nomes em outros idiomas, simplesmente exclua essas seqüências. 3. Para tornar seu novo skin o padrão no arquivo metadata.xml de tema, substitua Glass por mynewskin na seguinte seqüência:<default-skin>Glass</ default-skin>. 4. Pressione Ctrl + S para salvar o arquivo. Para nomear seu novo skin e alterar seu ID no arquivo metadata.xml de skin, execute as seguintes etapas: 1. Abra \resources\mynewtheme\mynewskin\metadata.xml e substitua Tinted Glass pelo nome de seu novo tema na seguinte seqüência: <nls-string 4 IBM Mashup Center: V1.1 language=″en″>Tinted Glass</nls-string>. Este é o nome que aparecerá na interface com o usuário do Lotus Mashups. 2. Opcional: Para definir o novo nome do skin em outros idiomas, substitua os valores nas outras seqüências nls. Se você não quiser definir nomes em outros idiomas, simplesmente exclua essas seqüências. 3. Substitua Glass por mynewskin na seguinte seqüência: <id>Glass</id>. 4. Pressione Ctrl + S para salvar o arquivo Agora que você criou a estrutura de diretório para o novo tema e skin e atualizou os arquivos necessários para torná-los disponíveis para o Lotus Mashups, você está pronto para adicionar novas imagens e atualizar as folhas de estilo de tema e skin com sua nova aparência. Etapa 3: Personalizando seu novo tema Nesta etapa, fornecemos um exemplo de como é possível alterar a imagem do segundo plano da página de mashup. A imagem do segundo plano é uma imagem retangular que repete verticalmente de uma extremidade da página até a outra. Os widgets de sistema que constituem a parte principal da página de mashup são posicionados na parte superior das imagens do segundo plano de repetição. Para alterar a imagem do segundo plano da página de mashup, execute as seguintes etapas: 1. Inclua a nova imagem a \resources\customtheme1\images. 2. Abra \resources\customtheme1\theme.css e substitua background.png pelo nome da nova imagem na seguinte seqüência: background:url(images/ background.png) repeat-x;. 3. Para alterar a freqüência com que a imagem se repete na página, substitua o x nesta mesma seqüência por um valor diferente. Atualmente, a imagem é configurada para repetir quantas vezes forem necessárias para cobrir a página. 4. Pressione Ctrl + S para salvar o arquivo. Agora você está pronto para personalizar o skin que define a aparência dos widgets que serão incluídos nas páginas de mashups. Etapa 4: Personalizando seu novo skin Nesta etapa, mostramos como adicionar novas imagens ao seu skin e atualizar o arquivo CSS que as aplica a seus wrappers de widget. Para personalizar seu novo skin, execute as seguintes etapas: 1. Inclua quaisquer novas imagens que você quiser exibir no wrapper de widget na pasta \resources\mynewtheme\mynewskin. 2. Abra \resources\customtheme1\mynewskin\skin.css e atualize as referências de imagem conforme seja desejado. Note que as imagens para o tema estão localizadas em uma pasta de imagens, visto que as imagens para os skins estão localizadas na mesma pasta que o arquivo CSS. 3. Pressione Ctrl + S para salvar o arquivo. Agora você está pronto para compactar e distribuir seu tema e skin ao servidor Lotus Mashups para que possa aplicá-lo a suas páginas de mashup e widgets. Etapa 5: Compactando e implementando o tema Trabalhando com Temas e Skins (V1.1) 5 Nesta etapa, você compactará e distribuirá seu novo tema ao servidor Lotus Mashups. Execute as seguintes etapas: 1. Use um ambiente de desenvolvimento integrado baseado em Eclipse para exportar seu projeto como mycustomthemes.war, ou simplesmente compacte em arquivo zip todos os arquivos e nome do novo arquivo mycustomthemes.war. 2. Abra o console administrativo WAS para instalar o arquivo WAR de tema. Certifique-se de especificar uma raiz de contexto exclusiva, por exemplo /widgets/mynewtheme. 3. Se você quiser alterar o tema padrão para todas as páginas de mashup para seu novo tema personalizado, abra ConfigService.properties, localizado no diretório Mashups_install_root\mm\config e modifique a seguinte seção com o novo ID de tema: #Theme and Skin default setting #Lotus Mashups Default Theme com.ibm.mashups.theme.defaultThemeId=defaultTheme Agora você está pronto para usar o tema em suas páginas de mashup. Não é necessário reiniciar o servidor. Você pode confirmar se a implementação foi bem-sucedida, abrindo as propriedades de uma página de mashup e localizando o novo tema no campoTemas. Se você decidir adicionar um novo tema a um arquivo WAR que já foi implementado, simplesmente reimplemente o arquivo WAR. 6 IBM Mashup Center: V1.1 Adicionando Widgets e Páginas de Mashup às Páginas da Web Os desenvolvedores de Web site, bloggers, contribuidores de fóruns e qualquer pessoa que trabalhar com páginas da Web muito provavelmente já estão familiarizados com o conceito de partes de código incorporadas no código-fonte HTML. Atualmente, é possível localizar vários elementos para incorporar às páginas, inclusive vídeos do YouTube, animações de demos. O mesmo conceito funciona com widgets e páginas de mashup. Com apenas alguns cliques, o Lotus Mashups permite personalizar widgets e páginas e, em seguida, copiar e colar seu script em sua página da Web - tudo sem criar código adicional. Este artigo descreve como o recurso de incorporação do Lotus Mashups funciona, bem como as tarefas que você pode desempenhar quando usa esse recurso. Adicionando Widgets à sua Página da Web Ao adicionar widgets à uma página da Web, você trabalha com widgets na caixa de ferramentas do Lotus Mashups. É possível editar definições para os widgets na caixa de ferramentas e, em seguida, salvar essas definições durante o processo de incorporação. Isso significa que você pode incorporar a definição do widget inteira, inclusive qualquer formatação, URLs de alimentação e outras definições que você configurou para o widget. Note que você pode incorporar vários widgets em sua página, mas os widgets não serão conectados. Se você quiser incorporar dois ou mais widgets conectados, primeiro deverá adicioná-los a uma página de mashup, conectá-los e, em seguida, incorporá-los à definição da página de mashup inteira em sua página da Web. A próxima seção descreve como fazer isso. Nota: Por padrão, os widgets do Lotus Mashups que você incorpora em sua página da Web não são protegidos e podem ser acessados por qualquer usuário. Entretanto, é possível ativar a segurança, adicionando um proxy de autenticação na frente do servidor do Lotus Mashups para restringir o acesso a caminhos específicos no servidor. Para adicionar um widget à sua página da Web, execute as seguintes etapas: 1. No modo de edição, abra uma gaveta na caixa de ferramenta para exibir uma lista de widgets. 2. Passe o cursor do mouse sobre o widget que você deseja adicionar e clique no . ícone de opções de menu 3. Selecione Adicionar a uma página da Web. Esse procedimento abre a caixa de diálogo de incorporação. 4. Para editar as definições de widget, clique em Editar Definições. Note que essas definições variam, dependendo do widget. 5. Salve suas definições e retorne à caixa de diálogo de incorporação. 6. Ajuste a largura, a altura e o status da barra de rolagem conforme necessário. Por padrão, a largura é de 400 pixels, a altura é de 500 pixels, e as barras de rolagem são ativadas. 7. Para atualizar a marcação com suas novas alterações, clique em Atualizar Marcação. © Copyright IBM Corp. 2008, 7 8. Clique em Visualização para visualizar o widget. Se você quiser que a janela Visualização abra por padrão sempre que abrir a caixa de diálogo de incorporação, selecione Sempre abrir a visualização por padrão. Note que não é possível editar o widget na janela Visualização. 9. Se você precisar fazer alterações adicionais ao widget, repita as etapas 4-8. 10. Se você estiver satisfeito com o widget e não precisar fazer nenhuma alteração adicional, copie a marcação para a área de transferência. 11. Abra o código-fonte de sua página da Web e cole o código no local desejado. 12. Feche a caixa de diálogo de incorporação. A janela Visualização é fechada automaticamente. Adicionando Páginas de Mashup à sua Página da Web Ocasionalmente, talvez você queira incorporar uma página de mashup inteira ao seu Web site. Isso é especialmente útil quando você deseja incorporar um conjunto de widgets conectados que transmitem dados com base nos eventos disparados nos widgets. De uma perspectiva visual, ao incorporar páginas de mashup, você incorpora essencialmente tudo abaixo da caixa de ferramentas no navegador do Lotus Mashups. Nota: Por padrão, as páginas de mashup que você incorpora em sua página da Web são protegidas e só podem ser acessadas por usuários autenticados. Se os usuários não autenticados tentarem acessar páginas de mashup incorporadas, será solicitado que eles efetuem login no servidor do Lotus Mashups antes de receberem permissão para ver a página de mashup. Para adicionar um widget à sua página da Web, execute as seguintes etapas: 1. Abra a página de mashup que você deseja adicionar à página da Web. 2. Ao lado do nome da página, na parte superior do navegador Lotus Mashups, passe o cursor do mouse sobre a seta para baixo para abrir o menu de ações da página. 3. Selecione Exibir em uma página da Web. Esse procedimento abre a caixa de diálogo de incorporação. 4. Ajuste a largura e a altura conforme necessário. Os valores de largura e altura indicam o tamanho do quadro em torno da página de mashup, não da própria página de mashup. Se os valores excederem o tamanho da página de mashup, uma parte do quadro será exibida como espaço em branco em torno da página de mashup. Se os valores forem inferiores ao tamanho da página de mashup, uma parte da página de mashup será recortada da visão. Para permitir que sua página de mashup preencha a largura do quadro que a conterá na sua página da Web, selecione Largura automática. Por padrão, a largura é de 750 pixels, e a altura é de 850 pixels. Especifique também a inclusão ou não das barras de rolagem. 5. Para atualizar a marcação com suas novas alterações, clique em Atualizar Marcação. 6. Clique em Visualização para visualizar a página de mashup. Se você quiser que a janela Visualização abra por padrão sempre que abrir a caixa de diálogo de incorporação, selecione Sempre abrir a visualização por padrão. Note que não é possível editar a página de mashup na janela Visualização. 7. Se você estiver satisfeito com a página de mashup e não precisar fazer nenhuma alteração adicional, copie a marcação. 8. Abra o código-fonte de sua página da Web e cole o código no local desejado. 8 IBM Mashup Center: V1.1 9. Feche a caixa de diálogo de incorporação. A janela Visualização é fechada automaticamente. Adicionando Widgets e Páginas de Mashup às Páginas da Web 9 10 IBM Mashup Center: V1.1 Boas Práticas para Criação de Widgets Como um desenvolvedor de widget, você deve se familiarizar com as seguintes boas práticas para criar e configurar widgets. Se você quiser contribuir com sua própria boa prática, simplesmente efetue login no wiki e adicione-o nesta página! Entendendo as Várias Ferramentas para Criar Widgets Como um desenvolvedor de widget, você pode usar um conjunto de diferentes ferramentas para criar widgets para suas páginas de mashup. Primeiro, a ferramenta recomendada nr. 1 é o IBM Lotus Widget Factory. Se tiver usado o Portlet Factory para criar portlets para outros projetos, você já estará familiarizado com os conceitos básicos para a criação de widgets. O Widget Factory é baseado totalmente na mesma pilha que o Portlet Factory, mas o Widget Factory está mais adaptado à criação de widgets. Para obter informações adicionais sobre o Lotus Widget Factory, consulte a seção Widget Factory do wiki IBM WebSphere Portlet Factory em http://www-10.lotus.com/ldd/pfwiki.nsf/. Segundo, se estiver familiarizado com as plataformas de script dinâmico, como Groovy, Ruby on Rails e PHP, talvez você queira verificar o novo produto desenvolvido chamado WebSphere sMash. Para obter informações adicionais, consulte um artigo do Project Zero em http://www.projectzero.org/zero/ silverstone/M1/docs/zero.devguide.doc/zero.iwidgets/iWidgets.html. Por fim, você pode criar seus próprios widgets personalizados usando um ambiente de desenvolvimento baseado em Eclipse para a criação de arquivos WAR, como WAS Toolkit ou Rational Application Development. Consulte o artigo Creating and deploying a simple widget em http://www-10.lotus.com/ldd/ mashupswiki.nsf/dx/creating-and-deploying-a-simple-widget para conhecer as etapas de criação e implementação de um widget usando o WAS Toolkit. Trabalhando com Temas e Estilos Como um desenvolvedor, provavelmente você se interessará pelos temas e estilos fornecidos com o Lotus Mashups. ao criar páginas de mashup, cada página é anexada a um tema que impõe a aparência da página, bem como os widgets contidos nessa página. Esses estilos são definidos por um conjunto de classes de estilo incluído em um arquivo de folha de estilo localizado em cada diretório de tema. Para obter informações adicionais sobre onde é possível localizar os temas e as folhas de estilo do Lotus Mashups, consulte Working with themes and skins (V1.1) em http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/working-with-customthemes-and-skins-v1.1. Estruturando Arquivos WAR de widget Ao criar seus próprios arquivos WAR de widget usando um aplicativo baseado no Eclipse, você deverá ter certeza de que os arquivos e as pastas contidos no pacote WAR foram estruturados corretamente. Para obter informações sobre como usar o WAS Toolkit para criar e estrutura um arquivo WAR, inclusive como criar e estruturar os arquivos de widget necessários, consulte Creating and deploying a simple widget em http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/creatingand-deploying-a-simple-widget. Este tópico ensina como criar um arquivo WAR e © Copyright IBM Corp. 2008, 11 adicioná-lo a um projeto Eclipse, adicionar arquivos de imagem, criar o arquivo de definição de catálogo que define os widgets no pacote WAR, criar um arquivo de PROPRIEDADES que define a raiz de contexto e o nome do componente e mais. Ele explica exatamente onde colocar esses arquivos de modo que seu widget seja executado com êxito em uma página de mashup. Entendendo os Tipos de Carga Útil (Dados) Ao conectar dois widgets, eles precisam de um tipo de carga útil comum para se comunicar. Em resposta, o Lotus Mashups define uma lista de tipos comuns. A maioria desses tipos de carga útil é do tipo simples, por exemplo, texto, pessoa, telefone e endereço. Para dados mais complicados, como dados em formato XML, o Lotus Mashups suporta tipos de carga útil complexos, por exemplo, xml, atom e json. Os tipos de carga útil do Lotus Mashups são definidos e associados a eventos no arquivo de definição de widget que está localizado dentro de cada pacote WAR do widget. Para obter detalhes sobre esses tipos de carga útil do Lotus Mashups, inclusive os compatíveis entre si, consulte Working with payload types em http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/working-with-data-types. Este artigo também explica como é possível implementar uma API pública para criar e personalizar seu próprio tipo de carga útil. Definindo Modos de Widget Ao desenvolver widgets, talvez você queira implementar a capacidade de alternar entre os vários modos, por exemplo, modos de edição e visualização. Para obter sugestões sobre como fazer isso, consulte Defining custom widget modes em http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/defining-page-modes. Criando Várias Ocorrências de um Widget em uma Única Página de Mashup< É possível criar várias ocorrências de um único widget de mashup em uma única página. Para fazer isso, é necessário encapsular corretamente cada instância de widget. Para obter um conjunto de diretrizes para fazer isso, consulte a seção Common widget practice in the Widget Programming Guide em http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/ WidgetProgrammingGuide_20080828_v1.0.pdf/$file/ WidgetProgrammingGuide_20080828_v1.0.pdf. 12 IBM Mashup Center: V1.1 Trabalhando com Tipos de Carga Útil Ao conectar os widgets, você cria a linha de comunicação que permite que os dados sejam transmitidos de um widget para outro. Esses dados são definidos pelo nome do evento, carga útil (o conteúdo real) e o tipo de carga útil. O nome do evento fornece informações descritivas sobre o evento. Por exemplo, o nome do evento News breaks pode descrever um evento que é disparado quando os usuários clicam em um link que exibe um conjunto de novos artigos. Neste caso, os novos artigos são a carga útil do nome do evento News breaks. Portanto, como o tipo de carga útil se adapta a esse modelo de carga útil de evento? O tipo de carga útil define o formato de dados que é transmitido entre widgets quando um evento ocorrer. Os widgets de envio e recebimento devem interpretar e processar um tipo de carga útil comum a fim de que sejam conectados. Essencialmente, o tipo de carga útil funciona como um ″intérprete″ que determina se os dois widgets falam ou não o mesmo idioma. Semelhante a duas pessoas conversando uma com a outra, dois widgets devem compartilhar um método comum de comunicação se eles tiverem que se entender. Se os widgets não compartilharem um tipo de carga útil comum, eles não poderão ser conectados. Por exemplo, suponhamos que você esteja criando um mashup para seu departamento de recursos humanos. Um widget (Widget A) em seu mashup é projetado para manipular informações do funcionário. Para identificar exclusivamente os funcionários, você projetou o Widget A para receber o endereço de e-mail de um funcionário quando um evento ocorre na página. O nome do evento pode ser algo semelhante a processEmployeeInfo, e o tipo de carga útil é email. Dessa maneira, somente os widgets que expõem email como seu tipo de carga útil podem ser conectados ao Widget A. Para tratar o problema de dois widgets que necessitam de um tipo de carga útil comum, o Lotus Mashups definiu uma lista de tipos comuns. Os tipos de carga útil do Lotus Mashups são definidos e associados a eventos no arquivo de definição de widget que está localizado dentro de cada pacote WAR do widget. Cada arquivo de definição contém uma seqüência semelhante ao seguinte: iw:eventDescription id="RowClick " payloadType=“text“/ A maioria dos tipos de carga útil suportada pelo Lotus Mashups é de tipos simples, por exemplo text, person, phone e address. É possível combinar dois tipos de carga útil simples para fornecer um tipo de carga útil mais completo. Por exemplo, você pode combinar a carga útil currency com o tipo de carga útil countrycode para que o valor da moeda possa ser associado ao sistema monetário do país. Os tipos de dados combinados são criados neste formato: payloadtype1.payloadtype2. Para obter detalhes adicionais sobre a combinação de tipos de carga útil, consulte a seção Tipos de Carga Útil Especiais abaixo. Para dados mais complicados, como dados em formato XML, o Lotus Mashups suporta tipos de carga útil complexos, por exemplo, xml, atom e json. O Lotus Mashups também suporta tipos de carga útil que você pode usar para tipo de carga útil personalizados e desconhecidos. Consulte a seções a seguir para obter detalhes adicionais. © Copyright IBM Corp. 2008, 13 Este artigo foi desenvolvido para ajudar você a entender os tipos de cargas úteis que o Lotus Mashups suporta, incluindo os tipos de carga útil simples e complexo. Explicamos também quais tipos de carga útil são compatíveis entre si e como você pode implementar uma API pública para criar e customizar seu próprio tipo de carga útil quando não for possível usar os tipos fornecidos com o Lotus Mashups. Tipos de Carga Útil Simples Os tipos de carga útil simples definem dados comuns, não complexos que normalmente não são usados como um contêiner para manter outros dados. Consulte a tabela a seguir para obter uma lista de tipos de carga útil simples suportados no Lotus Mashups: 14 Tipo de carga útil Descrição text Uma seqüência que contém o conteúdo de texto simples, por exemplo Hello World. url Uma seqüência que aponta para um recurso da Web, por exemplo http://www.ibm.com. Consulte a discussão sobre os tipos de dados combinados na seção Tipos de Carga Útil Especiais abaixo para obter informações adicionais sobre como combinar o tipo de carga útil url. html Uma seqüência que é um fragmento da marcação de HTML, por exemplo, <h2>Isto é um título</h2> . image Um nó DOM ou ID de nó DOM que representa uma imagem no lado do cliente. Também é possível ser combinado como url.image para representar uma imagem na Web number Um número, por exemplo, um inteiro, flutuante, ou duplo. Para ver um exemplo de um tipo de carga útil de número, consulte a interface de conexão do widget Timer de Ação. countrycode Uma seqüência que representa um código de país A3 ISO 3166, por exemplo USA ou CHN. Consulte http://userpage.chemie.fuberlin.de/diverse/doc/ISO_3166.html para obter informações adicionais. languagecode Uma seqüência que representa um código de idioma ISO 639-2, por exemplo, en, es e fr. Consulte http://www.loc.gov/standards/ iso639-2/php/code_list.php para obter informações adicionais. currency Um número que indica um valor monetário, por exemplo, 100 ou 200. Em geral, o tipo de dados de moeda é combinado com um código do país para que o valor possa ser associado ao sistema monetário desse país, por exemplo, currency.USA ou currency.CHN. boolean Um valor true ou false. email Uma seqüência que representa um endereço de e-mail, como [email protected]. IBM Mashup Center: V1.1 Tipo de carga útil Descrição person Uma seqüência que representa uma pessoa, como John Smith ou Salvador Gonzales. postalcode Uma seqüência que representa um código postal, por exemplo, 27612. phone Uma seqüência que representa um número de telefone, como 1-888-555-5555. address Uma seqüência que representa um endereço, por exemplo, 100 Main Street, Boston, Massachusetts, 25443. date Uma seqüência que representa uma data em um dos seguintes formatos: v AAAA-MM-DD v AAAAMMDD v AAAAMM v AAAA em que AAAA é o ano, MM é o mês e DD é o dia. Para ver um exemplo de um tipo de carga útil de data, consulte a interface de conexão do widget Timer de Ação. time Uma seqüência que representa a hora em um dos seguintes formatos: v hh:mm:ss.mmmm v hh:mm:ss v hh:mm v hh em que hh é a hora, mm é o minuto, ss é o segundo mmmm é o milissegundo. Para ver um exemplo de um tipo de carga útil de hora, consulte a interface de conexão do widget Timer de Ação. timestamp Uma seqüência que combina os tipos de carga útil de data e hora em um dos seguintes formatos: v AAAA-MM-DD hh:mm:ss.mmmm v AAAAMMDD hhmmss v AAAAMMDDThhmmss Para ver um exemplo de um tipo de carga útil de registro de data e hora, consulte a interface de conexão do widget Timer de Ação. Tipos de Carga Útil Complexos Um tipo de carga útil complexo é normalmente uma composição de dois outros tipos de carga útil. Por exemplo, considere os dados em um endereço de correspondência: v Número e nome da rua v Cidade, estado, código de endereçamento postal v País Trabalhando com Tipos de Carga Útil 15 Cada uma das seis partes de dados do endereço de correspondência pode ser definida individualmente usando os tipos de carga útil simples fornecido com o Lotus Mashups. Entretanto, para combinar todos os dados em uma carga útil simples que possa ser interpretada e transmitida para e de widgets em seu mashup, é necessário definir um tipo de carga útil complexo, como mailingaddress que especifica todas as partes de dados que ele suporta. É possível até combinar o tipo de dados de mailingaddress com os tipos de carga útil simples para criar um segundo tipo de carga útil complexo, por exemplo: v Sobrenome, nome v Telefone residencial, telefone comercial v Endereço de correspondência Consulte a tabela a seguir para obter uma lista de tipos de carga útil complexos suportados no Lotus Mashups: Tipo de carga útil Descrição table Uma parte do texto em formato comma-separated value (CSV) que aparece nas linhas. Note os seguintes comportamentos: v Os itens na primeira linha constituem o cabeçalho da coluna. v Os tipos de dados de cada coluna são denotados com um sinal gráfico, por exemplo, firstName<text>, age<number>, home<address>. Se nenhum tipo de dado for especificado para uma coluna, o tipo de dados de texto será usado como padrão. v Se uma coluna usar uma vírgula como parte de seus dados, você deverá adicionar aspas duplas (″) ao valor dessa coluna, por exemplo ″109 Hickorywood Blvd., Cary, NC 27590″. v Se uma coluna usar aspas duplas como parte de seus dados, por exemplo, John ″o líder″ Doe, você deverá inserir um conjunto de aspas duplas antes da primeira ocorrência e dois conjuntos de aspas duplas depois da segunda ocorrência, por exemplo, John ″″o líder″″″ Doe. atom 16 IBM Mashup Center: V1.1 Uma parte de texto no formato Atom, por exemplo, um arquivo XML. Tipo de carga útil Descrição xml Uma parte de texto no formato XML, por exemplo: <data type="table"> Id<number>,title<text>, age<number>,height<number>, heightUnit<text> 101,engineer,49,2.1, meter 209,manager,34,4.3, feet 201,director,45, 5.9, feet </data> Note os seguintes comportamentos: v O XML deve estar de acordo com a especificação W3C XML, localizada em http://www.w3.org/TR/REC-xml/. v O elemento XML pode ter um tipo de carga útil que indica seu tipo de dados, por exemplo first_name type="text">john </first_name> or <home type="address">888 Mountview Parkway, SomeTown, CA 99019. v Se o elemento XML não tiver um atributo de tipo de carga útil, o tipo de dados será padronizado como texto. v Se o elemento XML tiver um atributo de tipo de dados, mas o valor o atributo não for reconhecido, o tipo será padronizado como texto. json Uma parte do texto no formato JavaScript Object Notation (JSON). Criando Tipos de Carga Útil Personalizados Como um desenvolvedor de widget, é possível implementar a seguinte interface de programação de aplicativo (API) e criar seus próprios tipos de carga útil personalizados: com.ibm.mashups.data.model Ao usar um tipo de carga útil personalizado, é necessário atualizar a seguinte seqüência no arquivo de definição de widget para que o tipo de carga útil seja definido como dados de modelo, por exemplo: iw:eventDescription id="RowClick " payloadType=“modeldata“/ A API com.ibm.mashups.data.model fornece os seguintes métodos: v getValue v getValueType v v v v v getValues getAttributes hasAttribute isItem fetch Trabalhando com Tipos de Carga Útil 17 v serialize Essa API também suporta a função de retorno de chamada do método fetch v v v v onBegin (tamanho, solicitação) onItem (item, solicitação) onComplete (itens, solicitação) onError (errorData, solicitação) Para obter informações adicionais sobre como implementar essa API, consulte o IBM Lotus Mashups API Reference em http://www-10.lotus.com/ldd/ mashupswiki.nsf/dx/lotus-mashups-api-javadoc-document. Nota: Nota: Quando criar novos tipos de carga útil, certifique-se de não usar nenhum nome de tipo de carga útil reservado para o Lotus Mashups. Se você especificar um nome de tipo de carga útil que já seja suportado pelo Lotus Mashups, seu mashup produzirá erros no tempo de execução. Tipos de Carga Útil Especiais Além dos tipos de carga útil simples e complexos descritos abaixo, o Lotus Mashups também oferece os seguintes tipos de carga útil especializados. Consulte a tabela para obter informações adicionais. Tipo de carga útil Descrição modeldata Um tipo de carga útil projetado para interpretar os tipos de dados personalizados que você cria usando a API pública com.ibm.mashups.data.model. any Um tipo de carga útil comum que pode suportar qualquer tipo de dados. Quaisquer tipos de dados serão úteis nos casos em que você não estiver certo de qual formato de dados o evento produzirá. Também será útil nos casos em que a carga útil do evento puder ser alterada, por exemplo, ao enviar dados do evento para o widget do Event Explorer a partir de outros widgets que podem suportar vários tipos de dados. combined Um tipo de carga útil que combina dois ou mais tipos de carga útil em um. Por exemplo, se a carga útil de seu evento for uma URL que sempre aponte para uma imagem, você poderá combinar a url e os tipos de dados de imagem nos seguintes tipos de dados combinados: url.image. Em um cenário diferente, também é possível combinar o tipo de carga útil url com um tipo de carga útil simples e tipos de carga útil countrycode ou languagecode para definir também os dados, por exemplo: v url.simplepayloadtype.countrycode v url.simplepayloadtype.languagecode 18 IBM Mashup Center: V1.1 Entendendo Tipos de Carga Útil Compatíveis Determinados tipos de carga útil podem se comunicar com outros tipos de carga útil. Por exemplo, ao enviar uma URL de um widget para outro widget, e a carga útil dessa URL for definida com o tipo de carga útil simples, qualquer widget de recebimento que aceitar o tipo de carga útil de texto poderá processar a URL. Saber quais tipos de carga útil são essencialmente importantes ao tentar criar conexão automática, descartando widgets em outros widgets. Se os tipos de carga útil forem iguais ou compatíveis, a conexão ocorrerá com êxito. Entretanto, se os tipos de carga útil não corresponderem ou não forem compatíveis, a conexão não será criada e seu mashup não funcionará corretamente, mesmo que você não recebesse nenhum tipo de erro que indicasse o problema. Consulte a tabela a seguir para saber quais tipos de dados simples são compatíveis: Recebendo Tipo de Carga Útil Enviando Tipo de Carga Útil O tipo de dados text pode receber os dados v url dos seguintes tipos: v html v número v countrycode v languagecode v currency v boolean v date, time, timestamp v email v postalcode v phone v address v person v alimentação v json Os tipos de dados date e time podem receber os seguintes tipos de dados: registro de data e hora Trabalhando com Tipos de Carga Útil 19 20 IBM Mashup Center: V1.1 Definindo os Modos de Widget Personalizado Por padrão, os widgets do Lotus Mashups fornece a capacidade de alternar entre os modos de edição e visualização. Quando o widget estiver no modo de visualização, você poderá clicar nos ícones de opções do menu e selecionar Editar Definições para abrir o widget no modo de edição. Os modos de widget são visíveis na página; entretanto, somente o modo de edição possui foco. Depois de editar as configurações e clicar em Salvar, o evento onModeChanged é disparado, e o modo de edição é fechado, deixando somente o modo de visualização disponível na página. Ao desenvolver seus próprios widgets, você provavelmente desejará implementar também a capacidade de alternar entre os modos de edição e de visualização. Este artigo fornece algumas sugestões sobre como executar isso. Vamos usar um cenário como um exemplo. Suponhamos que você esteja criando um widget que permita aos usuários visualizar os dados de cotação de ações da IBM para vários corretores. Vamos verificar o arquivo XML de definição de widget que controla o código de alternância do modo. Aqui está um exemplo de como é possível definir o conteúdo para os dois modos: <iw:content mode="view"> --> esta visualização exibe nome da empresa, preço da ação e nome do corretor <![CDATA[ <div><span id="company" class="companyLabel">loading...</span> Stock Quote: <span id="stock">loading...</span></div> <div>Broker: <span id="broker">loading...</span></div> <div><input type="button" name="send" value="Send Data" onclick="iContext.iScope().sendData()"/></div> <div><input type="button" name="configure" value="Edit Broker" onclick="iContext.iScope().editBroker()"/></div> ]]> </iw:content> <iw:content mode="edit"> --> esta visualização poderia ser usada para editar o corretor <![CDATA[ <div> <select class="brokerSelection" size="1"> <option value="Etrade">Etrade</option> <option selected value="Ameritrade">Ameritrade</option> </select> </div> <div><input type="button" name="done" value="Done" onclick="iContext.iScope().switchBroker();"/></div> ]]> </iw:content> O widget de ações permite aos usuários selecionar entre vários corretores e exibir os dados mais recentes para cada corretor. Esta é a aparência do widget em um modo de visualização: © Copyright IBM Corp. 2008, 21 Ao clicar em Editar Corretor, o widget dispara o seguinte evento onModeChanged: this.iContext.iEvents.fireEvent("onModeChanged",null, "{newMode:'edit'}"); Como resultado, o widget é alternado para o modo de edição. No modo de edição, é possível selecionar um corretor diferente em uma lista drop-down, conforme mostrado aqui: Quando o widget no modo de visualização dispara o evento onModeChanged, a estrutura do widget substitui o widget no modo de visualização pelo widget no modo de edição. A estrutura também chama o manipulador de eventos do evento onedit, que é usado para inicializar os dados para o novo modo. No exemplo a seguir, o evento onedit é definido em uma classe de encapsulação, obtém o corretor de alguns atributos especificados e, por fim, define o corretor como o padrão: Agora, ainda no modo de edição, suponhamos que você tenha selecionado Etrade como o corretor e clique em Concluído. Isso alterna o widget novamente para o modo de visualização, conforme mostrado aqui: 22 IBM Mashup Center: V1.1 Neste caso, o widget define um manipulador de eventos onview em uma classe de encapsulação. Isso reinicializa os dados para o widget no modo de visualização para que os dados alterados no modo de edição possam ser selecionados no modo de visualização. Você pode recuperar o modo atual de seu widget usando a seguinte API: var mode = iContext.getiDescriptor().getItemValue("mode"); Definindo os Modos de Widget Personalizado 23 24 IBM Mashup Center: V1.1 Avisos Estas informações foram desenvolvidas para produtos e serviços oferecidos nos Estados Unidos. A IBM pode não oferecer os produtos, serviços ou recursos tratados nesta documentação em outros países. Consulte seu representante IBM local para obter informações sobre os produtos e serviços atualmente disponíveis em sua área. Qualquer referência a um produto, programa ou serviço IBM não significa que apenas esse produto, programa ou serviço IBM possa ser utilizado. Qualquer produto, programa ou serviço funcionalmente equivalente, que não infrinja nenhum direito de propriedade intelectual da IBM poderá ser utilizado. Entretanto, a avaliação e verificação da operação de qualquer produto, programa ou serviço não-IBM são de responsabilidade do Cliente. A IBM pode ter patentes ou solicitações de patentes pendentes relativas a assuntos tratados nesta publicação. O fornecimento desta publicação não concede ao Cliente nenhum direito sobre tais patentes. As consultas sobre licença devem ser enviados, por escrito, para: Gerência de Relações Comerciais e Industriais da IBM Av. Pasteur, 138-146 Botafogo Rio de Janeiro - RJ CEP 22290-240 Para consultas sobre licença relacionadas a informações de DBCS (Conjunto de Caracteres de Byte Duplo), entre em contato com o Departamento de Propriedade Intelectual da IBM em seu país ou envie pedidos de licença, por escrito, para: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan O parágrafo a seguir não se aplica ao Reino Unido ou qualquer outro país em que tais disposições não estejam de acordo com a legislação local: A INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO ″NO ESTADO EM QUE SE ENCONTRA″, SEM GARANTIA DE NENHUM TIPO, SEJA EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS A ELAS NÃO SE LIMITANDO, AS GARANTIAS IMPLÍCITAS DE NÃO-INFRAÇÃO, COMERCIALIZAÇÃO OU ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Alguns países não permitem a exclusão de garantias expressas ou implícitas em certas transações; portanto, esta disposição pode não se aplicar ao Cliente. Estas informações podem conter imprecisões técnicas ou erros tipográficos. Periodicamente, são feitas alterações nas informações aqui contidas; tais alterações serão incorporadas em futuras edições da publicação. A IBM pode, a qualquer momento, aperfeiçoar e/ou alterar os produtos e/ou programa(s) descrito(s) nesta publicação, sem aviso prévio. Referências nestas informações a Web sites que não sejam da IBM são fornecidas apenas por conveniência e não representam de forma alguma um endosso a estes Web sites. Os materiais contidos nesses Web sites não fazem parte dos materiais deste produto IBM e a utilização desses Web sites é de inteira responsabilidade do Cliente. A IBM pode utilizar ou distribuir as informações fornecidas da forma que julgar apropriada sem incorrer em qualquer obrigação para com o Cliente. © Copyright IBM Corp. 2008, 25 Licenciados deste programa que desejam obter informações sobre este assunto com objetivo de permitir: (i) a troca de informações entre programas criados independentemente e outros programas (incluindo este) e (ii) a utilização mútua das informações trocadas, devem entrar em contato com: Gerência de Relações Comerciais e Industriais da IBM Brasil Av. Pasteur, 138-146 Rio de Janeiro - RJ Botafogo Cep 22290-240 Tais informações podem estar disponíveis, sujeitas a termos e condições apropriadas, incluindo em alguns casos o pagamento de uma taxa. O programa licenciado descrito neste documento e todo o material licenciado disponível são fornecidos pela IBM sob os termos do Contrato com o Cliente IBM, do Contrato de Licença do Programa Internacional IBM ou de qualquer outro contrato equivalente. Os dados de desempenho contidos neste documento foram determinados em um ambiente controlado. Assim, os resultados obtidos em outros ambientes operacionais podem variar significantemente. Algumas medidas podem ter sido tomadas em sistemas em nível de desenvolvimento e não há garantia de que estas medidas serão as mesmas em sistemas disponíveis em geral. Além disso, algumas medidas foram estimadas por extrapolação. Os resultados reais podem variar. Os usuários desta publicação devem verificar os dados aplicáveis para seu ambiente específico. As informações relativas a produtos não-IBM foram obtidas junto aos fornecedores dos respectivos produtos, de seus anúncios publicados ou de outras fontes disponíveis publicamente. A IBM não testou estes produtos e não pode confirmar a precisão do desempenho, da compatibilidade ou de qualquer outra reivindicação relacionada a produtos não-IBM. Dúvidas sobre os recursos de produtos não-IBM devem ser encaminhadas diretamente a seus fornecedores. Todas as instruções referentes a direção ou intenção futura da IBM estão sujeitas a alteração ou retirada sem aviso, e declaram metas e objetivos apenas. Todos os preços da IBM mostrados são preços de varejo sugeridos pela IBM, e estão atualizados e sujeitos a alteração sem aviso. Os preços dos revendedores podem variar. Essas informações são apenas para fins de planejamento e estão sujeitas a alteração antes que os produtos descritos sejam disponibilizados. Essas informações contêm exemplos de dados e relatórios usados em operações comerciais diárias. Para ilustrá-las da forma mais completa possível, os exemplos incluem os nomes de indivíduos, empresas, marcas e produtos. Todos esses nomes são fictícios, e qualquer semelhança com nomes e endereços usados por uma empresa real são inteira coincidência. LICENÇA DE COPYRIGHT: Essas informações contêm programas aplicativos de amostra no idioma de origem, que ilustram técnicas de programação em diversas plataformas operacionais. O Cliente pode copiar, modificar e distribuir esses programas de amostra em qualquer forma sem pagamento para a IBM, para desenvolvimento, uso, marketing ou distribuição, de acordo com a interface de programação de aplicativo para a plataforma operacional para a qual os programas de amostra são gravados. Esses 26 IBM Mashup Center: V1.1 exemplos não foram totalmente testados em todas as condições. Portanto, a IBM não pode garantir a confiabilidade, capacidade de manutenção ou funcionamento desses programas. Cada cópia ou parte desses programas de amostra ou qualquer trabalho derivado deve incluir um aviso de copyright com os dizeres: © (nome da sua empresa) (ano). Partes deste código são derivadas dos Programas de Amostra da IBM Corp. © Copyright IBM Corp. _digite o ano ou anos_. Todos os direitos reservados. Se estiver visualizando essas informações em cópia impressa, as fotografias e ilustrações coloridas podem não aparecer. Marcas Registradas Os seguintes termos são marcas registradas da International Business Machines Corporation nos Estados Unidos e/ou em outros países: AIX AIX 5L Adobe, Acrobat, Portable Document Format (PDF), PostScript e todas as marcas registradas baseadas na Adobe são marcas ou marcas registradas da Adobe Systems Incorporated nos Estados Unidos e/ou em outros países. Intel, o logotipo Intel, Intel Inside, o logotipo Intel Inside, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium e Pentium são marcas ou marcas registradas da Intel Corporation ou de suas subsidiárias nos Estados Unido e em outros países. Microsoft, Windows, Windows NT e o logotipo Windows são marcas registradas da Microsoft 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. Linux é uma marca registrada de Linus Torvalds nos Estados Unidos e/ou em outros países. UNIX é uma marca registrada da The Open Group nos Estados Unidos e/ou em outros países. Outros nomes de empresas, produtos e serviços podem ser marcas registradas ou marcas de serviço de terceiros. Avisos 27 28 IBM Mashup Center: V1.1 Impresso em Brazil