DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo java magazine 49 - Mini-curso de java ME: Parte 6

Artigo publicado pela Java Magazine 49.

Esse artigo faz parte da revista Java Magazine edição 49. Clique aqui para ler todos os artigos desta edição

Mini-Curso

Programação Java ME

MINI-CURSO DE JAVA ME: PARTE 6

 

Nesta última parte do mini-curso que iniciamos na Edição 44, falaremos de mais algumas APIs importantes da MIDP. Mas ao contrário da abordagem mais aprofundada que dedicamos a outras APIs, daremos uma visão mais ampla e abordaremos várias outras tecnologias. Terminamos, então, da mesma forma como começamos: com uma visão geral – porém dessa vez, mais aplicada, falando de diversos tópicos de programação Java ME.

 

WMA: Mensageria1

Em qualquer rede onde a comunicação é cara, lenta ou pouco confiável, o paradigma de troca de mensagens assíncronas é proveitoso. Um bom exemplo disso é o e-mail; exemplos mais sofisticados incluem JMS e Especiweb services. O uso de mensagens não exige manter conexões abertas por muito tempo, o que reduz a dependência de redes baratas e confiáveis. Também não exige sincronização entre transmissor e receptor, o que diminui a dependência de redes rápidas (pois o tempo de execução do transmissor não é prejudicado por lentidão ou excesso de carga de um receptor, nem vice-versa).

Estas qualidades tornam o SMS2 ideal para muitos tipos de aplicações. O SMS vai além do seu uso comum para “bate-papo” via celular. Essas mensagens também podem ser enviadas de forma automática por aplicações. Isso também é bastante difundido, por exemplo pelos serviços de extrato via celular oferecidos por bancos.,

Nota 1: O termo “mensageria” é um tradução comum do inglês messaging, um “sub-paradigma” de programação (de rede, concorrente/paralela ou OO) fundamentado na troca de mensagens discretas e possivelmente assíncronas entre aplicações (ou tarefas, threads etc.). Tem vantagens como baixo acoplamento, garantia de entrega através de enfileiramento, bem como concorrência facilitada (pois no contexto de concorrência, o uso de messaging não exige locks). Neste artigo, nos concentramos na aplicação deste paradigma à programação de rede.

Nota 2:  Neste artigo, uso SMS no lugar de “SMS, MMS ou CBS”, para simplificar. Todas essas modalidades de mensagens são suportadas pela WMA. Para CBS (Cell Broadcast Service), a WMA só suporta recepção (nenhuma operadora permitiria a clientes comuns originar mensagens CBS, que são entregues em massa para todos os aparelhos no alcance de uma ou mais estações-base).

 

Indo além, mensagens SMS podem ser consumidas por aplicações. Por exemplo, num cenário corporativo, poderíamos ter funcionários que trabalham em campo (ex.: vendedores) recebendo de forma automática mensagens com atualização de informações relevantes ao seu trabalho, como um desconto de última hora. Os funcionários não leriam as mensagens (nem saberiam que estão recebendo mensagens SMS); só veriam o efeito indireto dessas mensagens numa aplicação. Veja o quadro “Enviando SMS a partir do seu PC”.

A API da WMA – javax.wireless.messaging (JSR-120) – se encaixa no framework definido pelo GCF (Generic Connection Framework). Uma URL com o tipo “sms:” é usada para abrir uma MessageConnection cliente (capaz somente de enviar mensagens), ou servidora (capaz de enviar e receber). O código a seguir abre uma conexão de cliente e envia uma mensagem:

 

MessageConnection conn =

(MessageConnection) Connector.open("sms://123456789");

TextMessage msg = (TextMessage)conn.newMessage(

MessageConnection.TEXT_MESSAGE);

msg.setPayloadText(“Um dois três testando, câmbio e desligo!”);

conn.send(msg);

 

Para receber uma mensagem, pode-se  usar o PushRegistry, uma facilidade que vimos na Edição 47. O PushRegistry permite que uma MIDlet registre, através de uma API ou dos seus descritores, que quer ser notificada do recebimento de determinado evento. Veja um exemplo desse tipo de registro no descritor (JAD):

 

MIDlet-Push-1: sms://:50001, MIDletReceptora, *

 

Aqui usamos uma “URL de servidor”, na qual o número do aparelho é omitido, mas especificamos um número de porta. Pode haver várias MIDlets no mesmo aparelho desejando receber mensagens SMS. Basta que usem portas diferentes. Numa conexão de cliente também é possível especificar a porta; caso omitida, a mensagem é enviada para o Inbox do aparelho.

 

WMA para mensageria?

A WMA é freqüentemente comparada  a APIs de e-mail, mas também possui recursos de mensageria generalizada (como a JMS). Primeiro, assim como a JMS (mas diferentemente da JavaMail), a WMA permite enviar mensagens assíncronas de qualquer tipo – além de TextMessage, existe também o tipo BinaryMessage que comporta até 140 bytes3, sem necessidade de um encoding ASCII como o base64.

Nota 3:  Para uma TextMessage o limite é de 160 caracteres, pois os caracteres são codificados com 7 bits cada. Exceto para línguas como o chinês que precisam de codificação Unicode de 16 bits, resultando num limite de 70 caracteres.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Osvaldo Pinali Doederlein
é Mestre em Engenharia de Software Orientado a Objetos e Arquiteto de Tecnologia da Visionnaire Informática, trabalhando em projetos de software e prospecção tecnológica.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03