Solucione seus Desafios de Integração de Aplicativo Remoto de Diversos Dispositivos para Diversas Plataformas

Usando um MEAP para seu ambiente de desenvolvimento remoto

Praticamente inseparáveis atualmente, a computação em nuvem e os aplicativos remotos se complementam, mas a primeira etapa de integrar aplicativos remotos em sua nuvem pode gerar desafios. Neste artigo, o autor explica a mobile enterprise application platform (MEAP) e por que escolhê-la pode ser o melhor modelo de desenvolvimento remoto para o seu ambiente. Ele também apresenta um exemplo de MEAP orientado a nuvem de aplicação real, em cuja criação esteve envolvido: o Convertigo Mobilizer.

Olivier Picciotto, CEO, Convertigo

Olivier Picciotto é cofundador da Convertigo. Ele participa do gerenciamento global da empresa, atua como divulgador técnico dos produtos da empresa e possui mais de 15 anos de experiência no gerenciamento de empresas de TI de alta tecnologia. Antes da Convertigo, Picciotto iniciou e gerenciou os produtos de sistema de mensagens do usuário final da Marben Produits, criando um eficiente produto de sistema de mensagens X.400. Ele é formado em engenharia pela E.S.M.E, com especialização em TI.



17/Set/2012

A quantidade de projetos de mobilidade empresarial está em constante crescimento, e aqueles que geram valor criam a demanda para ainda mais projetos. Essa demanda é um importante gargalo. Em vez de realizar a conexão entre uma origem de dados e um tipo de dispositivo móvel, a infraestrutura de TI tem que lidar com diversas plataformas de dispositivos, questões de segurança complexas e aplicativos e origens de dados corporativos distintos, muitos dos quais sem APIs.

O cenário de integração de aplicativo remoto de diversos dispositivos para diversas plataformas gera alguns desafios de integração remota.

Desafios de integração remota

Os desafios de integração que uma empresa enfrenta para incorporar aplicativos remotos no ambiente de nuvem incluem:

  • Ativação remota dos aplicativos existentes.
  • Linguagens de desenvolvimento remoto complexas.
  • A tendência de Bring Your Own Device (BYOD).
  • Como estruturar e posicionar a lógica de negócios.
  • Como não confundir a arquitetura orientada à web remota com uma SOA.

Abordaremos esses tópicos em mais detalhes. Mais adiante, explicarei como minha equipe lidou com a questão no desenvolvimento do nosso produto.

Os aplicativos existentes não estão habilitados para dispositivos móveis

A habilitação para dispositivos móveis implica acessar os dados e a lógica de negócios desses aplicativos, mas, infelizmente, poucos deles fornecem APIs ou serviços nos quais é possível confiar para desenvolver as novas interfaces com o usuário remoto. Para reduzir a carga de trabalho de alterar aplicativos existentes, uma solução é fornecer suporte a capacidades remotas nos aplicativos existentes inalterados, por meio de um conector.

É possível que os desenvolvedores não tenham experiência no uso de linguagens de desenvolvimento remoto complexas

O desenvolvimento de aplicativos remotos costumava exigir alguns recursos complexos de Objective C e Java ™ que não são amplamente conhecidos por desenvolvedores da web com conhecimentos básicos. Porém, estruturalmente, os aplicativos remotos usam interfaces com o usuário que exigem habilidades, que os desenvolvedores da web possuem, de HTML5 e JavaScript. Uma solução para esse desafio é fornecer uma ponte sobre a qual os desenvolvedores da web possam escrever o código de aplicativo remoto usando as tecnologias que conhecem.

É necessário que a empresa forneça suporte para mais de uma plataforma específica, bem como à tendência de Bring Your Own Device

O desafio entre as plataformas requer o desenvolvimento remoto que deve ser realizado de uma só vez e executar em diversas plataformas (iOS, Android, Blackberry, Windows Phone etc.) e em diversos dispositivos (smartphones, tablets etc.) com diferentes parâmetros de tamanho de tela e memória. Como mencionado no parágrafo anterior, um ambiente de ponte comum usado com mais facilidade pode ser o segredo para solucionar esse desafio.

