advertisement

JME Web Services API: um estudo de caso

50 %
50 %
advertisement
Information about JME Web Services API: um estudo de caso

Published on May 28, 2008

Author: lzomatos

Source: slideshare.net

Description

Introdução a Web Services, seu uso na plataforma Java MicroEdition e o estudo de caso EduQuiz Mobile.
advertisement

Universidade Salvador - UNIFACS Mestrado em Sistemas e Computação Técnicas Avançadas de Programação JME Web Services API: um estudo de caso Luiz Matos Marcos Lapa dos Santos Salvador, Janeiro de 2008.

Agenda Introdução a Web Services JME Web Services Estudo de Caso – EduQuiz Mobile Considerações Finais Referências

Introdução a Web Services

JME Web Services

Estudo de Caso – EduQuiz Mobile

Considerações Finais

Referências

Introdução a Web Services Definições Software projetado para fornecer interoperabilidade entre máquinas em uma rede de computadores. ( BOOTH e outros , 2004) Fornece uma interface de serviço que permite aos clientes interagirem com servidores através de um conjunto de operações . (COULOURIS e outros, 2007) Padrão atual da indústria: Serviços que são disponibilizados usando SOA P : uma mensagem baseada em XML que normalmente é transportada via HTTP . (ORTIZ, 2006)

Definições

Software projetado para fornecer interoperabilidade entre máquinas em uma rede de computadores. ( BOOTH e outros , 2004)

Fornece uma interface de serviço que permite aos clientes interagirem com servidores através de um conjunto de operações . (COULOURIS e outros, 2007)

Padrão atual da indústria:

Serviços que são disponibilizados usando SOA P : uma mensagem baseada em XML que normalmente é transportada via HTTP . (ORTIZ, 2006)

Introdução a Web Services Elementos - Simple Object Access Protocol (SOAP) : define o transporte e a codificação dos dados. - Web Services Definition Language (WSDL) : define como os serviços remotos são descritos. Extensible Markup Language (XML) : linguagem de marcação utilizada para troca de mensagens e como a forma de definição dos serviços . - Universal Description, Discovery, Integration (UDDI) : define como os serviços remotos são descobertos.

Elementos

- Simple Object Access Protocol (SOAP) : define o transporte e a codificação dos dados.

- Web Services Definition Language (WSDL) : define como os serviços remotos são descritos.

Extensible Markup Language (XML) : linguagem de marcação utilizada para troca de mensagens e como a forma de definição dos serviços .

- Universal Description, Discovery, Integration (UDDI) : define como os serviços remotos são descobertos.

Introdução a Web Services O provedor do serviço publica-o no registro de serviços, onde o solicitante do serviço irá localizá-lo. Após localizado o serviço, o solicitante efetua a chamada ao provedor daquele serviço. Os clientes acessam as operações na interface de um Web Service por meio de requisições e respostas formatadas em XML e, normalmente, transmitidas por HTTP. Provedor do serviço Registro de serviços Solicitante do serviço Ligar Publicar Localizar Figura 1. Arquitetura Web Services (1) (2) (3)

O provedor do serviço publica-o no registro de serviços, onde o solicitante do serviço irá localizá-lo. Após localizado o serviço, o solicitante efetua a chamada ao provedor daquele serviço.

JME Web Services Java Specification Request (JSR) 172; Fornece à plataforma JME o suporte a Web Services, através de dois pacotes independentes: Acesso remoto a Web Services Define uma API que permite dispositivos móveis acessarem Web Services baseados em XML. Parsing XML Permite o parsing de dados em XML no dispositivo, sem a necessidade de incluir código extra para cada aplicação.

Java Specification Request (JSR) 172;

Fornece à plataforma JME o suporte a Web Services, através de dois pacotes independentes:

Acesso remoto a Web Services

Define uma API que permite dispositivos móveis acessarem Web Services baseados em XML.

Parsing XML

Permite o parsing de dados em XML no dispositivo, sem a necessidade de incluir código extra para cada aplicação.

