Uma Introdução ao Suporte de Dispositivos Móveis do HATS

Fornecendo aplicativos de tela verde para dispositivos móveis utilizando o Rational Host Access Transformation Services

Este artigo resume o suporte fornecido pelo IBM® Rational® Host Access Transformation Services (HATS), que permite o acesso a aplicativos host 3270 e 5250 baseados em caracteres a partir de dispositivos móveis, como telefones celulares, terminais de coleta de dados e personal digital assistants (PDAs). O autor supõe que os leitores tenham um conhecimento de trabalho dos recursos do HATS e das tarefas de desenvolvimento de aplicativos.

Rick Hardison, Consultant, Systems Documentation, Inc. (SDI)

Rick HardisonRick Hardison passou a fazer parte da IBM em Raleigh, Carolina do Norte, em 1970, como Junior Programmer. Em 1992, passou para marketing técnico, fornecendo suporte a clientes e servidores de comunicações da IBM, Host On-Demand e Host Access Transformation Services. Rick se aposentou da IBM em 2005 e, desde então, fornece serviços de consultoria, incluindo composição técnica, por meio da Systems Documentation, Inc. (SDI).



01/Out/2012

Visão geral

Com o IBM® Rational® Host Access Transformation Services (HATS), o acesso a aplicativos de host pode ser modernizado e entregue a usuários sem qualquer impacto aos aplicativos de host comprovados existentes. O HATS faz isso transformando e fornecendo de forma dinâmica aplicativos 3270 em execução nas plataformas do IBM® System z® e aplicativos 5250 em execução nas plataformas do IBM® i® para usuários da web, do portal ou rich client e expondo seus processos de negócios e dados como serviços da web.

Utilizando o HATS, é possível criar aplicativos da web e rich client que fornecem interface gráfica com o usuário (GUI) fácil de usar para melhorar a usabilidade e aumentar o reuso de aplicativos de host 3270 e 5250.

É possível desenvolver aplicativos da web HATS, incluindo portlets, com uma interface que corresponde aos padrões de GUI da web ou do portal de uma empresa e os usuários podem acessá-los por meio de seus navegadores da web. Os aplicativos da web HATS também podem ser desenvolvidos para fornecer acesso a aplicativos de host a partir de dispositivos móveis, como telefones celulares, terminais de coleta de dados e PDAs.

Suporte a dispositivos móveis

Os usuários podem acessar aplicativos da web utilizando um navegador móvel. No entanto, os dispositivos móveis possuem características diferentes dos dispositivos de clientes da estação de trabalho mais tradicionais. Essas características conferem requisitos diferentes ao aplicativo da web.

  • O dispositivo de um cliente mais tradicional possui um tamanho de tela relativamente maior, por exemplo, 1024 x 768 pixels. No entanto, o tamanho da tela de um dispositivo móvel típico é relativamente pequeno, por exemplo, 320 x 240 pixels.
  • Além disso, o dispositivo de um cliente tradicional normalmente suporta o uso de um mouse ou teclado para interação com o usuário, enquanto que um dispositivo móvel pode ter apenas as teclas fornecidas em um telefone celular.
  • Finalmente, um dispositivo tradicional geralmente tem mais energia de processamento, memória e conexão mais rápida à internet do que um dispositivo móvel.

Com o Rational HATS, é possível desenvolver um aplicativo da web que fornece acesso a aplicativos de host 3270 e 5250 a partir de dispositivos móveis. O processo é o mesmo que o de desenvolvimento de qualquer aplicativo da web HATS, com algumas considerações para as diferentes características do dispositivo móvel e seu navegador da web.

O HATS inclui várias funções novas para auxiliar no desenvolvimento de um aplicativo da web a fim de atender a esses requisitos. Este artigo as descreve, além de outras funções do HATS, para fornecer acesso a aplicativos de host 3270 e 5250 a partir de dispositivos móveis:

  • Com a primeira abordagem, o HATS é utilizado para desenvolver um aplicativo da web que transforma telas de host de forma dinâmica para modernizar páginas da web gráficas que atendem aos requisitos de dispositivos móveis.
  • Com a segunda abordagem, os Objetos de Integração do HATS são utilizados para acessar os aplicativos de host e criar páginas da web customizadas a fim de fornecer acesso a partir de dispositivos móveis.

