Bluetooth e MMAPI para a transmissão e manipulação de vídeo em dispositivos móveis Daniel Welfer

Slides:



Advertisements
Apresentações semelhantes
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Advertisements

Sistemas distribuídos
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
BLUETOOTH André Oquendo Silva Danilo Cunha Frederico Leite Beneti
Redes wireless Aula 08 – Bluetooth Prof. Espec. Diovani Milhorim
Bluetooth e suas aplicações
Prof. Alessandro J. de Souza
Persistência de objetos em arquivo texto usando Java
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
por Celso Soccol , Igor Poltosi , Régis Araújo , Ricardo Piccoli
Paolo Cemim Rogério Vieira
Tamires Maciel Vitor Barbosa
Diego Martins e Felipe Lima
Java Media Framework JMF Ronaldo Celso Messias Correia
Invocação de Métodos Remotos RMI
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Serviço ContextManager CtxManagerDemo.
Aldo Carvalho e Marcos Lubas
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Introdução a Programação JAVA
CRIANDO OBJETOS EM JAVA
Camada de Transporte: Portas, Sockets, Aplicações em Rede
INTRODUÇÃO À COMPUTAÇÃO
JAVA: Conceitos Iniciais
Concorrência em Java Threads em Java.
Introdução a linguagem Python
Tipos Agregados Homogêneos e Listas
G ENERIC C ONNECTION F RAMEWORK Prof. André Assad
Capítulo 2 Java Servlets.
Streams –input e output
Web Services Uninorte Semana de Tecnologia da Informação
Integração com Banco de Dados
Métodos de Construção de Software: Orientação a Objetos
Chamada Remota de Procedimentos
Bluetooth Willamys Araújo.
Introdução a aplicativos Java
Juliano Maia Letícia Conte.  Surgiu para unir tecnologias como celular, headsets,...  1994: a empresa Ericson busca por uma tecnologia de transmissão.
DVB - Definição O Digital Video Broadcasting Project (DVB) é um consórcio entre 250 e 300 integrantes de 35 países dedicados a desenvolver padrões globais.
Conceitos de J2EE para a WEB
Infra-Estrutura de Software
Clique para adicionar texto NetGamesNRT Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Pilhas Profa. Nádia Félix.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Profa. Patrícia A. Jaques
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Sistemas Operacionais
Bluetooth.
Introdução às Java Threads
Barramentos em Microcomputadores
Java Kickstart, day 2 Semelhanças com linguagem C.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Módulo 9 Strings , Coleções e I/O
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Socket em Java.
Ivo Gonçalves <19433> Sónia Gonçalves <19617>
JSR 82 - JavaTM APIs for Bluetooth: uma aplicação das bibliotecas BlueCove e Marge. II-UFRGS Programação com Objetos Distribuídos 2011/1 Gabriel Simões.
Características, protocolos e funcionamento
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
REDES BLUETOOTH FABRÍCIO SANTOS DE FARO FACULDADE SANTÍSSIMO SACRAMENTO.
Componentes: ☺Artur Freitas ☺Marcos Eich ☺Rafael Hocevar
Seminários.reply Introdução a JavaME Guilherme Carvalho.
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
Sistemas Multimídia Distribuídos Projeto Carlos A. G. Ferraz
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Projeto Marge Framework para Desenvolvimento de Aplicações Bluetooth em Java Bruno Ghisi Lucas Torri.
Transcrição da apresentação:

Bluetooth e MMAPI para a transmissão e manipulação de vídeo em dispositivos móveis Daniel Welfer

Sumário Java Bluetooth API - JSR-82 Mobile Media API - JSR-135 Aplicação Referências

Bluetooth - Origem Tecnologia criada pelos engenheiros Sven Mattisson e Jaap Haartsen da fabricante de telefones Ericsson Mobile Communications da Suécia;

Bluetooth - Origem Projeto era desenvolver uma interface de comunicação entre telefones móveis e seus acessórios. Descobriram que usando uma frequência de rádio era possível alcançar isso com baixo consumo de energia e baixo custo. Opera em uma frequência de radio baixa e que não requer licença. Então, sem custo; 1Mbps; alcance de cerca de 10 metros. Consome 500 X menos energia que o padrão IEEE x; Era chamada de Multi-Communicator Link (MC Link)

Bluetooth - Origem Começou sua padronização (1998) pelas empresas: Ericsson, IBM, Intel, Nokia, and Toshiba onde passou a se chamar Bluetooth;

Bluetooth - Origem Homenagem ao Rei Viking dinamarquês Harald Bluetooth – (911 a 985 A.D.); O símbolo da tecnologia bluetooth. Em caracteres rúnicos representa um H e um B. Harald Bluetooth – “o unificador”

Bluetooth – Radio Frequência

Java Bluetooth API Componentes básicos: Stack Initialization; Device Management; Device Discovery; Service Discovery; Service Registration; Communication.

Java Bluetooth API - Device Management Classes que permitem obter informações estatísticas de dispositivos bluetooth Locais ( LocalDevice ) e remotos ( RemoteDevice ). import javax.bluetooth.LocalDevice; LocalDevice localDevice = LocalDevice.getLocalDevice(); localDevice.setDiscoverable(DiscoveryAg ent.GIAC);

Java Bluetooth API - Device Management localDevice.setDiscoverable(Disco veryAgent.GIAC);