JME Web Services API projetada para trabalhar com profiles JME baseados nas configurações CDC ou CLDC. O acesso remoto a Web Services é baseado em um subconjunto da API XML-Based RPC (JAX-RPC 1.1). O parsing XML é baseado em um subconjunto da Simple API for XML (SAX2). Utilizam outras APIs com funcionalidades reduzidas, a fim de atender as limitações da plataforma : memória, processamento e largura de banda.

API projetada para trabalhar com profiles JME baseados nas configurações CDC ou CLDC.

O acesso remoto a Web Services é baseado em um subconjunto da API XML-Based RPC (JAX-RPC 1.1).

O parsing XML é baseado em um subconjunto da Simple API for XML (SAX2).

Utilizam outras APIs com funcionalidades reduzidas, a fim de atender as limitações da plataforma : memória, processamento e largura de banda.

Figura 2. Arquitetura JME Web Services (ELLIS e YOUNG, 2003) Figura 3. JME Web Services em uma típica arquitetura de WS (ORTIZ, 2004)

JME Web Services Pacote para acesso remoto a Web Services É uma API Java para interação com Web Services baseados em SOAP. Características Subconjunto das funcionalidades da API JAX-RPC 1.1; Suporte a SOAP 1.1; Não depende do pacote de parsing XML; Fornece acesso a Web Services através de aplicações JME; Não possui funcionalidades de servidor.

Pacote para acesso remoto a Web Services

É uma API Java para interação com Web Services baseados em SOAP.

Características

Subconjunto das funcionalidades da API JAX-RPC 1.1;

Suporte a SOAP 1.1;

Não depende do pacote de parsing XML;

Fornece acesso a Web Services através de aplicações JME;

Não possui funcionalidades de servidor.

JME Web Services Requisitos - Mínimo de 50KB de RAM; Mínimo de 25KB de ROM; Suporte a invocação baseada em Stub; Mapeamento do SOAP para exceção Java ou um RemoteException; Suporte a gerenciamento de sessão e autenticação HTTP. Limitações Não suporta mensagens com anexos; Apenas consumidor; Não suporta UDDI.

Requisitos

- Mínimo de 50KB de RAM;

Mínimo de 25KB de ROM;

Suporte a invocação baseada em Stub;

Mapeamento do SOAP para exceção Java ou um RemoteException;

Suporte a gerenciamento de sessão e autenticação HTTP.

Limitações

Não suporta mensagens com anexos;

Apenas consumidor;

Não suporta UDDI.

JME Web Services Organização Permite o Stub executar todas as tarefas associadas com a invocação de um serviço. Memória do dispositivo Stubs gerados Oculta a complexidade de tarefas como o gerenciamento de conexão e codificação dos dados. Figura 4. Organização de um aplicação baseada na JSR 172 (ORTIZ, 2004)

Organização

O método e seu argumento são codificados, serializados e enviados, e a resposta é recebida, decodificada, e deserializada de maneira transparente. Suporta somente comunicação síncrona, ou seja, o cliente é bloqueado até que a resposta ou uma exceção seja recebida. Figura 5. Interação JAX-RPC (ORTIZ, 2006) JME Web Services Funcionamento

O método e seu argumento são codificados, serializados e enviados, e a resposta é recebida, decodificada, e deserializada de maneira transparente.

Suporta somente comunicação síncrona, ou seja, o cliente é bloqueado até que a resposta ou uma exceção seja recebida.

Funcionamento

JME Web Services Classes e Interfaces Figura 4. Diagrama de Classes JAX-RPC no JME (ORTIZ, 2006)

Classes e Interfaces

Passos Desenvolvimento 1. Gerar stubs através de um documento WSDL que descreve um web service; 2. No código, criar uma instância do stub gerado; 3. Invocar os métodos do stub, tais métodos correspondem às operações do web service disponíveis no WSDL. JME Web Services Figura 5. Caso de uso da API JAX-RPC para JME (ORTIZ, 2006)

Passos Desenvolvimento

1. Gerar stubs através de um documento WSDL que descreve um web service;

2. No código, criar uma instância do stub gerado;