Qual é a melhor posição para a lógica de negócios de aplicativo?

A lógica de negócios de aplicativo não deve ser codificada no dispositivo móvel: codificar a lógica de negócios nos dispositivos leva à manipulação de código duplicado e não gerenciável dos mesmos processos de negócios em diversos aplicativos remotos. Possuir essa lógica de negócios concentrada no lado do servidor leva a uma arquitetura mais eficiente e gerenciada, reutilizável em diversos aplicativos remotos. Criar uma camada de lógica de negócios em um servidor que possa combinar, orquestrar e calcular os dados de várias origens corporativas é uma ideia inteligente.

Não confunda SOA com WOA

A maioria das empresas tem consciência (às vezes, até mesmo conhecimento aprofundado) de conceitos e estruturas de arquitetura orientada a serviço. Pode haver um sistema de informação baseado em serviços da web SOAP, orquestrado por barramentos de serviços corporativos. Mas o mundo remoto não é baseado em SOA. A maioria dos ambientes de dispositivos móveis conta com uma arquitetura orientada à web WOA, baseada em serviços REST ou JSON e autenticada por protocolos OAuth. Esses protocolos são mais otimizados para redes 3G de baixa largura de banda. Deve haver uma maneira de aproveitar os atributos SOA de uma organização em um mundo WOA: uma solução seria uma camada de interface entre o SOA estruturado e rígido e o WOA ágil e flexível. Uma camada que poderia, por exemplo, mudar os serviços da web SOAP existentes para um serviço REST/JSON em alguns cliques.

Agora, trataremos brevemente da maneira como a plataforma de aplicativos corporativos remotos, ou MEAP, pode acomodar o cenário de integração de aplicativo remoto descrito.


Dentro de uma MEAP

Uma plataforma de aplicativo corporativo remoto é um conjunto abrangente de produtos e serviços que permitem o desenvolvimento e a implementação de aplicativos remotos, ao manipular alguns dos detalhes do processo. As MEAPs ajudam os desenvolvedores a solucionar as dificuldades de desenvolver software remoto, adicionando uma camada de gerenciamento para manipular a variedade de dispositivos, redes e grupos de usuários, durante a fase de implementação e em todo o ciclo de vida do aplicativo.

Alguns dos atributos mais comuns de uma MEAP incluem:

  • As capacidades de escrever uma vez e implementar em qualquer lugar fornecidas entre plataformas.
  • As interfaces que evitam que seja necessário ajustar a lógica de negócios subjacente.
  • É adequada para:
    • Diversos aplicativos que as empresas desejam implementar em uma única infraestrutura.
    • Aplicativos que são dimensionados para o tamanho atual da base de usuários remotos da empresa.
    • Aplicativos disponíveis em modo online e offline.
  • Modelos de desenvolvimento fácil, que permitem aos programadores trabalhar com linguagens mais complexas, sem serem especialistas nessas linguagens.

Estrutura MEAP comum

Em geral, uma MEAP é composta por três componentes:

  • Servidor de middleware remoto: manipula toda a integração do sistema, segurança, comunicações, escalabilidade, suporte entre plataformas etc. Os dados não são armazenados no servidor, mas sim gerenciados entre o sistema de backend e o dispositivo.
  • Aplicativo cliente remoto: conecta-se ao servidor de middleware e conduz a interface do usuário e a lógica de negócios no dispositivo. Eles possuem versões "thick" (aplicativos nativos instalados no dispositivo) ou "thin" (renderizados no navegador do dispositivo com, por exemplo, HTML5).
  • Conjunto de ferramentas de desenvolvimento/configuração remotas: cria e ajusta os componentes remotos.

Quando devo considerar uma MEAP?

A Gartner, empresa analista de TI, sugere que uma organização considere uma MEAP quando desejar que suas capacidades remotas forneçam suporte a três ou mais aplicativos remotos ou sistemas operacionais remotos, ou se integrem com pelo menos três origens de dados de backend. (Gartner RAS Core Research, Nota G00211688, 20 de abril de 2011, é necessário efetuar o registro)