Utilizando as transformações da tela para suportar dispositivos móveis

As funções de transformação da tela do HATS oferecem a capacidade de desenvolver aplicativos da web HATS para suportar dispositivos móveis. A Versão 7.1 suportava o navegador Microsoft Internet Explorer Mobile; e a v7.5.1 ampliou o suporte para incluir o iPhone OS Safari a fim de que um aplicativo HATS possa ser acessado utilizando um Apple iPhone ou um Apple iPod touch.

Assim como em qualquer aplicativo HATS, o desenvolvimento começa criando um projeto HATS.

Criar um projeto

Na primeira página do assistente Create a Project, selecione a caixa de seleção Optimize options for mobile devices

Figura 1. Criando um projeto para dispositivos móveis

Ao selecionar essa opção, o projeto é inicializado com opções que funcionam melhor com dispositivos móveis. Algumas opções, como impressão, teclado, atualização assíncrona, entre outras, não são suportadas para dispositivos móveis. Portanto, elas são desativadas.

Ao otimizar um projeto para dispositivos móveis, a opção para a seleção do tema de um projeto não é fornecida. Nesse caso, a opção de dispositivo móvel pode ser o tema.

Além disso, apenas modelos otimizados para uso com dispositivos móveis (veja a Figura 2) estão disponíveis para uso no projeto.

Figura 2. Modelos padrão


Configurações de projeto padrão

Renderização padrão

Após criar um projeto que é otimizado para dispositivos móveis, algumas diferenças poderão ser observadas de um projeto para um aplicativo da web típico. Por exemplo, nas configurações do projeto, um segundo conjunto de renderização, denominado compact, é criado e definido como padrão (Figura 3) e a opção Use compact rendering é selecionada.

Figura 3. Renderização padrão

Visualização maior da Figura 3.

Em geral, o conjunto de renderização padrão tenta preservar a estrutura original de tela do host, enquanto amplia a funcionalidade incluindo controles de GUI (como links, botões e tabelas) de forma automática para melhorar a produtividade do usuário. No entanto, a fim de que a renderização padrão das telas de host possam ser exibidas em dispositivos móveis, a opção Use compact rendering é fornecida para permitir uma determinada quantia de compactação. Isso significa que a quantia de espaço em branco e de HTML é reduzida, o que pode exibir uma estrutura diferente da tela de host original.

No conjunto de renderização compact , observe que o widget (de seleção) Drop-down, em vez do widget Link, é utilizado na renderização padrão para as listas de seleção. Isso serve para economizar espaço no que é considerado um dispositivo móvel de tela pequena. Por exemplo, a lista de seleção na tela de host da Figura 4 é transformada, por padrão, em uma lista suspensa.

Figura 4. Lista de seleção na tela de host

Observe o widget suspenso para a lista de seleção na Figura 5.

Figura 5. Renderização padrão da lista de seleção como um widget suspenso

Quando o widget suspenso for selecionado, os itens na lista de seleção são exibidos em uma lista suspensa, como mostra a Figura 6.

Figura 6. Renderização padrão de seleções do menu suspenso

Além disso, no conjunto de renderização compact , observe que o reconhecimento e a transformação de diálogos estão ativos. Na tela de host na Figura 7, a área contida na caixa simulada é reconhecida como um diálogo.

Figura 7. Diálogo da tela do host

Por padrão, apenas a área de diálogo da tela é transformada para exibição no dispositivo.

Figura 8. Transformação de diálogo padrão

Teclado numérico do aplicativo

Opções adicionais foram adicionadas às configurações do Teclado Numérico do Aplicativo e do Host. Por padrão, o teclado numérico do aplicativo é exibido como um conjunto de ícones em projetos de dispositivos móveis (veja o menu suspenso na Figura 9).

Figura 9. Configuração do teclado numérico do aplicativo

A Figura 10 mostra o teclado numérico padrão do aplicativo exibido como um conjunto de ícones no canto superior direito.