3. Invocar os métodos do stub, tais métodos correspondem às operações do web service disponíveis no WSDL.

Geração de stub JME Web Services Figura 8. Stub Generator Figura 8. Geração do Stub (ORTIZ, 2006)

Geração de stub

JME Web Services Abstraindo o acesso aos WebServices: KSoap + KXML Frameworks que facilitam a vida do desenvolvedor de aplicações J2ME quando desejam acessar WebServices. Foco em aplicações clientes de WebServices, não criam WebServices. Projeto Open Source.

Abstraindo o acesso aos WebServices:

KSoap + KXML

Frameworks que facilitam a vida do desenvolvedor de aplicações J2ME quando desejam acessar WebServices.

Foco em aplicações clientes de WebServices, não criam WebServices.

Projeto Open Source.

JME Web Services Abstraindo o acesso aos WebServices (KSOAP): Mapeamento automático de 4 tipos primitivos do SOAP para o Java: Figura 4. Mapeamento de Tipos (YUAN, 2002) java.lang.Boolean xsd:boolean java.lang.String xsd:string java.lang.Long xsd:long java.lang.Integer xsd:int Java type SOAP type

Abstraindo o acesso aos WebServices (KSOAP):

Mapeamento automático de 4 tipos primitivos do SOAP para o Java:

JME Web Services Abstraindo o acesso aos WebServices (KSOAP): Permite Mapeamento de objetos complexos do SOAP para o JAVA Abstrai a estrutura do documento XML (Usando o KXML internamente). Não requer geração de Stubs no cliente Disponível em: http: // ksoap2.sourceforge.net

Abstraindo o acesso aos WebServices (KSOAP):

Permite Mapeamento de objetos complexos do SOAP para o JAVA

Abstrai a estrutura do documento XML (Usando o KXML internamente).

Não requer geração de Stubs no cliente

Disponível em: http: // ksoap2.sourceforge.net

JME Web Services Passos Desenvolvimento 1) Definir o destino: Namespace e método 2) Adicionar possíveis parâmetros 3) Atribuir ao “envelope” 4) Enviar o envelope 5) Tratar resposta

Passos Desenvolvimento

1) Definir o destino:

Namespace e método

2) Adicionar possíveis parâmetros

3) Atribuir ao “envelope”

4) Enviar o envelope

5) Tratar resposta

Acessando um WebService com tipo primitivo de retorno

Acessando um WebService com

tipo primitivo de retorno

Exemplo: Calculadora Serviço executando remotamente programado em JEE.

Exemplo: Calculadora

Utilizando a JSR172

Utilizando a JSR172

Utilizando KSOAP 2

Utilizando KSOAP 2

Acessando um WebService com tipo complexo de retorno

Acessando um WebService

com tipo complexo de retorno

Utilizando KSOAP 2

Utilizando KSOAP 2

Estudo de Caso – EduQuiz Mobile

Estudo de Caso – EduQuiz Mobile Descrição da Aplicação Um jogo executado no estilo perguntas e respostas sobre computa ção. A finalidade é promover uma avaliação de conhecimentos sobre determinado domínio. A interface com o usuário será realizada por um dispositivo móvel, que deverá acessar as funcionalidades da aplicação através protocolo HTTP via Web Service.

Descrição da Aplicação

Um jogo executado no estilo perguntas e respostas sobre computa ção.

A finalidade é promover uma avaliação de conhecimentos sobre determinado domínio.

A interface com o usuário será realizada por um dispositivo móvel, que deverá acessar as funcionalidades da aplicação através protocolo HTTP via Web Service.

Estudo de Caso – EduQuiz Mobile Requisitos Autenticação baseada em login e senha; Controle de usuário baseado em níveis (Adminstrador, Professor, Aluno); Questões organizadas por assunto; Limite de 3 alternativas por questão, sendo apenas 1 correta; Ranking de pontuação;

Requisitos

Autenticação baseada em login e senha;

Controle de usuário baseado em níveis (Adminstrador, Professor, Aluno);

Questões organizadas por assunto;