Exemplo de aplicação real: Convertigo Mobilizer

Minha equipe e eu criamos o Convertigo Mobilizer, uma MEAP que fornece a uma organização um único ponto adaptável de integração remota, que permite desenvolver aplicativos remotos de classe corporativa e reutilizar os valiosos ativos de TI existentes. O Mobilizer oferece uma plataforma de tecnologia central que pode extrair e processar dados instantaneamente de qualquer aplicativo ou origem de dados corporativa. Além disso, também pode realizar a integração dinâmica e transacional de qualquer website ou aplicativo existente. O Convertigo integra-se com o mainframe e os aplicativos legados executando em sistemas como o IBM ® iSeries ou o zSeries. A Figura 1 mostra onde o Convertigo Mobilizer está localizado no ambiente geral.

Figura 1. O lugar da MEAP Mobilizer no ambiente
O lugar da MEAP Mobilizer no ambiente

Lembra-se dos desafios de integração remota mencionados anteriormente? O Mobilizer soluciona estes desafios:

  • Ativação remota de aplicativos existentes. Esse desafio é solucionado ao fornecer um conjunto de conectores eficientes capazes de conectar e interagir sem interrupção com qualquer aplicativo baseado na web ou em mainframe sem exigir qualquer alteração nos aplicativos de destino.
  • Linguagens de desenvolvimento remoto complexas. Esse desafio é solucionado ao usar as estruturas baseadas na web populares, como JQuery Mobile e Sencha Touch (associadas à tecnologia Apache Cordova/PhoneGap). Esses componentes possibilitam que os desenvolvedores da web escrevam aplicativos remotos executando nativamente em diversas plataformas com suas linguagens favoritas.
  • A tendência de Bring Your Own Device (BYOD). Esse desafio é solucionado ao integrar as estruturas recém-mencionadas (JQuery Mobile, Sencha Touch e PhoneGap).
  • Como estruturar e posicionar a lógica de negócios. Esse desafio é solucionado ao fornecer uma camada de lógica de negócios eficiente, capaz de combinar, orquestrar e calcular os dados de várias origens corporativas. O Convertigo Sequencer é capaz de manipular lógica de negócios complexa e executar fluxos de lógica de negócios programados, sem exigir que o operador tenha um profundo conhecimento técnico. Além disso, o Sequencer executa os fluxos de metadados descritos, o que evita a geração ou compilação de código. Isso significa que ele incentiva um processo de desenvolvimento extremamente ágil, economizando tempo e custos de desenvolvimento.
  • Como não confundir a arquitetura orientada à web remota com uma SOA. Esse desafio é solucionado ao fornecer suporte ao mecanismo sugerido anteriormente — ela fornece o middleware necessário para fazer interface entre uma SOA estruturada e rígida e uma WOA mais ágil e flexível.

Agora, iremos analisar o uso do Convertigo Mobilizer no IBM SmartCloud Enterprise.


Convertigo Mobilizer no IBM SmartCloud Enterprise

A MEAP Convertigo Mobilizer está disponível no IBM SmartCloud Enterprise, permitindo que as empresas aproveitem os eficientes recursos da SmartCloud da IBM para a mobilidade corporativa.

Introdução

  1. Faça login no IBM SmartCloud, inicie uma instância, selecione seu datacenter e procure a imagem do Convertigo Enterprise Mashup Server. A Figura 2 é um exemplo de uma imagem do Convertigo no datacenter da Raleigh.
    Figura 2. Adicionar instância
    Adicionar instância

    A imagem do Convertigo está disponível como BYOL (bring your own license), o que significa que é necessário obter uma licença válida do Convertigo para produção. Sem a licença, o Convertigo Enterprise Mashup Server (EMS) fornece um serviço completo por 30 dias.

  2. Selecione a imagem do Convertigo EMS e clique em Next.
  3. Preencha os campos necessários para iniciar a instância. Recomendamos executar o Convertigo nos modelos "Copper" ou "Silver". Executá-lo em configurações de servidor de classe superior não irá aprimorar o desempenho, pois essa imagem do Convertigo foi projetada para usar de duas a quatro CPUs de núcleo virtual.
  4. Inicie a instância e espere o fornecimento do IBM SmartCloud. Quando estiver pronto, o seguinte painel será exibido:
    Figura 3. Página do console SmartCloud
    Página do console SmartCloud
  5. Procure o endereço IP atribuído pelo IBM SmartCloud (destacado em vermelho na Figura 3). Inicie o navegador Google Chrome e acesse a instância do Convertigo EMS em execução em: http://<IPaddr>. O Convertigo EMS deverá ser exibido na página de boas-vindas do IBM SmartCloud.