Figura 10. Teclado numérico padrão do aplicativo exibido como ícones

Teclado numérico do host

Por padrão, o teclado numérico do host é exibido como uma lista suspensa. É possível selecionar as teclas que deseja exibir. No mínimo, inclua a tecla Enter para a transformação padrão de todas as transformações customizadas, pois o suporte do teclado é desativado em projetos de dispositivos móveis.

Figura 11. Configurações do teclado numérico do host

Visualização maior da Figura 11.

A Figura 12 mostra o teclado numérico padrão do host exibido como uma lista suspensa com um botão Submit.

Figura 12. Teclado numérico padrão do host exibido como um menu suspenso com um botão Submit

Ao selecionar o widget da lista suspensa do teclado numérico do host, as teclas do host definidas para a transformação padrão são exibidas em uma lista suspensa, como abaixo.

Figura 13. Menu suspenso do teclado numérico do host

Configurações de widget

Em seguida, observe as configurações do projeto para o widget Field (Figura 14). Uma nova configuração Layout permite duas opções: Table ou Separated:

  • Selecione Table para renderizar a saída em uma tabela, com o objetivo de manter o layout da tela original do host. Esse é o padrão para aplicativos da web não otimizados para dispositivos móveis.
  • Selecione Separated para renderizar a saída utilizando tags periódicas sequenciais a fim de diferenciar entre os campos, com o objetivo de reduzir a quantidade de espaço em branco e de HTML. Esse é o padrão para aplicativos da web otimizados para dispositivos móveis.
Figura 14. Widget Field

Além disso, é possível utilizar a configuração Enable cursor positioning option on input fields para permitir que o usuário alterne do modo de entrada de dados para o modo de posição do cursor para os campos de entrada. Quando estiver no modo de entrada de dados, o usuário pode inserir dados no campo de entrada, como mostrado abaixo no campo User.

Figura 15. Modo de entrada de dados

Para alternar para o modo de posição do cursor, o usuário ativa o link, designado pelo asterisco (*), que segue o campo de entrada.

Figura 16. Alternando para o modo de posição do cursor

Quando estiver no modo de posição do cursor, o usuário pode tabular para, ou posicionar o cursor em, qualquer caractere no campo de entrada. A Figura 17 mostra o cursor posicionado na letra B no ID do usuário MYIDBAD.

Figura 17. Modo de posição do cursor

Para alternar de volta para o modo de entrada de dados, o usuário ativa o link, designado pelo asterisco (*), que segue o campo de entrada.

Figura 18. Alternar para o modo de entrada de dados

A Figura 19 mostra o campo de entrada após alternar de volta para o modo de entrada de dados.

Figura 19. Modo de entrada de dados

Agora, se o usuário enviar uma tecla Field exit, por exemplo, os dados da localização do cursor no final do campo são excluídos e o cursor é movido para o próximo campo, como pode ser visto nas Figuras 20 e 21.

Figura 20. Enviar Field exit a partir do teclado numérico do host

Figura 21. Field exit para o próximo campo de entrada

Essa configuração é útil para dispositivos móveis que não possuem outros recursos de posição do cursor. Está disponível para os widgets de entrada Field, Popup, Subfile (caixa de seleção), Subfile (suspenso), Subfile (pop-up), Table e Text.

Para auxiliar na exibição de dados da tabela em um dispositivo móvel, o Rational HATS fornece a função Columns placement para os widgets Table, Subfile (caixa de seleção), Subfile (suspenso) e Subfile (pop-up). Essa função permite a disposição e a exclusão de colunas do monitor e também permite colunas de detalhes expansíveis, a fim de que a tabela possa caber em um espaço horizontal menor.

As colunas de detalhe, quando expandidas, são exibidas logo abaixo da linha que contém as colunas primárias de dados Quando uma linha específica é expandida pelo usuário, as colunas de detalhe são exibidas em um formato que flui para baixo da tela, em vez de para a direita. Isso possibilita que o usuário visualize um número arbitrário de colunas em pequenas exibições sem recorrer à rolagem horizontal.

Figura 22. Localização das colunas

