Java ME e suas principais tecnologias de

Propaganda
Java ME e suas principais tecnologias de conectividade
Gracieli Begia Mateus
Telefones Celulares no Mundo
Fonte: UIT e Wireless Intelligence (Ovum/GSM Association)
Posição do Brasil no Mundo
Principais mercados de celular no mundo
Milhões
1
2
3
4
5
6
País
China
US
Rússia
Índia
Brasil
Japão
2004 2005 2006
335 393 461
181 208 233**
74
126 152
48
76
149*
66
86
99,9
91
95
99,8
Vendas de Telefones Celulares no Mundo
Milhões
Nokia
Motorola
Samsung
Sony Ericsson
LG Electronics
Outros* TOTAL
2004
207,6
104,5
86,5
42,3
44,4
­
­
Fonte IDC
2005
264,9
146
102,8
51,1
54,9
213,1
832,8
2006
347,5
217,4
118
74,8
64,4
197,8
1019,9
Java ME
O Java ME é uma versão compacta da linguagem Java, direcionada para o desenvolvimento de software para sistemas e aplicações embarcadas em dispositivos com poder de processamento e armazenamento limitados. Dispositivos Móveis
Arquitetura do Java ME
Pacotes Opcionais
Personal Basis Profile
Personal Profile
Foundation Profile
MIDP
CDC
CLDC
CVM
KVM
Pacotes Opcionais
Perfis
Configurações
Máquinas virtuais
Pacotes Opcionais
Máquinas Virtuais Java
Podemos considerar a JVM como sendo um computador abstrato definido por uma especificação, normalmente executado a partir de um sistema operacional, e que permite executar código Java em qualquer plataforma.
O Java ME dispõe de duas JVM, são elas:
KVM (Kilo Virtual Machine)
● CVM (Compact Virtual Machine)
●
Configurações
As configurações são compostas de uma JVM, um conjunto mínimo de bibliotecas de classes e APIs. Elas fornecem a funcionalidade básica para uma ampla variedade de dispositivos que possuem características similares, como conectividade, memória e processamento.
CLDC (Connected Limited Device Configuration)
● CDC (Connected Device Configuration)
●
Requisitos para as Configurações Java ME
Memória para executar Java
Configurações Processadores Memória
CLDC
16 bits
128 a 512 Kb
128 Kb
CDC
16 ou 32 bits
2 a 16 Mb
512 Kb
Memória para alocação em tempo de execução
32 Kb
256 Kb
Perfis
Os Perfis é um conjunto de APIs e bibliotecas de classe, que possibilita aos desenvolvedores implementarem as aplicações de acordo com as características dos pequenos dispositivos, fornecendo funcionalidades adicionais aos dispositivos de um segmento.
No perfil MIDP (Mobile Information Device Profile) há APIs que atendem a diversas necessidades. Dentre elas, merecem destaque as bibliotecas projetadas para a conexão entre sistemas.
●
●
MIDP 1.0: http
MIDP 2.0: https, além de datagramas, SMS e socketstu
GCF (Generic Connection Framework)
Na configuração CLDC do Java ME há um framework de conexão denominado Generic Connection Framework (GCF), que está presente no pacote javax.microedition.io. O GCF tem como objetivo adequar os recursos oferecidos pelo Java SE para aplicações que implementam o Java ME.
A idéia básica do GCF é ter uma classe, Connector, que possa criar qualquer tipo de conexão, arquivo, http, datagrama etc.
Estrutura de conexão genérica – Hierarquia de classes
Connection
<<Interface>>
InputConnection
<<Interface>>
OutputConnection
<<Interface>>
DatagramConnection
<<Interface>>
ConnectionNotFoundException
<<class>>
StreamConnection
<<Interface>>
Connector
<<class>>
(Connection Factory)
ContentConnection
<<Interface>>
HttpConnection
<<Interface>>
StreamConnectionNotifier
<<Interface>>
Datagram
<<Interface>>
Tecnologias de conectividade
As principais tecnologias de conectividade e as mais conhecidas do Java ME – MIDP 2.0, são:
●
●
●
●
●
HTTP (Hypertext Transfer Protocol)
HTTPS (HTTP sobre camada de sockets seguros (SSL))
Datagrama
Socket
SMS (Short Message Service)
HTTP
Esse protocolo faz uso da abordagem de pedido/resposta, ou seja, o cliente inicia um pedido para o servidor através de um endereço contido em uma URL, a tarefa do servidor é responder a essa requisição.
Esse pedido que será enviado pela rede é composto de três partes: método do pedido, cabeçalho e corpo.
A resposta do servidor possui três seções: linha de status, cabeçalho e corpo. A linha de status é o resultado do pedido do cliente. Os valores de retorno estão nessas faixas:
100 a 199: informação;
200 a 299: sucesso;
300 a 399: redirecionamento;
400 a 499: erros do cliente;
500 a 599: erros do servidor.
Obtendo uma conexão HTTP:
String url = “http://www.webgis.com.br/antares”;
HttpConnection hc = null;
hc = (HttpConnection) Connector.open(url);
HTTPS
O HTTPS é o mesmo protocolo HTTP, porém, sendo transportado sobre uma camada de segurança (SSL).
Sua comunicação é mais lenta que o HTTP e o processamento no dispositivo móvel aumenta consideravelmente devido aos bytes de controle e à necessidade de processar os algoritmos de criptografia.
Obtendo uma conexão HTTPS:
String url = “https://www.webgis.com.br/antares”;
HttpsConnection hc = null;
hc = (HttpsConnection) Connector.open(url);
Datagrama
Datagrama é um mecanismo de comunicação que envia os pacotes de dados na rede sem se preocupar com a confirmação do seu recebimento pelo destinatário. O cliente forma um pacote datagrama com as informações do destinatário (um endereço na internet e um número de porta) e envia para a rede.
Para usar comunicação datagrama:
String url = “datagram://localhost:9000”;
DatagramConnection dc = null;
dc = (DatagramConnection) Connector.open(url);
Socket
Socket é um canal de comunicação entre dois programas através de uma rede. A idéia básica desse tipo de conexão é trafegar dados entre um cliente e um servidor através de uma conexão contínua. O processo de comunicação é bastante simples, basta o servidor disponibilizar uma porta na rede, então a função do programa cliente é conhecer essa porta disponibilizada e estabelecer a conexão. Exemplo: Servidor de Socket
String url = “socket://:4567”;
ServerSocketConnection conServSocket = null;
conServSocket = (ServerSocketConnection) Connector.open(url);
SMS
O funcionamento do SMS consiste na abertura de uma conexão para o envio de conteúdo texto ou binário para um dispositivo, em forma de pacotes de dados, sem confirmação de recebimento. Embora seja uma idéia semelhante ao datagrama, o SMS utiliza os números de telefones celulares para comunicação (essa é apenas uma das diferenças existentes).
Exemplo:
String addr = “sms://:5432”;
MessageConnection conn = null;
conn = (MessageConnection) Connector.open(addr);
SMS: um potencial de oportunidades
O SMS foi criado para ser um grande gerador de receita em dados, uma vez que é um serviço disponível e habilitado em praticamente todos os celulares ativos no mercado. No Brasil a composição da receita das operadoras de celular está dividida da seguinte forma:
O faturamento das operadoras com transmissão de dados:
Brasil – 8% (70% SMS e 30% WAP/GPRS)
EUA, Europa e Japão – 20% a 30%
Gracieli Mateus
Coordenadora do JavaNoroeste de Votuporanga
[email protected]
Download