Tornando a área de trabalho do seu servidor Convertigo persistente

Por padrão, quando uma imagem do Convertigo é iniciada em um IBM SmartCloud, nenhum armazenamento persistente é anexado à imagem em execução. O servidor Convertigo precisa de um armazenamento persistente, em que os seguintes dados essenciais sejam mantidos:

  • Projetos Convertigo implementados
  • Logs de execução
  • Informações sobre licença

Esses dados são armazenados em um sistema de arquivos denominado área de trabalho. Para configurar uma área de trabalho persistente, use o console IBM SmartCloud para adicionar um sistema de arquivos persistente e montá-lo em /mnt/extra. Esse sistema de arquivos irá armazenar suas informações de licença, por isso, é necessário inserir uma chave de licença válida do Convertigo no console de administração do Convertigo apenas depois de configurar o armazenamento persistente (Figura 4).

Figura 4. Tela de inicialização do servidor Convertigo
Tela de inicialização do servidor Convertigo

Como desenvolver seu primeiro projeto remoto

  1. O Convertigo Studio ajuda a desenvolver seus aplicativos remotos. Faça o download clicando no botão Download Convertigo Studio na página de inicialização do servidor Convertigo (Figura 4). O Convertigo Studio é uma ferramenta de desenvolvimento baseada em Eclipse que fornece o ambiente de programação de servidor do Convertigo. Quando seu projeto tiver sido desenvolvido, será possível implementá-lo no Convertigo EMS executando no IBM SmartCloud.
  2. Aguarde a conclusão do download do Convertigo Studio (cerca de 250MB) e inicie o convertigo-studio-6.x.x-vXXXX-win32-install.exe. Durante o processo de instalação, será necessário a informar suas configurações de proxy. Certifique-se de defini-las corretamente, ou não será possível implementar seus projetos no Convertigo EMS executando no IBM SmartCloud.

    Por enquanto, o Convertigo Studio somente executa em Windows. Versões para Mac podem ser disponibilizadas sob solicitação especial.

  3. Inicie o Convertigo Studio. Na primeira execução, o Convertigo Studio solicita um certificado de registro. Esse certificado não é necessário para o IBM SmartCloud, por isso, clique no botão Ignore (Figura 5).
    Figura 5. Janela de registro
    Janela de registro
  4. Confirme yes na caixa de mensagem a seguir.

Seu Convertigo Studio agora está ativo e em execução.

Como desenvolver seu primeiro projeto

Em primeiro lugar, é preciso compreender o modelo de programação do Convertigo. Esse modelo é baseado em uma programação no lado do servidor e em uma programação no lado do cliente (remoto). Os lados do servidor e do cliente interagem por meio de protocolos JSON/REST/XML por http ou https. O Convertigo Studio permite a programação de ambos os lados em um ambiente integrado exclusivo, o Convertigo Studio baseado em Eclipse.

Figura 6. Interações de servidor e dispositivo móvel
Interações de servidor e dispositivo móvel