Por exemplo, na Figura 23, observe uma tabela com quatro colunas na tela do host:

  • PART_NUMBER
  • PART_NAME
  • SALES_PRICE
  • PRODUCT_CATEGORY
Figura 23. Dados da coluna do host

Como mostra a Figura 24, quando o projeto é otimizado para dispositivos móveis, o widget Table exibe apenas as duas primeiras colunas como colunas primárias.

Figura 24. Colunas primárias

Quando o usuário expande a linha para exibir as colunas de detalhe (Figura 25), elas são exibidas verticalmente, abaixo das colunas primárias.

Figura 25. Colunas de detalhe

Também é possível selecionar a opção Keep detail columns on the server. Isso permite uma redução, em alguns casos, da quantidade de dados transferidos, pois dados de detalhe não desejados nunca são enviados por HTTP ao dispositivo final. Apenas os detalhes que são especificamente solicitados pelo usuário são recuperados sob demanda e enviados ao navegador.

Customizações e transformações de tela

As funções de customização e transformação de tela do HATS ajudam a criar um aplicativo verdadeiramente utilizável e otimizado para dispositivos móveis. É possível criar uma interface com o navegador da web fácil de usar que disponibiliza somente funções necessárias e oculta o resto. É possível transformar telas do host como a da Figura 26 em páginas da web bem mais fáceis de ler e navegar, como a mostrada na Figura 27.

Figura 26. Tela complexa do host

Figura 27. Transformação da web da tela do host

É possível limitar quais informações são exibidas, coletar resultados de diversas telas e exibi-los em uma única página da web rolável. Com o HATS, é possível ocultar a interface complexa do usuário, solicitar apenas campos necessários e fornecer listas suspensas de valores válidos. Além disso, é possível exibir resultados utilizando diferentes widgets HTML, facilitando, assim, a leitura e o entendimento dos resultados.

A capacidade do Rational HATS de combinar telas, pular telas desnecessárias, inserir informações e executar macros para o usuário final aperfeiçoa as transações reduzindo o número de pressionamentos de tecla e de etapas do fluxo de trabalho para concluir a transação. Essas transações aperfeiçoadas com interfaces gráficas com o usuário possibilitam ampliar o uso das funções do aplicativo de host para usuários com dispositivos móveis.

Preferências

Quando uma transformação de tela em branco é criada pela primeira vez em um projeto da web, o HATS pode ou não incluir uma tabela de layout livre na transformação. Por padrão, se o projeto for otimizado para dispositivos móveis, o HATS não inclui uma tabela de layout livre. Essa opção é selecionável nas preferências do HATS Toolkit.

É possível acessar as preferências a partir da barra de menus do Rational selecionando Window > Preferences. Uma das preferências permite especificar a inclusão ou não de uma tabela de layout livre em cada transformação em branco criada em um projeto da web. Por padrão, se o projeto for otimizado para dispositivos móveis, o HATS substitui essa opção utilizando a opção Except when the project is optimized for mobile devices .

Figura 28. Visualização Preferences


Utilizando Objetos de Integração para suportar dispositivos móveis

É possível utilizar o macro eficiente do HATS e os recursos do Objeto de Integração para desenvolver transações predefinidas ao usuário. Utilizando o Modelo 1, o Struts, as páginas da web do JavaServer Faces (JSF) ou os serviços da web como a interface, essas transações predefinidas podem solicitar a entrada do usuário, como o número de uma conta ou o número de uma peça. Em seguida, em nome do usuário, o HATS leva o aplicativo de host a concluir a transação. Esse recurso possibilita que as informações sejam externalizadas para acesso por dispositivos móveis, mas controla o que o usuário pode ver e fazer. Também é possível utilizá-lo para desenvolver aplicativos HATS para dispositivos móveis que suportam navegadores da web, exceto aqueles suportados pelos recursos de transformação de tela do HATS.

Se uma transação for executada por diversos aplicativos de host, o HATS pode combinar interação com todos eles por meio de uma interface da web única. Por exemplo, é possível ter um aplicativo de host que processa novas informações de pedido e outro que processa as informações do histórico e da conta do cliente. Com o HATS, é possível fornecer comunicação com os dois aplicativos por meio de uma interface da web única. Os usuários nunca sabem que estão utilizando dois aplicativos diferentes.