Limite de 3 alternativas por questão, sendo apenas 1 correta;

Ranking de pontuação;

Estudo de Caso – EduQuiz Mobile Arquitetura Internet LAN Fornecedor do serviço + demais servidores (App, BD , etc) EduQuiz MIDlet ClientWS Questao ut il

Arquitetura

Estudo de Caso – EduQuiz Mobile Serviços $LOGIN;$QNT_ACERTOS[] - consultar_ranking true, false id_usuario, qnt_acertos gravar_acertos $ID;$DESCRICAO;$CORRETA[] id_questao obter_alternativas $ID;$DESCRICAO[] id_assunto obter_questoes $ID;$DESCRICAO[] - obter_assuntos $ID;$NOME login, senha autenticar Out In Serviço

Serviços

Estudo de Caso – EduQuiz Mobile

Estudo de Caso – EduQuiz Mobile Tecnologias utilizadas Cliente (Dispositivo Móvel) Java 1.6 KSOAP 2 Servidor: PHP 5.2.4 MySQL 5.0.45 Apache 2.2.6 Ferramentas de apoio: NetBeans 5.5 phpMyAdmin 2.11.1 Java Wireless Toolkit 2.5.1

Tecnologias utilizadas

Cliente (Dispositivo Móvel)

Java 1.6

KSOAP 2

Servidor:

PHP 5.2.4

MySQL 5.0.45

Apache 2.2.6

Ferramentas de apoio:

NetBeans 5.5

phpMyAdmin 2.11.1

Java Wireless Toolkit 2.5.1

Demonstração

Demonstração

Considerações Finais Durante a pesquisa identificamos: Vantagens Facilita a codificação de clientes de WebServices frente à JSR 172. Abstrai o SOAP e XML para o desenvolvedor. Abstrai a criação de stubs. Problemas O acesso a WebServices feitos em .NET não é trivial (Na versão 1.0 do KSOAP não roda) Falhas na geração de stubs utilizando WSDL gerado em PHP

Durante a pesquisa identificamos:

Vantagens

Facilita a codificação de clientes de WebServices frente à JSR 172.

Abstrai o SOAP e XML para o desenvolvedor.

Abstrai a criação de stubs.

Problemas

O acesso a WebServices feitos em .NET não é trivial (Na versão 1.0 do KSOAP não roda)

Falhas na geração de stubs utilizando WSDL gerado em PHP

Referências BOOTH, David; HAAS, Hugo; McCABE, Francis; NEWCOMER, Eric; CHAMPION, Michael; Ferris, Chris; ORCHARD, David. Web Services Architecture. W3C Working Group Note, 2004. Disponível em: <http://www.w3.org/TR/ws-arch/>. Acesso em: 29 nov. 2007. COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas Distribuídos: conceitos e projeto. 4. ed. Porto Alegre: Bookman, 2007. ELLIS, Jon; YOUNG, Mark. J2ME Web Services 1.0: final draft. Java Community Process, 2003. Disponível em: <http://www.jcp.org/aboutJava/communityprocess/final/jsr172/>. Acesso em: 25 nov. 2007. GIGUERE, Eric. Service-Oriented Architecture and Java ME. Sun Developer Network, 2006. Disponível em: <http://developers.sun.com/mobility/midp/ttips/soaintro/>. Acesso em: 25 nov. 2007. _______. SOA Without SOAP: the Java ME Perspective. Sun Developer Network, 2007. Disponível em: <http://developers.sun.com/mobility/midp/ttips/soanosoap/>. Acesso em: 25 nov. 2007. ORTIZ, C. Enrique. Introduction to J2ME Web Services. Sun Developer Network, 2004. Disponível em: <http://developers.sun.com/mobility/apis/articles/wsa/index.html>. Acesso em: 25 nov. 2007. _____. Understanding the Web Services Subset API for Java ME. Sun Developer Network, 2006. Disponível em: <http://developers.sun.com/mobility/midp/articles/webservices/>. Acesso em: 25 nov. 2007. MARIN NETO, Antonio. Utilizando SOA com Webservices em JME. Disponível em: <http://www.sucesusp.org.br/mailing2007/congresso/justjava/apresentacoes/SOAJME.pdf>. Acesso em: 28 nov. 2007. YUAN, M. Juntao. Access Web Services from wireless devices. Java World, 2002. Disponível em: <http://www.javaworld.com/javaworld/jw-08-2002/jw-0823-wireless.html?page=1>. Acesso em: 20 dez. 2007