O modelo de programação do lado do servidor
A programação do lado do servidor é baseada em montar e configurar os objetos do Convertigo chamados conectores, transações e sequências:

  • Os conectores manipulam as conexões para aplicativos de backend. Há diversos tipos de conectores:
    • O conector SQL conecta-se a qualquer banco de dados compatível com JDBC.
    • O conector HTTP consome qualquer serviço da web SOAP/REST/JSON existente.
    • Os conectores de Tela Legada conectam-se a quaisquer aplicativos baseados em tela iSeries, zSeries ou UNIX® .
    • Os conectores HTML conectam-se a qualquer aplicativo baseado na web existente.
  • As transações manipulam uma interação de base com um sistema remoto. Todas as transações são baseadas em um dos conectores Convertigo existentes. Por exemplo:
    • As transações SQL executam uma solicitação SQL específica no conector SQL para leitura ou gravação em um banco de dados.
    • As transações HTTP chamam qualquer serviço da web baseado em HTTP com base em SOAP/REST ou JSON.
    • As transações HTML podem se conectar a qualquer aplicativo baseado na web existente, interagir com ele, preencher os formulários e clicar em qualquer elemento da UI da web para terminar com uma página de resultados que seja lida e estruturada como uma resposta XML.
    • As transações de Tela Legada podem se conectar a qualquer aplicativo baseado em tela TN5250, TN3270, Telnet para interagir com eles em leitura, gravação e retorno de dados como respostas XML estruturadas.
  • As sequências são responsáveis por orquestrar as transações em diferentes conectores. As sequências implementam o fluxo da lógica de negócios, podem tomar decisões, manipular loops e executar diversos encadeamentos em paralelo.

Embora os conectores de serviço SQL e da web disponíveis no Convertigo sejam bastante comuns em outras MEAPs, os conectores de Tela Legada e HTML são exclusivos à MEAP do Convertigo. Esses conectores fornecem uma tecnologia de ativação remota eficiente, permitindo uma conexão não intrusiva a qualquer aplicativo de negócios existente.

Com esse conjunto de conectores, o Convertigo Mobilizer pode se conectar a qualquer camada dos aplicativos de destino, tornando possível herdar toda a lógica de negócios existente para um aplicativo remoto, como exibido na Figura 7.

Figura 7. Conectando-se a qualquer camada do aplicativo de destino
Conectando-se a qualquer camada do aplicativo de destino

A Figura 8 exibe as interações entre diferentes componentes do Convertigo.

Figura 8. Componentes globais do Convertigo
Componentes globais do Convertigo

Para obter mais informações sobre a programação do lado do servidor, consulte os tutoriais de introdução (em Recursos).

O modelo de programação do lado do cliente
Com a MEAP do Convertigo, a programação do lado do cliente é realizada usando estruturas HTML5 e JavaScript. O Convertigo integra o suporte para as estruturas JQuery Mobile e Sencha Touch para a interface do usuário e usa PhoneGap/Apache Cordova para suporte a aplicativo nativo entre plataformas.

Aproveitando essas estruturas, é necessário escrever o aplicativo cliente apenas uma vez, mas é possível executá-lo em quatro plataformas remotas diferentes (iOS, Android, Blackberry 6 e Windows Phone 7.5). Também é possível executá-lo como um aplicativo da web remoto, evitando, dessa maneira, os procedimentos de implementação de aplicativos de negócios. Consulte o manual de introdução (Recursos) para obter ajuda com o desenvolvimento do seu primeiro projeto de UI do lado do cliente.

Desenvolva seu projeto com a amostra do US Directory remoto
Também é possível usar uma amostra de trabalho como a amostra do US Directory com o Studio. Esse projeto demonstra como o website do usdirectory pode ser ativado para dispositivos móveis.

  1. Para carregar a amostra no Convertigo Studio, acesse File > New > Project.
  2. Navegue para Convertigo projects > Sample > Mobile Samples e selecione Sencha-based US Directory Sample (Figura 9).
    Figura 9. Amostra do US Directory
    Amostra do US Directory
  3. Conclua o assistente. Esse projeto usa a estrutura Sencha, por isso, o assistente solicita que você faça o download da estrutura para sua estação de trabalho.
    Figura 10. Assistente de download da Sencha
    Assistente de download da Sencha

    Certifique-se de fazer o download da estrutura Sencha Touch 1.x. O link fornecido no assistente pode enviá-lo para a página de download da Sencha 2.0, por isso, certifique-se de procurar o link de download para Sencha 1.X.

  4. Quando o download da estrutura Sencha tiver sido concluído, copie o arquivo ZIP para o diretório destacado do assistente e clique em Finish. A amostra do US Directory será carregada no Convertigo Studio.
    Figura 11. A amostra é carregada
    A amostra é carregada