Para implementar uma transação de host orientada pela web do HATS, basta seguir estas etapas:

  1. Crie um macro do HATS para fornecer navegação programada por meio de telas do host que compõem sua transação do host.
  2. Em seguida, a partir desse macro, gere um Objeto de Integração (IO) do HATS, um Java bean que contém e fornece uma interface de programação para executá-lo.
  3. Gere páginas da web por meio das quais os usuários podem chamar o IO a partir de seus dispositivos móveis.

Criando macros do HATS

É possível facilmente criar macros utilizando o HATS Toolkit. Um macro é registrado utilizando o assistente Host Terminal à medida que navega pelas telas do host utilizando uma conexão de host em tempo real. Ao utilizar o macro, é possível programar o HATS para solicitar que o usuário realize entradas em um campo de entrada da tela do host, navegue pelas outras telas e extraia dados das telas para retorná-los ao navegador móvel do usuário.

Figura 29. Registrando um macro do HATS utilizando o Host Terminal

Após o registro, é possível editar seus macros utilizando o mesmo assistente Host Terminal ou tanto o Editor de Macro quanto o Editor de Macro Avançado fornecido com o HATS Toolkit.

O HATS também inclui um Editor de Macro Visual (VME). O VME é uma ferramenta para o desenvolvimento visual de macros do HATS, possibilitando, assim, o desenvolvimento de macros e a descoberta de problemas de lógica nos macros de forma mais fácil no tempo de desenvolvimento (veja o diagrama na Figura 30). Ele combina muitos dos recursos do Terminal Host, Editor de Macro e Editor de Macro Avançado do HATS em uma ferramenta e permite o desenvolvimento offline de macros. Oferece captura de telas opcionais e automáticas à medida que um macro está sendo registrado no Terminal Host. Também permite que os fluxos sejam copiados entre macros e fornece suporte de arrastar e soltar para a inclusão de novas telas.

Figura 30. Utilizando o Editor de Macro Visual para o desenvolvimento do macro

Visualização maior da Figura 30.

Criando Objetos de Integração

A produção de um IO para um macro cria uma interface de programação Java para executar o macro que aceitará a entrada esperada por ele, conduzi-lo e retornar a saída fornecida por ele. Quando um macro tiver sido criado, é fácil produzir um IO; basta clicar com o botão direito do mouse no macro na visualização HATS Projects e selecionar Create Integration Object. Nas preferências do HATS, é possível indicar que os IOs serão criados automaticamente toda vez que um macro for salvo.

Figura 31. Criando um Objeto de Integração a partir de um macro

Criando páginas da web

A próxima etapa no desenvolvimento do seu aplicativo de IO para dispositivos móveis é criar páginas da web que seguem o usuário do dispositivo móvel para enviar entradas e receber saídas do aplicativo de host conduzindo o IO e, finalmente, o macro. Para isso, basta clicar com o botão direito do mouse no Objeto de Integração (veja a Figura 32) e selecionar qualquer uma destas opções: Create Model 1 Web Pages, Create Struts Web, Pagesou Create JSF Web Pages.

Figura 32. Criando uma página da web para conduzir um Objeto de Integração

No assistente Create Web Pages, é possível especificar quais propriedades de entrada exibir na página da web e os controles de entrada a serem utilizados. Também é possível especificar quais propriedades de saída devem ser exibidas, incluindo os controles de saída.

Figura 33. Definindo as propriedades de entrada exibidas na página da web

Como os aplicativos de host 3270 e 5250 são orientados à conexão, é preciso utilizar a definição do conjunto de conexões juntamente com os macros Conectar e Desconectar para otimizar o desempenho e o tempo de resposta quando estiver executando seu IO. Quando a definição do conjunto de conexões em seu aplicativo e a utilização dos macros Conectar e Desconectar pelo HATS forem especificadas, o HATS mantém um conjunto de conexões de host de fácil conexão e pronto para ser executado em seu IO mediante solicitação. O uso dessa técnica elimina a conexão e o desligamento constante do sistema de host quando estiver executando seu IO.