Java Bluetooth API - Device Management System.out.println("local device: " + localDevice.getBluetoothAddress()); System.out.println("friendlyName: " + localDevice.getFriendlyName()); local device: DECAF friendlyName: WirelessToolkit

Java Bluetooth API - Device Discovery Descobrindo dispositivos: ( RemoteDevice, DiscoveryAgent e DiscoveryListener ) DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent(); discoveryAgent.startInquiry(DiscoveryAgent. GIAC, this);

Java Bluetooth API - Device Discovery A interface: DiscoveryListener public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {} Método chamado quando um dispositivo bluetooth é encontrado na vizinhança; System.out.println("Remote device Address: " + btDevice.getBluetoothAddress()); System.out.println("Major Device Class: " + cod.getMajorDeviceClass() + " Minor Device Class: " + cod.getMinorDeviceClass());

Java Bluetooth API - Device Discovery

A interface: DiscoveryListener public void inquiryCompleted(int discType) {} Método chamado quando a transação da descoberta de um despositivo foi completada ; discType pode ser: INQUIRY_COMPLETED INQUIRY_ERROR INQUIRY_TERMINATED

Java Bluetooth API - Service Discovery A interface: DiscoveryListener public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {} Método chamado quando serviços são encontrados Invocado no método inquiryCompleted: discoveryAgent.searchServices(attrSet, uuid, remoteDevice[0], this); int[] attrSet = {0x0100}; UUID RFCOMM_UUID = new UUID(0x0003); uuid[0] = RFCOMM_UUID;

Java Bluetooth API - Service Discovery attrSet é uma entrada em um service records; SDDB (Service Discovery Database). DataElement serviceNameElement = servRecord[0].getAttributeValue(0x100); String serviceName = (String)serviceNameElement.getValue(); UrlServico.addElement(servRecord[i].getConnecti onURL(ServiceRecord. NOAUTHENTICATE_NOENCRYPT, true));

Java Bluetooth API - Service Discovery A interface: DiscoveryListener public void serviceSearchCompleted(int transID, int responseCode) {} Método chamado quando a procura pelo serviço é finalizada; responseCode: SERVICE_SEARCH_ERROR SERVICE_SEARCH_COMPLETED SERVICE_SEARCH_NO_RECORDS Posso começar a receber dados;

Java Bluetooth API - Service Registration and Communication O servidor registra o serviço no SDDB; url = "btspp://localhost: AABBCCDDEEF F;name=video"; //btspp = Bluetooth Serial Port Profile StreamConnectionNotifier notifier = (StreamConnectionNotifier) Connector.open(url); //similar a ServerSocketConnection notifier.acceptAndOpen();//espera requisição cliente

Java Bluetooth API - Service Registration and Communication Protocolos de comunicação Bluetooth: RFCOMM L2CAP OBEX

Mobile Media API - JSR-135 import javax.microedition.media.*; Player : interface que lida com o processamento do dado multimedia. DataSource : classe abstrata para localização e recuperação do dado multimedia.

Mobile Media API - JSR-135 String arquivo = "file:///root1/" + this.filenameReceived; FileConnection fileConnection = (FileConnection) Connector.open(arquivo, Connector.READ_WRITE); InputStream inputStream = fileConnection.openInputStream(); Player player = Manager.createPlayer(inputStream, "video/mpeg");

Mobile Media API - LifeCycle Um player possui 5 diferentes estados: UNREALIZED, REALIZED, PREFETCHED, STARTED, and CLOSED Síncronos. MediaException

Mobile Media API - LifeCycle UNREALIZED: recupera informações simples sobre a mídia como o tempo de duração de um video/áudio, tipo de conteúdo… REALIZED: se existe permissão para acessar o arquivo (i.e. DRM – Digital Rights Management), comunicação com servidor, manipulação de arquivo; PREFETCHED: decodificação dos dados ; STARTED: executa a media CLOSED: encerra a media. Libera os recursos;

Mobile Media API - Video Trabalhando com Video: VideoControl é uma interface para controlar video. VideoControl videoControl = (VideoControl) player.getControl( "javax.microedition.media.control.VideoControl "); //renderiza o video diretamente em um canvas videoControl.initDisplayMode(VideoControl.USE_DIR ECT_VIDEO, canvas); videoControl.setVisible(true); mDisplay.setCurrent(canvas); player.start();

Aplicação Mostra Estatísticas locais Registra um Serviço de video Disponibiliza Serviço de video Mostra Estatísticas locais Procura Dispositivo/ Serviço Recebe Serviço Exibe video “servidor” /escravo recebe a conexão “cliente”/mestre(inicia conexão)

Aplicação Mostra Estatísticas locais Procura Dispositivo/ Serviço Recebe Serviço Exibe video Filmes angiográficos em DICOM Conversão mpeg Perda de informação

Conclusões Manipulação de dados multimedia é time consuming; Alcance do “link” bluetooth pode ser estendido para mais de 10 metros usando bluetooth hotspots; Tecnologia que pode ser muito mais explorada (ex: jogos multiplayers)

Referências Bruce Hopkins and Ranjith Antony. Bluetooth for Java. Apress, New York – 2003; Michael Miller. Discovering Bluetooth. Sybex, CA – 2001; Sing Li and Jonathan Knudsen. Beginning J2ME: From Novice to Professional, Third Edition, Apress, New York – 2005; Vikram Goyal. Pro Java ME MMAPI: Mobile Media API for Java Micro Edition. Apress, New York – 2006;