Avançar para a área de conteúdo

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

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

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

  • Fechar [x]

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.

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

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

  • Fechar [x]

Alimentando aplicativos do iPhone com os serviços do WebSphere Process Server V6.2

Chris Felix, Software Engineer, EMC
Photo: Chris Felix
Chris Felix é desenvolvedor de software e Agile ScrumMaster na organização do IBM Software Services para WebSphere no Laboratório da IBM de Toronto, no Canadá. Ele possui experiência no desenvolvimento de aplicativos da Web 2.0 que alavancam serviços da Web fornecidos através do WebSphere Process Server. Ele estava comprometido com um projeto que necessitava de um front-end móvel, permitindo que ele adquirisse experiência no desenvolvimento para iPhone.

Resumo:  Este tutorial mostra como estender serviços novos e existentes no WebSphere® Integration Developer V6.2 para usar o novo JSON por exportação de ligação HTTP, para que se possa expor serviços da Web 2.0 e clientes móveis que consomem JSON. Você criará um aplicativo simples para o iPhone® da Apple® que usará tal serviço. Os desenvolvedores de integração aprenderão como expor serviços a um desenvolvedor para iPhone, enquanto desenvolvedores para iPhone aprenderão como criar clientes de Objective-C para usar esses serviços.

Data:  29/Mar/2010
Nível:  Intermediário

Atividade:  21978 visualizações

Tarefas do desenvolvedor de integração

Já que os aplicativos para iPhone normalmente transferem dados pela redes de celulares, a carga útil da mensagem deve ser a menor possível. Por essa razão, desencorajamos o uso de mensagens XML e encorajamos o uso de JSON por HTTP. O uso do novo JSON por ligação HTTP no WebSphere Integration Developer, expondo tal serviço é simples. Nesta seção, modificaremos o iPhoneServicesModule fornecido para fornecer um JSON por ligação HTTP para OrganizationInterface.

Crie o JSON por ligação HTTP

  1. Crie uma nova área de trabalho no WebSphere Integration Developer. Importe o arquivo de troca de projetos iPhoneServicesModule em iPhoneServicesModule.zip que você baixou na seção Pré-requisitos do desenvolvedor de integração. Também, ao importar no WebSphere Integration Developer, selecione Other -> Project Interchange. Veja a Figura 1.
  2. Quando estiver importado, abra o diagrama de montagem. O diagrama de montagem contém o componente Java™ OrganizationInterfaceImpl que implementa o OrganizationInterface (Figura 2). A Interface de Organização contém um método, employeeSearch, que faz uma busca em SearchCriteriaBO que resulta em um PageOfEmployeeBO contendo todos os funcionários que correspondem ao critério de procura. A busca real de funcionários é trivial neste tutorial. O código simplesmente resulta em dois registros com o nome do funcionário definido pelo atributo fullName em SearchCriteriaBO. Leve um pouco de tempo para se familiarizar com o módulo.

    Figura 1. iPhoneServicesModule incompleto
    Incomplete iPhoneServicesModule



    Figura 2. Diagrama de montagem incompleto
    Incomplete assembly diagram

  3. Abra o diagrama de montagem.
  4. Clique com o botão direito no componente Java OrganizationInterfaceImpl e selecione Generate Export -> HTTP Binding.
  5. No diálogo que aparecerá:
    1. Altere o caminho do contexto para /OrganizationInterfaceImplMobile.
    2. Pressione o botão Select ao lado do formato de data Padrão.
    3. No diálogo “Data Transformation Configuration”, selecione o UTF8JsonDataHandler dentro da categoria JSON e clique em Finish.
    4. Pressione o botão Select ao lado do seletor de Função.
    5. No diálogo “Function Selector Configuration”, selecione o método HTTP function selector based on URL and HTTP e clique em Finish.
    6. Clique em OK no diálogo “Configure HTTP Export Service”.
  6. Clique na exportação recém gerada e modifique o nome para OrganizationInterfaceMobile.
  7. Salve suas alterações no diagrama de montagem (Figura 3).
  8. Saiba mais sobre os vários seletores de função em Seletores de função HTTP pré-empacotados.

    Figura 3. Diagrama de montagem completo
    Complete Assembly diagram

  9. Clique na exportação OrganizationInterfaceMobile e leve um pouco de tempo para observar suas propriedades na visualização Properties (Figura 4).

    Figura 4. Visualização Properties
    Properties view


Mapeie entradas e saídas de serviços para JSON