Após implementar seu aplicativo, os usuários podem simplesmente utilizar seus navegadores de dispositivos móveis para acessar a URL para a sua página da web e inserir qualquer entrada permitida.

Figura 34. Página da web que conduz o Objeto de Integração do HATS

Quando o usuário envia uma entrada na página da web (Figura 34), isso aloca uma conexão a partir do conjunto de conexões e conduz o IO que, por sua vez, conduz o macro e o aplicativo de host.

Figura 35. Macro do host conduzido utilizando a entrada enviada pelo usuário

Utilizando a entrada enviada pelo usuário, o macro navega no aplicativo de host e extrai a saída solicitada.

Figura 36. Dados extraídos para retornar ao usuário

Em seguida, o IO passa a saída extraída para o navegador da web móvel do usuário e a conexão é retornada para o conjunto de conexão a fim de esperar por outra solicitação de entrada.

Figura 37. Dados do host retornados ao navegador da web do dispositivo móvel


Migrando e testando projetos de dispositivos móveis

Migrando

Quando começar a modernizar seus aplicativos de host 3270 e 5250, é provável que você tenha aplicativos HATS diferentes para os usuários do navegador da web tradicional do que para os usuários do navegador móvel. No entanto, se um aplicativo da web HATS for desenvolvido para usuários tradicionais e o mesmo aplicativo (ou semelhante) deseja ser utilizado para usuários móveis, é preciso desenvolver manualmente um projeto HATS separado para o uso móvel.

Uma abordagem para a criação de uma aplicativo da web HATS para uso móvel, que é semelhante a um aplicativo da web HATS existente, é seguir estas etapas:

  1. Crie um novo projeto HATS e selecione esta opção: Optimize options for mobile devices.
  2. Copie todas as capturas de tela, customizações de tela e macros do projeto existente para o novo projeto de dispositivos móveis.
  3. Crie novas transformações de tela no projeto de dispositivo móvel para suportar os requisitos dos seus dispositivos móveis.
  4. Modifique as customizações de tela para aplicar as novas transformações de tela apropriadas.
  5. Se os Objetos de Integração (IOs) forem utilizados, gere os IOs novamente a partir dos macros copiados e recrie as páginas da web que conduzem os IOs para suportar os requisitos dos seus dispositivos móveis.

Teste

É possível testar seus aplicativos de dispositivo móvel HATS da mesma forma que os aplicativos da web HATS tradicionais são testados, utilizando os servidores de teste internos fornecidos com o Rational SDP. É possível utilizar tanto o navegador da web interno fornecido quanto os navegadores da web externos. Também é melhor utilizar emuladores do dispositivo móvel para criar um ambiente de teste do dispositivo móvel mais realístico. Certifique-se de também testar com dispositivos móveis reais.


Resumo

Com o Rational HATS, agora é possível desenvolver aplicativos da web HATS de forma mais fácil, que fornece acesso de transformação de tela aos seus aplicativos de host 3270 e 5250 a partir de dispositivos móveis, como telefones celulares, terminais de coleta de dados e personal digital assistants (PDAs). Além disso, é possível utilizar o suporte robusto ao macro e ao Objeto de Integração do HATS para fornecer acesso a transações de host predefinidas a partir de dispositivos móveis. Ao utilizar essas funções, é possível melhorar a produtividade de sua mão de obra cada vez mais móvel, ampliar sua base de clientes e melhorar seu nível de serviço.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

  • Siga os tweets do developerWorks no Twitter.
  • Faça parte do grupo HATS HotSpot do developerWorks para discussões, documentos e postagens no blog.
  • Participe da Comunidade do developerWorks. Comunique-se com outros usuários do developerWorks e explore os blogs, fóruns e grupos voltados para desenvolvedores, como o Rational Café é, além dos wikis específicos de produtos Rational.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Rational, Desenvolvimento móvel
ArticleID=837988
ArticleTitle=Uma Introdução ao Suporte de Dispositivos Móveis do HATS
publish-date=10012012