MSA (JSR 248) x Location API (JSR 179) x MPS (Mobile Position Service)

liclopes
Posts: 1
Joined: 2007-04-13

Todos são API que auxiliam no desenvolvimento de aplicativos LBS.

Queria discutir sobre as similaridades, as vantagens e as desvantagens de cada um

Abraço, Elias



Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
jfrincon
Posts: 289
Joined: 2006-12-01
MSA VS JSR 179 VSP VS MPS

Olá Elias,

Tudo bem?

Posso aclarar o tema, um pouco:

MSA (Mobile Services Architecture) -- não é um API de LBS, mais é uma iniciativa da comunidade Java ME para estabelecer uma série de JSRs padrão para um dispositivo móvel. É um esforço dirigido por os fornecedores de equipamentos (Nokia, Eriksson, Motorola, RIM) e de alguns operadores (Vodafone, Sprint, AT&T, Orange, NTT). O que a MSA tenta oferecer é uma definição clara e com pouca variação do Java ME para fones celulares -- a ideia é que se um equipamento é adequado ao MSA, um aplicativo que seja desenvolvido e testado num equipamento MSA teria certeza de funcionar sem problemas num outro aparelho com MSA -- tendo a certeza que todos os JSRs requeridos estariam disponíveis. (A página de desenvolvedores da Sun tem uma boa explicação).

O Mobile Position Service (MPS) é um produto da Ericsson que faz possível que (se o operador já o implementou) um desenvolvedor faça uma localização remota sem ter que por um aplicativo no aparelho. A Nextel tem um oferecimento similar, o Location Studio (pode ver o guia de desenvolvedores aqui) da Openwave.

O JSR 179 -- ele é, com certeza, o API para desenvolver aplicativos de LBS. Nos aparelhos Nextel ele complementa o oferecimento do api OEM que implementou a Motorola e que é disponível em todo aparelho Nextel MIDP2 que tenha Java. (Já viu o exemplo?)

Eu tenho duas opiniões do JSR 179 -- teoría boa, prática um pouco ruim mais funciona. Eu acho a idéia muito boa, mais das implementações do JSR 179 que eu já vi (a da Motorola, a da Nokia e a da RIM) todas tem variações que fazem necessário que conheça os detalhes da implementação de cada fornecedor. O mais importante é conhecer quais combinações de parâmetros são as necessárias para obter um tipo específico de localização (GPS vs. Cell Site vs. triangulação). E os parâmetros não são necessariamente relacionados ao que estamos acostumados a considerar.

Os parâmetros que usa o JSR 179 al criar um pedido de localização:
- se a localização pôde ou não pôde ter custo
- se a localização pôde ou não pôde ter alto consumo da bateria
- se a localização precisa ter informação sobre a velocidade e direção
- se precisa ter informação sobre a altitude
- quanta exatidão de altitude precisa a localização
- quanto tempo esta disposto a esperar para obter a localização
- se precisa uma localização junto com endereços

Veja que não tem jeito de dizer "quero uma localização com GPS" ou "somente preciso conhecer a localização da torre de serviço (Cell ID)" -- precisa saber que para obter um GPS num aparelho Motorola, deve pedir uma localização que pode ter custo, disposto a tolerar alto consumo da bateria, com alta tolerância de espera, sem requerer altitude... (eu tenho uma planilha que mostra as combinações de parâmetros e os tipos de localizações que oferecem, mais não a consigo achar...)

Nos equipamentos CDMA da Samsung, por exemplo, as combinações são diferentes (e precisam outros APIs porque usam o API de localização base do sistema BREW). Nos Nokia também é diferente.

Então, com tanta variabilidade, a vantagem de usar JSR 179 se perde e volta mais complexo. Eu geralmente aconselho que, se pode trabalhar com o API OEM dos aparelhos da Motorola que usa a Nextel o faça, não porque queremos que fique atrapalhado somente nos nossos equipamentos mais porque é geralmente mais fácil de usar.

Um amigo mio apresentou uma boa palestra sobre o tema na JavaOne o ano pasado.

Abraços,

Juan Felipe