Nessa seção, certificaremos que todos os métodos na interface de serviços transportam objetos de negócios (BOs) de entrada e saída como objetos JSON.

  1. Na visualização Properties do OrganizationInterfaceMobile, clique em Advanced configuration.
  2. Você verá um tipo de método GET já definido na guia HTTP Method Settings. Remova o método GET e adicione um método POST em seu lugar. Objetos JSON completos serão enviados como entradas no corpo do POST, ao invés de enviar parâmetros de solicitações em um método GET (Figura 5).

    Figura 5. Configurações do método HTTP
    HTTP Method settings

  3. Vá até a seção “Method Bindings” e clique no único método na interface – employeeSearch.
  4. Observe que o método Native está definido para /OrganizationInterfaceImplMobile/employeeSearch@GET. Remova essa entrada.
  5. Adicione a entrada /OrganizationInterfaceImplMobile/employeeSearch@POST.
  6. Clique na guia Data Serialization e modifique os formatos de dados de entrada e saída para UTF8JsonDataHandler selecionando UTF8JsonHandler dentro da categoria JSON no diálogo “Data Transformation Configuration”. Isso define o formato de entrada e saída BO como JSON. Essa etapa é opcional, já que o formato de dados padrão na ligação está definido para UTF8JsonDataHandler.
  7. Clique na guia HTTP Method Settings e remova o tipo de método GET.
  8. Salve suas alterações no diagrama de montagem.

Teste o JSON por exportação HTTP

Nesta seção, testaremos a exportação OrganizationInterfaceMobile criada.

  1. Clique com o botão direito em OrganizationInterfaceMobile no diagrama de montagem e selecione Test component do menu.
  2. A operação employeeSearch está selecionada, e você verá a entrada BO searchCriteriaBO na seção “Initial request parameters”.
  3. Insira os seguintes valores em searchCriteriaBO, como mostra a Figura 6. Os valores exprimem que você deseja encontrar funcionários chamados “John Doe”, e que você quer a primeira página de resultados (por exemplo, zero indexado). Você também não quer ter mais de 10 linhas por página, e os resultados são classificados em ordem crescente por divisão (por exemplo, divisão é a única coluna classificável neste exemplo):
    1. order = ASC
    2. rowsPerPage = 10
    3. pageIndex = 0
    4. fullName = John Doe


    Figura 6. Teste da entrada BO
    Test input BO

  4. Clique em Invoke na seção Events e clique no botão Continue - o círculo verde com o triângulo branco. Isso iniciará o WebSphere Process Server V6.2 no servidor do ambiente de teste do host local e executará o método de serviço employeeSearch. Seja paciente, já que isso pode levar algum tempo.
  5. Observe que o retorno é um PageOfEmployeeBO contendo um array de dois EmployeeBOs (Figura 7).

    Figura 7. Teste a saída BO
    Test output BO


Informações para fornecer ao desenvolvedor para iPhone

Esta seção descreve as informações que o desenvolvedor para iPhone necessitará para criar um cliente de proxy Objective-C para invocar o serviço employeeSearch.

  1. Forneça o arquivo OrganizationInterface.wsdl. Esse arquivo será usado para criar operações de correspondência e também como entrada e saída BOs para o cliente. Nesse caso, uma simples imagem da interface é o suficiente (Figura 8).

    Figura 8. OrganizationInterface
    OrganizationInterface

  2. Forneça detalhes para cada BO. Em nosso caso, possuímos três BOs e imagens de cada serão o suficiente.
    1. SearchCriteriaBO (Figura 9).

      Figura 9. SearchCriteriaBO
      SearchCriteriaBO

    2. EmployeeBO (Figura 10).

      Figura 10. EmployeeBO
      EmployeeBO

    3. PageOfEmployeeBO (Figura 11).

      Figura 11. PageOfEmployeeBO
      PageOfEmployeeBO

  3. Clique na exportação OrganizationInterfaceMobile no diagrama de montagem e vá até a visualização Properties.
  4. Na visualização Properties, clique na seção Summary.
  5. Forneça a tabela que mapeia o nome do Método para o Terminal (Figura 12).

    Figura 12. URLs dos terminais de serviço
    Service Endpoint URLs

  6. Forneça o endereço do servidor do WebSphere Process Server que o desenvolvedor para iPhone pode usar para invocar o serviço. Por exemplo, o desenvolvedor acaba invocando:
    https://localhost:9445/iPhoneServicesModuleWeb/OrganizationInterfaceImplMobile/
     employeeSearch

    Seu URL pode ser diferente caso você tenha configurado o WebSphere Process Server para usar uma porta diferente.

2 de 7 | Anterior | Próximo

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=478409
TutorialTitle=Alimentando aplicativos do iPhone com os serviços do WebSphere Process Server V6.2
publish-date=03292010
author1-email=chrisfel@ca.ibm.com
author1-email-cc=