BOOTH, David; HAAS, Hugo; McCABE, Francis; NEWCOMER, Eric; CHAMPION, Michael; Ferris, Chris; ORCHARD, David. Web Services Architecture. W3C Working Group Note, 2004. Disponível em: <http://www.w3.org/TR/ws-arch/>. Acesso em: 29 nov. 2007.

COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas Distribuídos: conceitos e projeto. 4. ed. Porto Alegre: Bookman, 2007.

ELLIS, Jon; YOUNG, Mark. J2ME Web Services 1.0: final draft. Java Community Process, 2003. Disponível em: <http://www.jcp.org/aboutJava/communityprocess/final/jsr172/>. Acesso em: 25 nov. 2007.

GIGUERE, Eric. Service-Oriented Architecture and Java ME. Sun Developer Network, 2006. Disponível em: <http://developers.sun.com/mobility/midp/ttips/soaintro/>. Acesso em: 25 nov. 2007.

_______. SOA Without SOAP: the Java ME Perspective. Sun Developer Network, 2007. Disponível em: <http://developers.sun.com/mobility/midp/ttips/soanosoap/>. Acesso em: 25 nov. 2007.

ORTIZ, C. Enrique. Introduction to J2ME Web Services. Sun Developer Network, 2004. Disponível em: <http://developers.sun.com/mobility/apis/articles/wsa/index.html>. Acesso em: 25 nov. 2007.

_____. Understanding the Web Services Subset API for Java ME. Sun Developer Network, 2006. Disponível em: <http://developers.sun.com/mobility/midp/articles/webservices/>. Acesso em: 25 nov. 2007.

MARIN NETO, Antonio. Utilizando SOA com Webservices em JME. Disponível em: <http://www.sucesusp.org.br/mailing2007/congresso/justjava/apresentacoes/SOAJME.pdf>. Acesso em: 28 nov. 2007.

YUAN, M. Juntao. Access Web Services from wireless devices. Java World, 2002. Disponível em: <http://www.javaworld.com/javaworld/jw-08-2002/jw-0823-wireless.html?page=1>. Acesso em: 20 dez. 2007

Add a comment

Related pages

JME Web Services API: um estudo de caso - Technology

Introdução a Web Services, seu uso na plataforma Java MicroEdition e o estudo de caso EduQuiz Mobile.
Read more

Todos os estudos de caso da AWS - Amazon Web Services (AWS)

Amazon FPS Serviço de pagamento baseado em API. ... Estudo de caso da AWS: ... A Amazon Web Services está contratando.
Read more

Estudo de caso da AWS: Rede Globo

Amazon API Gateway Crie, ... Estudo de caso da AWS: ... Existem 64 projetos utilizando a nuvem da Amazon Web Services como base tais como, ...
Read more

Web semântica e ontologias - um estudo de caso - Technology

Estudo de Caso sobre Web Semântica e Ontologias, desenvolvido em JAVA. Docslide.com.br. Upload Login / Signup. Leadership; Technology; Education; Marketing;
Read more

Estudo de caso: Mavention e o gerenciamento de conteúdo da ...

... Saiba como o Mavention utiliza os recursos de gerenciamento de conteúdo da Web do SharePoint ... Word deste estudo de caso, ... REST API. A pesquisa ...
Read more

Web Services Uma Introdução - Documents

Web Services Uma Introdução. Jacques P. Sauvé DSC/UFCG 2003. Resumo. Cenários problemáticos (45 m) Uma solução: Web Services (60 m) Um exemplo ...
Read more

API 5 - Estudo Preliminar - Documents - docslide.com.br

Share API 5 - Estudo Preliminar.
Read more