Implemente o projeto no Convertigo EMS executando no SmartCloud
Agora, esse projeto está aberto no seu Studio local. Para implementá-lo no servidor Convertigo da sua conta do IBM SmartCloud:

  1. Clique com o botão direito do mouse no nome do projeto no explorador de projetos do Studio e selecione Deploy.
  2. A janela de implementação será aberta. Digite no primeiro campo do servidor Convertigo no endereço do SmartCloud: <IBM SCE assigned IP address >/convertigo.
  3. Digite admin no campo Server administrator e admin no campo Password. Não use prefixos http ou https. Por exemplo:
    Figura 12. Janela de implementação
    Janela de implementação
  4. Clique em Deploy.
  5. Aguarde até que o projeto tenha sido implementado.
    Figura 13. Implementação
    Implementação
  6. Quando o projeto tiver sido implementado, uma janela de confirmação será exibida:
    Figura 14. Implementado
    Implementado
  7. Para executar o projeto, clique no link fornecido. Certifique-se de usar um navegador Google Chrome.
    Figura 15. Plataforma de teste do projeto
    Plataforma de teste do projeto

Agora, seu projeto está implementado com segurança no Convertigo em execução no IBM SmartCloud.

Para executar o aplicativo como um aplicativo da web remoto:

  1. Abra o dispositivo de sua escolha, por exemplo, Android:
    Figura 16. Executar como aplicativo da web
    Executar como aplicativo da web
  2. É possível clicar em Execute ou ler o código WebApplication QR com o dispositivo Android. Clicar no botão Execute irá executar o aplicativo remoto na plataforma de teste do Convertigo.
    Figura 17. Projeto em execução
    Projeto em execução

    (Veja uma versão maior da Figura 17.)

Também é possível obter a URL completa para esse WebApplication, copiando a URL destacada na página.

Como desenvolver aplicativos nativos entre plataformas
Agora que possui um aplicativo da web remoto em funcionamento, é possível desenvolver os pacotes nativos para cada uma das plataformas compatíveis. Esse processo gera arquivos .IPA para as plataformas iOS (iPhones e iPad) e os pacotes .APK para as plataformas Android (telefones e tablets).

Para desenvolver os pacotes nativos:

  1. Clique em Build mobile applications.
    Figura 18. Desenvolver aplicativos nativos
    Desenvolver aplicativos nativos

    (Veja uma versão maior da Figura 18.)

  2. Clique em Build the mobile devices. O Convertigo começa a desenvolver o aplicativo para cada plataforma e exibe um sinal de espera. Quando os aplicativos estiverem desenvolvidos, o sinal de espera será substituído por um código QR.
    Figura 19. Desenvolvimento de aplicativos nativos
    Desenvolvimento de aplicativos nativos

    (Veja uma versão maior da Figura 19.)

  3. É possível ler ou clicar no código QR para fazer o download do arquivo de aplicativo nativo para sua estação de trabalho. Em seguida, será possível enviar esses aplicativos para as lojas públicas da Apple ou do Android ou publicar os aplicativos em sua loja corporativa privada.

Conclusão

Uma MEAP pode ser uma ferramenta eficiente para levar ativação remota para seu ambiente de nuvem, de maneira rápida e sem uma curva íngreme de aprendizado. Após compreender o que é a MEAP, o que ela faz e quando deve ser considerada, será possível solucionar com mais facilidade os desafios de integração de aplicativo remoto de diversos dispositivos para diversas plataformas.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

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=Cloud computing
ArticleID=834637
ArticleTitle=Solucione seus Desafios de Integração de Aplicativo Remoto de Diversos Dispositivos para Diversas Plataformas
publish-date=09172012