Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O...

205
Jayme Frederico Junior Comunicação Entre Dispositivos Móveis e Servidores Utilizando Tecnologia WAP - WML e WMLScript UEM Maringá / PR 2005

Transcript of Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O...

Page 1: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

Jayme Frederico Junior

Comunicação Entre Dispositivos

Móveis e Servidores Utilizando

Tecnologia WAP - WML e WMLScript

UEM

Maringá / PR

2005

Page 2: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

2

Universidade Estadual de Maringá

Centro de Tecnologia

Departamento de Informática

Comunicação entre dispositivos

móveis e servidores utilizando tecnologia

WAP - WML e WMLScript

Jayme Frederico Júnior.

Monografia apresentada ao curso de Especialização em

Desenvolvimento de Sistemas para Web do Departamento de

Informática, Centro de Tecnologia da Universidade Estadual de

Maringá.

Orientador: Prof. Dr. Antonio Mendes da Silva Filho.

Co-Orientador; Prof MSc Ademir Carniel

Page 3: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

3

Resumo

O trabalho realiza um estudo sobre a

Comunicação entre dispositivos móveis e Servidores da Web, assim

como as ferramentas voltadas para o desenvolvimento de aplicações

para equipamentos portáteis e Internet. O foco principal está na

utilização da linguagem WML que é uma derivação da XML direcionada

a dispositivos móveis. As ferramentas e softwares utilizados são:

simuladores de dispositivos móveis, protocolo WAP, WML e WMLScript,

PHP, MySQL, Apache. Além de apresentar um estudo das tecnologias

envolvidas no desenvolvimento de aplicações Wireless, outro objetivo

deste trabalho é demonstrar através de um estudo de caso uma

aplicação denominada “Enquete On Line”, em que o usuário possa

expressar sua opinião através do celular, recebendo uma resposta do

sistema. Um banco de dados é utilizado para armazenar as informações

da pesquisa de opinião.

Page 4: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

4

Agradecimentos

Agradeço a minha esposa, Lia e minha filha

Mayara, pelo carinho e compreensão, pelos longos períodos

de ausência. Agradeço também ao prof MSc. Ademir Carniel

que sempre esteve disposto a ajudar demonstrando enorme

dedicação e empenho e principalmente .pelos incentivos

para conclusão desta monografia. Também não poderia

terminar esse parágrafo, sem antes citar meu agradecimento

ao meu orientador e amigo, prof. Dr. Antonio Mendes Silva

Filho pelo apoio, incentivo e pela oportunidade que me foi

dada.

Page 5: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

5

Índice

ÍNDICE .................................................................................................................... 5

LISTA DE FIGURAS ............................................................................................. 13

LISTA DE ABREVIATURAS ................................................................................. 15

1. INTRODUÇÃO ............................................................................................... 18

1.1. Contextualização ..................................................................................................... 20

1.2. Justificativa ............................................................................................................. 21

1.3. Objetivo Geral ........................................................................................................ 22

1.4. Objetivo específico. ................................................................................................. 22

1.5. Organização do texto .............................................................................................. 24

2. FUNDAMENTAÇÃO TEÓRICA ..................................................................... 25

2.1. Definição e conceito de Dispositivos Móveis ........................................................ 25

2.1.1. Tipos de Dispositivos ....................................................................................... 25

2.1.2. Características ................................................................................................... 26

2.1.3. Funcionalidade do Dispositivo Móvel .............................................................. 27

2.1.4. Vantagens dos Dispositivos Móveis ................................................................. 27

2.1.5. Inovações Tecnologias e novas aplicações ....................................................... 29

2.2. Wireless ................................................................................................................... 32

2.2.1. O que é wireless? .............................................................................................. 32

2.2.2. Principais benefícios das redes sem fio: ........................................................... 33

2.2.3. Aplicações ........................................................................................................ 33

2.2.4. Opções de Plataforma sem Fio ......................................................................... 34

Page 6: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

6

2.2.5. Opções de Hardware ......................................................................................... 34

2.3. WAP ......................................................................................................................... 36

2.3.1. Definição e Conceito de WAP.......................................................................... 36

2.3.2. O protocolo WAP ............................................................................................. 36

2.3.3. Principais características do protocolo WAP ................................................... 37

2.3.4. Aplicações do Protocolo WAP ......................................................................... 39

2.3.5. Limitações ........................................................................................................ 41

2.3.6. O Modelo WWW ............................................................................................. 42

2.3.7. O Modelo WAP ................................................................................................ 43

2.3.8. Principais funções do proxy WAP: ................................................................... 46

2.3.9. Arquitetura - A Pilha de Protocolos ................................................................. 47

2.3.10. Tipos de redes telefônicas WAP ....................................................................... 49

2.3.11. Exemplos de portadores.................................................................................... 51

2.4. Linguagens de Marcação ....................................................................................... 52

2.4.1. SGML ............................................................................................................... 52

2.4.2. HTML Conceitos Básicos ................................................................................ 53

2.4.3. XML - Linguagem de Marcação Extensível ................................................... 57

2.4.3.1. Comparações entre HTML e XML .......................................................... 58

2.4.3.2. Características da linguagem XML .......................................................... 59

2.4.3.3. Separação entre dados e apresentação ...................................................... 59

2.4.3.4. Principais benefícios da linguagem XML ................................................ 60

2.4.3.5. Tipos de aplicações ................................................................................... 63

2.4.3.6. Exemplo em XML .................................................................................... 65

2.4.4. WML ................................................................................................................ 66

2.4.4.1. Demonstrando o WML ............................................................................. 66

2.4.4.2. Elementos WML ...................................................................................... 67

2.4.4.3. Regras básicas de formatação: .................................................................. 68

2.4.4.4. Programando em WML ............................................................................ 69

2.4.4.5. Aplicações com WML: Variáveis ............................................................ 70

2.4.4.6. Criando um Deck WML ........................................................................... 70

Page 7: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

7

2.4.4.7. Imagens ícones ......................................................................................... 74

2.4.4.8. Imagens wbmp .......................................................................................... 75

2.4.4.9. Acentuação na WML ................................................................................ 76

2.5. Linguagem de programação .................................................................................. 77

2.5.1. PHP ................................................................................................................... 77

2.5.1.1. O que é PHP? ............................................................................................ 77

2.5.1.2. Instalação e configuração em ambiente windows .................................... 77

2.5.1.3. O que pode ser feito com PHP? ................................................................ 79

2.5.1.4. Sintaxe Básica .......................................................................................... 79

2.5.1.5. Separador de instruções ............................................................................ 80

2.5.1.6. Nomes de variáveis ................................................................................... 80

2.5.1.7. Comentários .............................................................................................. 81

2.5.1.8. Criando scripts .......................................................................................... 82

2.5.1.9. Enviando Dados para o Servidor http ....................................................... 83

2.5.1.10. Utilizando formulários HTML ................................................................. 84

2.5.1.11. Outras facilidades do PHP ........................................................................ 86

2.5.2. ASP ................................................................................................................... 88

2.5.2.1. O que é ASP? ............................................................................................ 88

2.5.2.2. Vantagens do ASP .................................................................................... 89

2.5.2.3. Servidor .................................................................................................... 90

2.5.2.4. Banco de Dados ........................................................................................ 91

2.5.2.5. VBScript e ASP ........................................................................................ 91

2.6. Linguagem de Script .............................................................................................. 94

2.6.1. Java Script ........................................................................................................ 94

2.6.1.1. O que é JavaScript? .................................................................................. 94

2.6.1.2. Diferença entre JavaScript e Java ............................................................. 94

2.6.1.3. Executando o JavaScript ........................................................................... 95

2.6.1.4. Suporte a JavaScript ................................................................................. 96

2.6.1.5. Detectar a versão do Browser ................................................................... 98

2.6.1.6. Outras aplicações para o Java Script ...................................................... 102

Page 8: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

8

2.6.2. WMLScript ..................................................................................................... 103

2.6.2.1. O que é o WMLScritp: ........................................................................... 103

2.6.2.2. O que pode ser feito com WMLScript: .................................................. 104

2.6.2.3. Principais características da linguagem WMLScript: ............................ 105

2.6.2.4. Exemplo de programa escrito em WMLScript: ...................................... 106

2.7. Banco de Dados ..................................................................................................... 107

2.7.1. MySQL ........................................................................................................... 107

2.7.1.1. O que é MySQL? .................................................................................... 107

2.7.1.2. Como funciona o MySQL?..................................................................... 108

2.7.1.3. Perguntando (querys): ............................................................................ 109

2.7.1.4. O uso do MySQL com linguagens de programação ............................... 111

2.7.1.5. Acessando o MySQL via PHP................................................................ 111

2.7.1.6. Selecionando a base de dados ................................................................. 112

2.7.1.7. Realizando consultas .............................................................................. 112

2.7.1.8. Apagando o resultado ............................................................................. 113

2.7.1.9. Número de linhas .................................................................................... 113

2.7.1.10. Utilizando os resultados ......................................................................... 113

2.7.1.11. Alterando o ponteiro de um resultado .................................................... 114

2.8. Servidores WEB .................................................................................................... 115

2.8.1. Personal Web Server - PWS .......................................................................... 115

2.8.1.1. O que é PWS .......................................................................................... 115

2.8.1.2. Suporte do Servidor PWS. ...................................................................... 115

2.8.1.3. Requisitos para instalação ...................................................................... 116

2.8.2. Tomcat ............................................................................................................ 117

2.8.2.1. O Software Tomcat ................................................................................. 117

2.8.2.2. Linguagens: Java, HTML e XML .......................................................... 117

2.8.2.3. Servlets e Java Server Pages ................................................................... 118

2.8.2.4. O servidor Tomcat .................................................................................. 118

2.8.2.5. Ponto de vista técnico ............................................................................. 119

2.8.2.6. Ponto de vista operacional ...................................................................... 119

Page 9: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

9

2.8.3. Apache/PHP em Windows ............................................................................. 120

2.8.3.1. Demonstrando o Apache ........................................................................ 120

2.8.3.2. Hardware necessário ............................................................................... 120

2.8.3.3. Características técnicas ........................................................................... 120

3. METODOLOGIA ( MATERIAIS E MÉTODOS ) ........................................... 122

3.1. Métodos ................................................................................................................. 122

3.2. Materiais ................................................................................................................ 123

3.2.1. Software .......................................................................................................... 123

3.2.2. Equipamentos ................................................................................................. 125

4. TECNOLOGIAS ENVOLVIDAS NO ESTUDO DE CASO ........................... 126

4.1. Wireless ................................................................................................................. 126

4.2. Linguagem para web ............................................................................................ 126

4.3. Servidor WEB ....................................................................................................... 127

4.4. Banco de dados ..................................................................................................... 127

5. DESENVOLVIMENTO DO ESTUDO DE CASO “ENQUETE ON LINE” .... 129

5.1. Descrição do Sistema ............................................................................................ 129

5.2. Visão Geral do Sistema ........................................................................................ 129

5.3. Diagrama de Use Case .......................................................................................... 130

5.4. Diagrama de Classes ............................................................................................. 132

5.5. Dicionário de Dados ............................................................................................. 133

5.6. Fluxo de Chamada das Telas ............................................................................... 133

Page 10: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

10

5.7. Layout das Telas ................................................................................................... 134

5.7.1. WEB ............................................................................................................... 134

5.7.2. WAP ............................................................................................................... 136

5.8. Relação de Programas .......................................................................................... 140

5.9. Relação de Arquivos ............................................................................................. 140

6. RESULTADOS OBTIDOS ........................................................................... 141

6.1. Simuladores ........................................................................................................... 141

6.2. Teste de Micronavegadores. ................................................................................ 144

6.3. WEB Browser ....................................................................................................... 144

6.4. Servidores .............................................................................................................. 145

6.4.1. Apache ............................................................................................................ 145

6.4.2. PWS ................................................................................................................ 146

6.4.3. Tomcat ............................................................................................................ 147

6.5. Linguagem de Programação ................................................................................ 148

6.5.1. PHP ................................................................................................................. 148

6.5.2. ASP ................................................................................................................. 149

6.5.3. WML/ WMLScript ......................................................................................... 149

6.5.4. JavaScript ....................................................................................................... 149

6.6. Banco de Dados ..................................................................................................... 150

6.6.1. MySQL ........................................................................................................... 150

7. CONCLUSÃO .............................................................................................. 152

8. TRABALHOS FUTUROS ............................................................................ 155

8.1. Validação do usuário ............................................................................................ 155

Page 11: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

11

8.2. Segurança .............................................................................................................. 155

8.3. Relatórios ............................................................................................................... 155

9. REFERÊNCIAS BIBLIOGRÁFICAS ............................................................ 156

9.1. Bibliografias .......................................................................................................... 156

9.2. Bibliografias Auxiliares ........................................................................................ 160

10. APÊNDICE I INSTALAÇÃO PWS / TOMCAT / APACHE ...................... 164

10.1. PWS ................................................................................................................... 164

10.1.1. Instalando o PWS ........................................................................................... 164

10.1.2. Configurando o PWS ...................................................................................... 164

10.2. Tomcat ............................................................................................................... 167

10.2.1. Instalando o Tomcat ....................................................................................... 167

10.2.2. Instalação do servidor de JSP no IIS .............................................................. 168

10.2.3. Para iniciar o Tomcat:..................................................................................... 169

10.3. Apache ............................................................................................................... 170

10.3.1. Obtendo o Apache .......................................................................................... 171

10.3.2. Instalando o Apache ....................................................................................... 172

10.3.3. Iniciando/parando o Apache (com Win95/98/ME/XP) .................................. 173

10.3.4. Testando a instalação do Apache.................................................................... 174

11. APÊNDICE II SCRIPT DO BANCO DE DADOS ENQUETE” ................. 176

11.1. Banco de Dados enquet .................................................................................... 176

12. APÊNDICE III CÓDIGO FONTE “ENQUETE ON LINE” ........................ 177

12.1. Arquivo Index.Wml .......................................................................................... 177

12.2. Arquivo index2.php .......................................................................................... 179

Page 12: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

12

12.3. Arquivo Cria.php ............................................................................................. 183

12.4. Arquivo Enquete.php ....................................................................................... 189

12.5. Arquivo Enquetes.php ..................................................................................... 191

12.6. Arquivo Vota.php ............................................................................................. 193

12.7. Arquivo Salva_Voto.php .................................................................................. 198

12.8. Arquivo Resultado.php .................................................................................... 200

Page 13: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

13

Lista de Figuras

FIGURA 1 TIPOS DE PERSONAL DIGITAL ASSISTANT (PDA) ................................ 25

FIGURA 2 TIPOS CELULARES ....................................................................................... 26

FIGURA 3 TIPOS DE DISPOSITIVOS MÓVEIS VOLTADOS PARA EMPRESAS .... 28

FIGURA 4 SITE DA GOOGLE PARA DISPOSITIVOS MÓVEIS. ................................. 29

FIGURA 5 TECLAS DE PLAY, PAUSE E TROCA DE FAIXA. .................................... 31

FIGURA 6 REDE WIRELESS ........................................................................................... 32

FIGURA 7 MODELO WAP E MODELO WWW ............................................................ 44

FIGURA 8 MODELO WAP ............................................................................................... 45

FIGURA 9 EXEMPLO DE UMA REDE WAP ................................................................. 47

FIGURA 10 CAMADAS DO PROTOCOLO WAP ........................................................... 48

FIGURA 11 EXEMPLO DE UM DECK ............................................................................. 67

FIGURA 12 EXEMPLO DOCUMENTO WML ................................................................. 69

FIGURA 13 CARTÃO LOGIN ........................................................................................... 71

FIGURA 14 CARTÃO SENHA .......................................................................................... 72

FIGURA 15 CARTÃO RESULTADO ................................................................................ 73

FIGURA 16 CARTÃOEXEMPLO IMAGEM .................................................................... 74

FIGURA 17CARTÃO IMAGEM LOGO DIN .................................................................... 75

FIGURA 18 RESULTADO DA EXECUÇÃO DA FUNÇÃO PHPINFO(). ..................... 78

FIGURA 19 SCRIPT PHP ................................................................................................. 82

FIGURA 20 APRESENTAÇÃO DO EXEMPLO SCRIPT1 ............................................. 82

FIGURA 21 SUBMIT .......................................................................................................... 85

FIGURA 22 ENVIA TEXTO ............................................................................................... 85

FIGURA 23 RETORNA ..................................................................................................... 85

FIGURA 24 VERSÃO DO BROWSER EM JAVASCRIPT .............................................. 99

FIGURA 25 CRIA UMA JANELA JAVASCRIPT ......................................................... 101

FIGURA 26 VISÃO DA JANELA JAVASCRIPT .......................................................... 101

FIGURA 27 VISÃO GERAL DO SISTEMA ................................................................... 129

FIGURA 28 USE CASE VISÃO DO ADMINISTRADOR ............................................. 130

FIGURA 29 USE CASE VISÃO DOS USUÁRIOS WEB .............................................. 131

Page 14: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

14

FIGURA 30 USE CASE VISÃO DOS USUÁRIOS WAP ............................................... 131

FIGURA 31 DIAGRAMA DE CLASSES ......................................................................... 132

FIGURA 32 FLUXO DE CHAMADA DAS TELAS ...................................................... 133

FIGURA 33 PÁGINA PRINCIPAL ................................................................................. 134

FIGURA 34 CRIAÇÃO DA ENQUETE .......................................................................... 134

FIGURA 35 VOTAÇÃO ................................................................................................... 135

FIGURA 36 RESULTADO................................................................................................ 135

FIGURA 37 PÁGINA DE APRESENTAÇÃO ................................................................ 136

FIGURA 38 SELECIONA ENQUETE ............................................................................. 137

FIGURA 39 SOLICITAÇÃO DE CONFIRMAÇÃO ....................................................... 138

FIGURA 40 RESPOSTA E FINALIZAÇÃO .................................................................... 139

FIGURA 41 ARQUITETURA DO SISTEMA SGBD ..................................................... 140

FIGURA 42 OPENWAVE SDK 6.22 ............................................................................... 141

FIGURA 43 NOKIA MOBILE BROWSER ..................................................................... 141

FIGURA 44 NOKIA 5100 SDK V. 1.0 ............................................................................. 141

FIGURA 45 NOKIA .......................................................................................................... 142

FIGURA 46 WINWAP SMARTPHONE .......................................................................... 142

FIGURA 47 NOKIA .......................................................................................................... 142

FIGURA 48 NOKIA WAP GATEWAY SIMULATOR V 4.0 ......................................... 142

FIGURA 49 NOKIA MOBILE INTERNET TOOLKIT V 4.0 MAY/2003 ...................... 143

FIGURA 50 NAVEGADOR OPERA VER. 7.53 .............................................................. 144

FIGURA 51 INSTALAÇÃO SERVIDOR APACHE ........................................................ 145

FIGURA 52 INSTALAÇÃO DO PWS ............................................................................. 146

FIGURA 53 INSTALAÇÃO DO PHP .............................................................................. 148

FIGURA 54 VERIFICAÇÃO DO MYSQL ....................................................................... 150

FIGURA 55 INSTALAÇÃO DO MYSQL ........................................................................ 151

FIGURA 56 BEM VINDO A INSTALAÇÃO DO APACHE ......................................... 172

FIGURA 57 INFORMAÇÕES DO SERVIDOR .............................................................. 173

FIGURA 58 APACHE EM EXECUÇÃO......................................................................... 174

FIGURA 59 TESTE DE INSTALAÇÃO DO APACHE .................................................. 175

Page 15: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

15

Lista de Abreviaturas

API Application Programming Interface

BMP - Bitmap

CDMA Code Division Multiple Access

CDPD Cellular Digital Packet Data

CGI Common Gateway Interface

CHTML Compact HyperText Markup Language

CSD Circuit Switched Cellular Data

CSS Cascade StyleSheets

DOM Document Object Model

DSSS Direct Sequence Spread Spectrum

DTD Data Type Definitions

ECMA European Computer Manufacturers Association

EDGE Enhanced Data Rates for Global Evolution

EDI Eletronic Data Interchange

FDMA Frequency Division Multiple Access

GML General Markup Language

GPRS General Packet Radio Services

GSM Global System for Mobile Communication

HDML Handheld Device Markup Language

HTML HyperText Markup Language

HTTP HyperText Transfer Protocol

ICMP Internet Control Message Protocol

IETF - Internet Engineering Task Force

ISO International Standard Organization

ITTP Intelligent Terminal Transfer Protocol

MAC Message Authentication Code

MDI Mobile Data Initiative

MIT Massachusetts Institute of Technology

Page 16: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

16

ML Markup Language

MMI Man-Machine Interface

NTP Network Time Protocol

PDA Personal Digital Assistant

PDU Protocol Data Unit

SDK Software Development Kit

SGML Standardized Generalized Markup Language

SMS Smart Messaging Service

SSL Secure Socket Layer

TCP Transmission Control Protocol

TDMA Time Division Multiple Access

TLS Transport Layer Security

TTML Tagged Text Markup Language

UI User Interface

URI Universal Resource Identifier

URL Universal Resource Locator

W3 Consortium Consortium - World Wide Web

WAE Wireless Application Environment

WAP l Wireless Application Protoco

WBMP Wireless Bitmap

W-CDMA Wireless Code Division Multiple Access

WCMP Wireless Control Message Protocol

WDP Wireless Datagram Protocol

WEB Simplificação do termo WWW

WML Wireless Markup Language

WSP Wireless Session Protocol

WTA Wireless Telephony Applications

WTAI Wireless Telephony Application Interface

WTLS Wireless Transport Layer Security

WTML – Web Test Markup Language

WTP Wireless Transaction Protocol

Page 17: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

17

WWW World Wide Web

XHTML - eXtensible HyperText Markup Language

XML Extensible Markup Language

XSL XML Style Language

XSLT XML Style Language Transformation

Page 18: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

18

1. Introdução

Givanildo Francisco da Silva Junior

A humanidade sempre buscou a rapidez na troca de informações, desde as

eras mais remotas. Com o advento do radio e com a primeira mensagem enviada

em 1896, por Guillermo Marconi, segundo Taurion (2002), a comunicação nunca

mais precisou de um meio físico para transportá-la. Com isso a comunicação pelo

rádio revolucionou a humanidade, pois agora, podemos nos comunicar enviando

mensagens de um lugar a outro sem a necessidade de nos deslocarmos.

Com o surgimento da telefonia móvel por Martin Cooper, inventor do celular

e da Internet, ainda segundo Taurion (2002), surge uma nova revolução. A

telefonia móvel tornou-se extremamente acessível e, conseqüentemente, popular

e de fácil operação, estabelecendo uma comunicação dinâmica e eficaz de grande

utilidade estendendo-se a todas as camadas sociais. Entretanto, podemos dizer

que ainda estamos diante de uma transformação gigantesca por acontecer, na

qual o computador tornar-se-á ainda mais virtualizado. É nesse sentido que as

pesquisas de novas tecnologias têm se desenvolvido, trabalhando para atingir

objetivos diferentes de formas diferentes em hardware, software, protocolos de

comunicação, sistemas operacionais, redes, redes sem fio e assim por diante.

Nessa explosão de tecnologias, a comunicação sem fio tem se destacado e

o celular é o dispositivo móvel mais utilizado para conexão com a Internet e

comunicação entre as pessoas, sendo sem dúvida, a mobilidade fator de

fundamental importância, e sua conveniência é o atrativo principal. Essas

facilidades nos permitem fazer compras pela Web em lojas virtuais sem

precisarmos nos deslocar até um ponto fixo onde tenha um micro computador,

gerando economia de tempo e maior conforto. Segundo Lapa (2004) atualmente,

existem mais usuários de celulares e equipamentos móveis do que usuários de

PCs. A proliferação de dispositivos móvel tende a continuar e aliado a essa

demanda a evolução da tecnologia da comunicação também está cada vez mais

Page 19: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

19

potente em termos de capacidade de transmissão, permitindo tráfego de imagens

e vídeos de alta resolução, e dados.

Segundo Dias (2003), com usuários cada vez mais dependentes dos

serviços oferecidos via Internet onde milhões ficam muitas vezes distantes, presos

ao trânsito ou em lugares onde não há um cabo para a conexão, a troca de

informações torna-se um empecilho e para sanar este problema surge, então, a

computação móvel objetivando permitir que usuários tenham acesso à rede,

independente de sua localização física. Segundo Silva Junior (2004), quando se

utiliza um aparelho móvel, normalmente, o ambiente onde nos encontramos é

diferente de um computador de mesa. Geralmente, estamos na rua, no carro, na

reunião, no metrô, elevador, com atenção compartilhada entre aparelho e outras

atividades. Portanto, as aplicações feitas para o mundo wireless precisam

considerar tais diferenças. A interface, a interação, os movimentos de mão, a

atenção do usuário, tudo é diferente. Dessa forma, não basta colocar HTML ou

algo similar e imaginar que todos os problemas estão resolvidos. Precisamos criar

aplicações adequadas a essas necessidades.

Considerando as tecnologias existentes para o desenvolvimento de

aplicações para dispositivos móveis, o crescente avanço das tecnologias das

ferramentas de desenvolvimento de software e a demanda no mercado wireless

em nível mundial, torna-se importante identificar as tecnologias necessárias ao

desenvolvimento de aplicações do tipo wireless, bem como avaliar a

adequabilidade de seu uso em diversos contextos.

Page 20: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

20

1.1. Contextualização

Atualmente a mobilidade segundo Next Generation (2005) é uma presença

constante no cotidiano das sociedades modernas, tanto em casa, como no

trabalho: hoje, mais do que nunca, a informação está em trânsito. O conceito de

mobilidade está hoje muito além dos serviços e aplicações oferecidas por

operadores móveis celulares.

Assimilar essa mudança e transformá-la em oportunidade é um diferencial

que garante espaço para profissionais e empresas conectadas a esse conceito. A

mobilidade apresenta-se hoje como uma das características intrínsecas e mais

marcantes no desenvolvimento das sociedades modernas, e por isso, é cada vez

mais um componente importante nos processos de negócios e nos modelos e

estilos de vida.

Considerando essa premissa e diante de tal realidade, apresentamos

nessa monografia um estudo das tecnologias envolvidas no desenvolvimento de

aplicações móveis, onde foram pesquisados vários ambientes, sendo concluído

como uma aplicação de Estudo de Caso denominado Enquete on line. Nesse

trabalho foram utilizados ambientes como, WML e WMLScript, Servidor Apache,

PHP, e Banco de Dados MySQL.

A aplicação “Enquete On Line” pode ser utilizada com vários temas

diferentes, porém somente uma por vez pode estar ativo. Exemplo: Qual a sua

opinião quanto ao aborto? Quem vai ganhar a copa de 2006? Em quem você

votaria para Presidente?, etc.

Esse estudo de caso, baseado em pesquisa de opinião publica e

denominado “Enquete On Line” está estruturada da seguinte forma:

Page 21: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

21

Um ambiente WEB onde o administrador do sistema pode gerar uma

enquete e disponibilizá-la para os usuários responde-las

Um ambiente Móvel (celular) onde o usuário pode se conectar a WEB e

receberá uma pesquisa de opinião, devendo fazer sua seleção. Apos a

seleção o usuário recebe a informação do percentual recebido pela sua

opção até o momento.

Um ambiente WEB onde o administrador e usuários poderão consultar o

andamento da pesquisa, analisando a sua evolução. A quantidade de votos

recebidos por cada opção e total geral, percentualmente e graficamente.

Um banco de dados onde ficará registrada todas as enquetes realizadas

facilitando assim a emissão de relatórios.

Outras aplicações poderiam ser desenvolvidas a partir deste mesmo

ambiente de desenvolvimento e produção. Aplicações na área da saúde, ensino-

aprendizagem, etc.

1.2. Justificativa

Com o direcionamento voltado à informação cientifica, pretende-se

apresentar o trabalho realizado e implementar um estudo de caso, com o objetivo

de esclarecimento do tema, Comunicação entre dispositivos móveis e

servidores utilizando tecnologia WML/WAP, cujo foco é demonstrar conceitos

das tecnologias envolvidas para o desenvolvimento de aplicações voltadas a

dispositivos móveis.

Diante da necessidade de atender requisitos do curso de Especialização

em Desenvolvimento de Sistemas para WEB, oferecido pelo Departamento de

Page 22: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

22

Informática da Universidade Estadual de Maringá, e por considerar fundamental

entender as soluções tecnológicas que o mundo competitivo em que vivemos

apresenta e almejando uma noção do mercado e da importância destas

tecnologias para saber aplicá-las corretamente nas mais diversas atividades, esse

estudo torna-se justificável.

1.3. Objetivo Geral

O objetivo principal deste trabalho é mostrar um estudo das linguagens

WML, WMLScript e PHP juntamente com servidor WEB e o Banco de Dados

MySql, abordando seus conceitos, fundamentos, aplicações e tecnologias para o

desenvolvimento de uma aplicação utilizando dispositivos moveis, em particular,

no uso de celulares.

Além disso, também pretendo mostrar as facilidades e dificuldades no

desenvolvimento de aplicações para dispositivos móveis, e para tanto, será

implementando um estudo de caso utilizando as tecnologias estudadas, onde

então, poderemos avaliar desempenho, praticidade, produtividade na criação de

soluções para dispositivos móveis.

1.4. Objetivo específico.

Estudar detalhadamente tecnologias que possam ser empregadas no

desenvolvimento de aplicações wireless, investigando quão apropriadas elas são

em situações diversas. Tecnologias como Wap em conjunto com a linguagem

WML, WMLScript e um servidor WEB dando suporte à linguagem PHP associada

à utilização de banco de dados MySQL. Para complementarmos a teoria,

Page 23: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

23

continuaremos com um estudo de caso desenvolvendo um aplicativo onde os

usuários de dispositivos móveis poderão fazer uma votação selecionando

diferentes opções através de conexão wireless via, celular / Web enviando dados

ao DataBase, e recebendo dados WEB / celular. Para facilitar a avaliação desse

processo, concluiremos com uma interface web on line para monitoração do

Banco de Dados.MySQL disponível no servidor.

Para o cumprimento dessa meta, e desenvolvimento deste trabalho

apresentamos a seqüência abaixo.

Apresentar um estudo dos tipos de dispositivos móveis.

Apresentar um estudo dos protocolos usados pelos dispositivos

Apresentar um estudo da tecnologia empregada para comunicação

wireless: Tecnologia GSM

Apresentar um estudo das linguagens utilizadas em dispositivos móveis:

linguagem WML e WMLScript .

Apresentar um estudo da tecnologia utilizada para conexão wireless/web e

web / wireless, como o protocolo WAP

Apresentar um estudo do tipo do servidor web: servidor Personal Web

Server, servidor Tomcat e Servidor Apache

Apresentar um estudo do banco de dados : Mysql

Apresentar um estudo da linguagem web: HTML e XML SGML

Apresentar um estudo da linguagem Scritp: JavaScript

Apresentar um estudo da linguagem web com interação ao banco de

dados: PHP e ASP

Construção e implementação de um banco de dados. Essa base de dados

servirá como repositório para as pesquisas de opinião e análise dos dados.

Construção e implementação de sistema web para monitoração on line.

Essa aplicação ilustra como será possível monitorar uma pesquisa de

Page 24: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

24

opinião em tempo real, bem como definir as opções para seleção dos itens

para os usuários opinarem.

Construção e implementação de sistema de pesquisa para dispositivos

móveis. aplicação que será chamada de “Enquete on-line” , onde o usuário

deverá interagir pela Internet com a base de dados MySQL através dos

dispositivos móveis que já oferecem suporte à Internet.

1.5. Organização do texto

Além do capitulo introdutório onde também foi colocado o objetivo desta

monografia, o trabalho está composto por 7 capítulos distribuídos da seguinte

forma:

O capitulo 2 descreve a fundamentação teórica necessária, dividido em 9

sub-itens:

O item 3 descreve sobre Metodologia, “Materiais e Metodos” explicando

como foi feito a monografia e o que foi utlizado.

O item 4 descreve sobre Tecnologia Envolvidas no Estudo de Caso.

O item 5 descreve sobre Desenvolvimento do Estudo de Caso.

O item 6 descreve sobre Resultados Obtidos.

O item 7 descreve sobre Conclusão.

O item 8 descreve sobre Trabalhos Futuros.

O item 9 relaciona as Referencias bibliográfica e bibliograifa consultada.

O item 10 descreve sobre Instalações dos Servidores Web

O item 11 descreve sobre Script do Banco de Dados.

O item 12 relaciona o Código fonte do Estudo de Caso “Enquete”.

Page 25: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

25

2. Fundamentação Teórica

2.1. Definição e conceito de Dispositivos Móveis

Novas formas de comunicações estão sendo proporcionadas por redes

móveis de dados, usando dispositivos móveis, que nos oferecem vantagens como

associação, mobilidade/portabilidade. Mobilidade é o termo utilizado para

identificar dispositivos que podem ser operados a distancia ou sem fio.

Dispositivos que podem ser desde um simples bip até os mais modernos

Pockets. Portabilidade descreve a facilidade de instalações, atualizações e

compatibilidade com outros sistemas.

2.1.1. Tipos de Dispositivos

O Smartphone, conhecido como Stinger, baseados no sistema operacional

Microsoft Windows Powered Smartphone

Personal Digital Assistant (PDA) - um computador manual composto de

uma caneta, com recursos internos e organizacionais de comunicações.

Palmtop: termo original para PDA's sem teclado físico embutido.

Handheld: termo original para PDA's com teclado físico embutido.

WinCE ou PocketPC: designam tanto os dispositivos que rodam os SO's de

mesmo nome, como são os nomes de SO's de propriedade da Microsoft.

Na Figura 1 e na Figura 2, temos exemplos de PDAs e celulares.

Figura 1 Tipos de Personal Digital Assistant (PDA)

Page 26: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

26

Figura 2 Tipos Celulares

Segundo Moon (2000), no caso específico do dispositivo celular, eles

demonstram uma nova forma de comunicação de dados, pois embora ainda sejam

usados principalmente para a transmissão de voz, as empresas de celulares

desenvolveram recursos para utilizar a rede existente para transmitir também

dados. Os celulares estão tornando-se apêndices do computador, possuindo a

vantagem do tamanho reduzido e dando versatilidade e velocidade à coleta dos

dados.

2.1.2. Características

Conforme Samy Silva (2004) os dispositivos sem fios e portáteis, por suas

características compactas, utilizam-se de um micro browser para navegar pelos

conteúdos Web. As necessidades de hardware, CPU e memórias para esses

micro browser são reduzidas ao mínimo. Também a linguagem de marcação dos

documentos a serem apresentados nos displays dos aparelhos, segue normas

rígidas e estritas. E ainda temos a limitação de banda. Tudo isso iremos discutir no

decorrer deste trabalho.

Page 27: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

27

2.1.3. Funcionalidade do Dispositivo Móvel

Segundo Forta (2001) embora os dispositivos atuais possuem telas

gráficas e maiores, a maioria dos dispositivos apresentam interfaces limitadas

com onze linhas de texto vertical com dezesseis caracteres na horizontal sendo

que a maioria ainda apresenta apenas quatro ou cinco linhas de texto na vertical,

contudo ainda o teclado é bastante inadequado para utilização, na maioria das

vezes é necessário digitar três vezes para obter a letra desejada.

Quanto à navegação a maioria possui de dois a quatro botões de

navegação, dois para rolagem da tela, um para select e apenas um para interação

com o menu.

A entrada limitada de dados é um motivo que deve ser ponderado no

desenvolvimento das aplicações. Em geral todos os dispositivos possuem

recursos e limitações as quais devemos saber lidar.

2.1.4. Vantagens dos Dispositivos Móveis

Para aqueles que consomem grande parte do seu tempo trabalhando

remotamente, estes equipamentos são versáteis, dedicados, multifuncionais e de

uso genérico. Do ponto de vista empresarial, eles são ótimos geradores de

informações, podendo ser utilizados desde a automação de processos até a coleta

de informações estratégicas. Alguns exemplos são mostrados na Figura 3 abaixo.

Page 28: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

28

Figura 3 Tipos de Dispositivos móveis voltados para empresas

Segundo Pekus (2002), estes aparelhos também representam vantagens

em relação a outros computadores, como:

dimensões: além de mais leves e simples de manusear, podem ser

transportados em qualquer espaço;

consumo de energia: por serem dispositivos mais compactos e econômicos,

o consumo de energia e tempo de recarga são menores e a autonomia em

campo é maior;

ganho de tempo e eficiência: o tempo de carga de aplicações embutidas

nestes dispositivos é inferior quando comparado a outros equipamentos;

custos operacionais e expansão programada: por serem mais compactos e

voltados para atividades específicas, estes dispositivos não contam com

vários circuitos e periféricos internos, como por exemplo disco rígido e

discos flexíveis, diminuindo de forma evidente o custo com manutenção ou

programas desnecessários.

Page 29: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

29

2.1.5. Inovações Tecnologias e novas aplicações

Segundo IT web (2005) a Google anunciou um serviço teste onde é

possível encontrar estabelecimentos via celulares e outros aplicativos sem fio. O

usuário pode procurar por restaurantes, lojas e outros estabelecimentos via

celulares que navegam na web e outros aplicativos móveis.

O serviço estará disponível nos EUA e Canadá no endereço

http://mobile.google.com/local, ou na página principal de buscas. O Google Local

para aparelhos móveis vai possibilitar que os usuários vejam 10 resultados de

busca, com endereços, telefones e indicações de como chegar ao local de carro.

Até o momento, o serviço não apresenta anúncios, conforme Figura 4 abaixo.

Figura 4 Site da Google para dispositivos móveis.

O Yahoo, que briga diretamente com o Google pelo mercado de buscas,

lançou um serviço desse tipo em outubro de 2004, porem é necessário se

cadastrar.

Page 30: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

30

Segundo a Texas Instruments (2003), maior fabricante de processadores

para telefones celulares, disponibilizou seus projetos aos fabricantes de

dispositivos portáteis, com tecnologia necessária parar integrar GSM/GPRS,

802.11 e Bluetooth.

O GSM, ou Global System for Mobile Communications, é a tecnologia de

telefonia celular mais usada no mundo. O GPRS, ou General Packet Rádio

Service, é sua versão avançada que permite aos usuários acessarem a Internet

em velocidades equivalentes ao de um modem convencional doméstico.

A tecnologia 802.11, também conhecida como Wi-Fi, usa ondas de rádio

para transmitir dados a velocidades elevadas em áreas limitadas a um raio de 100

metros do ponto de origem.

O Bluetooth é uma tecnologia de transmissão de dados à curta distância

que pode ser usada para substituir fios e cabos como os usados para conectar

impressoras em computadores

Para exemplificar, isso permite uma chamada telefônica em um telefone

sem fio e acesso à Internet por meio de uma conexão em banda larga sem uso de

cabos, tudo no mesmo aparelho.

Conforme Rigonatti ( 2004 ), novidades não param de chegar ao mercado,

cada vez mais tecnologias avançadas são embutidas nos dispositivos móveis.

Uma das últimas novidades promete ser um aparelho conhecido até agora como

SDA Musica Handset a ser lançado em breve no mercado nacional pela empresa

T-Mobile. O Aparelho celular, traz como novidade o foco no entretenimento

multimídia. Com sistema Windows Móbile para SmartPhones, acompanha 64 MB

de Memória ROM e 32 MB RAM. A novidade do aparelho fica para os botões

multimídia entre a tela e o teclado, conforme Figura 5 abaixo.

Page 31: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

31

Figura 5 Teclas de Play, Pause e troca de Faixa.

O aparelho conta com MP3 player que também suporta os formatos,

WMA, WAV, AMR-NB, MID, pesa 100g, tem dimensões super reduzidas e

autonomia para 240 minutos de conversação ou 200 horas em Standy by.

Page 32: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

32

2.2. Wireless

Neste capitulo será apresentado o que é um dispositivo Wireless (sem

fio), como funciona, seus benefícios, e aplicações.

2.2.1. O que é wireless?

Conforme Zanetti (2004) e Rischpater (2000) Wireless é uma tecnologia

que permite a conexão entre diferentes equipamentos sem a necessidade de

nenhum tipo de conexão física, ou seja, sem a necessidade do uso de cabos,

através da instalação de uma antena receptora e transmissora

Muitas das redes sem fio comerciais são baseadas em redes celulares

existentes, que dividem uma região geográfica em células. Este caminho da rede

sem fio para a Internet com fio envolve saltos da estação rádio base de uma

célula, por meio de um ou mais centros de comutação, para um gateway e,

finalmente, para um destino na Internet.

A Figura 6 mostra um exemplo de uma simples rede wireless LAN.

Figura 6 Rede Wireless

Page 33: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

33

2.2.2. Principais benefícios das redes sem fio:

Mobilidade;

Instalação rápida e simples;

Flexibilidade;

Custo reduzido;

Escalabilidade;

2.2.3. Aplicações

O poder e a flexibilidade das redes sem fio, permitem uma série de

aplicações práticas como:

doutores e enfermeiras com notebooks obtendo instantaneamente

informações sobre pacientes;

estudantes, durante a aula, acessando a Internet para consultar o

catálogo da Biblioteca;

gerentes de rede em ambientes dinâmicos, podendo realizar

mudanças e extensões com menores preocupações;

gerentes de rede instalando redes locais sem fio em prédios velhos

por preços muito mais acessíveis;

redes locais sem fio ligando as estações de trabalho nos andares

de uma fábrica e auxiliando na coleta de dados de máquinas;

através de dispositivos móveis, em qualquer lugar a qualquer hora,

pode-se consultar qualquer tipo de notícia, verificar condições de

tempo e trânsito,verificar e-mails, pagar hospedagens e outras

compras.

Page 34: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

34

2.2.4. Opções de Plataforma sem Fio

Existem três plataformas que podem ser utilizadas para o

desenvolvimento de aplicativos para redes sem fio.

WEB - World Wide Web: Rede mundial baseada em padrões de dados

abertos que alimentou uma explosão de intercâmbio de informações.

WAP - Wireless Application Protocol: Baseia-se no modelo adotado pela

WEB e será o objeto de estudo desta monografia.

HDML - Handheld Device Markup Language: Precedendo o WAP,

contribuiu para a criação do WML e é atualmente mantida pela Phone.com como

um padrão aberto separado, competindo com o padrão WAP.

2.2.5. Opções de Hardware

Os principais terminais sem fio com acesso à WEB, são agrupados em 4

categorias onde o tamanho e a faixa de preço determinam quais são os recursos

que cada dispositivo pode oferecer.

Supertelefones: Oferecem uma plataforma de computação baseada em Personal

Digital Assistant(PDA) combinada com hardware de telefone celular.

Telefones Inteligentes: São extensões do conceito de produto de telefone celular

existente, combinando as melhores características do telefone digital com a

capacidade de obter dados da Internet usando WAP ou HDML.

Page 35: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

35

PDAs: Tabletes eletrônicos do tamanho da palma da mão que aceitam módulos

encaixáveis ou cartões de PC que permitem aos dispositivos acessar serviços

sem fio de redes digitais.

Laptops: Embora comparáveis aos seus correspondentes de mesa, são limitados

principalmente pela rede sem fio e normalmente são operados quando o usuário

está parado.

Page 36: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

36

2.3. WAP

Neste capitulo será apresentado o que é o protocolo WAP, principais

características, aplicações, limitações e uma comparação do modelo WAP com o

modelo WWW.

2.3.1. Definição e Conceito de WAP

Segundo Oliveira (2000), o WAP é uma especificação aberta e global, que

visa permitir que usuários de dispositivos móveis, sem fio, acessem facilmente

informações e serviços de forma instantânea. A comunicação pode ser feita

através de ondas de rádio via satélite ou antenas. Embora possa ser utilizado em

palmtops, handhelds e notebooks equipados com modem sem fio, o telefone

celular é o dispositivo móvel mais usado, com larga vantagem, para acessar a

Internet através de WAP.

O WAP adotou as melhores características de infra-estrutura WEB e

aperfeiçoou sua operação permitindo a clientes e servidores intercambiar a

maioria dos dados usando a mínima quantidade de largura de banda. Por ter sido

criado especificamente para ser utilizado em dispositivos sem fio tornou-se mais

eficiente que os protocolos tradicionais para este tipo de aplicação.

2.3.2. O protocolo WAP

Ainda segundo Oliveira (2000), e, também citando Denega (2000) o

protocolo WAP é basicamente uma pilha de protocolos de comunicação que tem

como meta unir um servidor de aplicação a um dispositivo sem fio. Este conjunto

de protocolos especifica dois elementos essenciais para a comunicação sem

fio: um protocolo de comunicação fim-a-fim e um ambiente de aplicação baseado

em visualizadores (browser). Quando o browser WAP é usado para solicitar uma

informação, ocorrem os seguintes passos:

Page 37: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

37

O pedido da Universal Resource Locator (URL) é enviado através da rede

wireless para o gateway WAP, usando os protocolos WAP;

O gateway WAP decodifica a solicitação recebida do protocolo Wireless

Session Protocol (WSP) (no padrão WAP) para o protocolo da Internet HyperText

Transfer Protocol (HTTP) e envia essa requisição para o web server através da

internet;

Ao ler a requisição, o web server retorna uma resposta com conteúdo

Wireless Markup Language (WML) para o gatewayWAP que o converte para o

padrão bytecode do WAP, codificando a informação para um formato binário de

forma que possa ser usada menos largura de banda.

O conteúdo codificado é criptografado e enviado através da rede wireless

para o browser WAP.

Em síntese, o gateway WAP recebe o conteúdo WML do servidor WEB e

o browser recebe a resposta do gateway WAP e a exibe no display do dispositivo

WAP. Este conteúdo interpretado e exibido no display é criado através da

linguagem WML, abordada com mais detalhes nos capítulos seguintes.

2.3.3. Principais características do protocolo WAP

• Um modelo de programação baseado fortemente no modelo de

programação WEB existente.

Page 38: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

38

• Independência dos dispositivos: uma linguagem de marcação que

obedece aos padrões Extensible Markup Language (XML), projetada para criar

aplicativos WAP independentes de qualquer dispositivo particular. Especifica a

funcionalidade mínima que um dispositivo deve ter e foi projetado para aceitar

funcionalidade extra sobre este mínimo.

• A linguagem de script WMLScript, baseada na European Computer

Manufacturers Association (ECMA), ECMAScript, para estender a capacidade da

WML.

• A especificação de um micro-navegador que define como a WML e a

WMLScript devem ser interpretadas no equipamento portátil e apresentadas ao

usuário.

• Interoperabilidade: qualquer componente construído para ser compatível

com a especificação WAP pode interoperar com qualquer outro componente WAP

compatível.

• Um sistema adequado para os aplicativos de telefonia sem fio Wireless

Telephony Applications (WTA), propiciando funções que as operadoras de

telefonia possam usar para integrar as funções de telefonia e micronavegação de

um equipamento WAP.

• Otimização de Transferência de Dados: houve interesse em otimizar os

protocolos existentes, tais como o HTTP e o TCP, para maximizar a transferência

de dados.

• Independência de Sistema Operacional: como este protocolo é

dependente de padrões de comunicação ao invés de estarem baseados nas

plataformas, qualquer plataforma capaz de implementar esses padrões de

comunicação será compatível com WAP.

Page 39: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

39

• Uma pilha de protocolos leve, projetada para minimizar a exigência de

largura de banda, trabalhar com uma diversidade de portadoras sem fio e propiciar

conexões seguras.

2.3.4. Aplicações do Protocolo WAP

Alguns sites WAP oferecem uma grande quantidade de serviços,

chegando a compararem-se com os sites WEB baseados no modelo WWW, eis

aqui alguns exemplos de aplicações do protocolo WAP

Transações Bancárias: Tendo um celular WAP, com acesso à Internet, e

considerando que sua operadora ofereça os serviços WAP em parceria com o

Banco, pode-se fazer transações bancárias como as disponíveis no auto-

atendimento do Banco do Brasil, que já possui site WAP http://wap.bb.com.br.

Programação dos Cinemas: Uma outra aplicação do Protocolo WAP é o

acesso à programação dos cinemas. Sites WAP como o

http://wap.cineguia.com.br apresentam os filmes em cartaz no Brasil inteiro.

Ferramentas de Auxílio para a Polícia Militar: A Polícia Militar de Minas

Gerais possui um sistema que permite que os policiais façam consultas em uma

base de dados, podendo, assim em mais ou menos 18 segundos, obter dados

sobre carros suspeitos e até antecedentes criminais do motorista.

Serviços de Agenda On-Line : Sendo o usuário cadastrado no sistema,

ele pode dispor dos serviços de agenda on-line. Este serviço é muito utilizado para

lembrar o usuário de compromissos, datas importantes, horóscopo e notícias.

Indicadores Financeiros: Sites WAP oferecem, diariamente,

informações do Sistema Financeiro Nacional com a cotação do dólar e o valor do

grama do ouro, além de informações sobre as principais bolsas de valores.

Page 40: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

40

Situação de Aeroportos: Através do endereço

http://www.folhawap.com.br/ pode-se obter informações e saber como está a

situação de aeroportos como Congonhas, Santos Dumont e Cumbica.

Previsão do Tempo: O site http://www.climawap.com.br/index.wml

oferece a previsão do tempo para várias cidades do Brasil divididas por regiões.

Conversão de Moeda: Havendo necessidade de fazer conversões de

moeda pode-se também utilizar o WAP. Este serviço pode ser conferido em

http://wap.nodel.com.br.

Comércio Eletrônico: Compras podem ser feitas pelo celular WAP, essa

tecnologia chamada de m-comerce (comércio móvel). O site

http://www.superlojas.com.br/wap/index.wml hospeda cerca de 500 lojas e pode-

se fazer compras como se estivesse navegando em um site WEB normal.

Serviços de E-mail: Mensagens não muito longas e sem aquelas

formatações e quantidades de figuras como as enviadas pelos programas de e-

mail da WEB tradicional, podem ser enviadas e recebidas através do celular WAP.

Jogos: Vários jogos estão disponíveis pelas operadoras de celulares e

também em sites pessoais, no entanto, maioria deles para um único jogador,

exemplos: Memory, Battleships, Russian Roulette, kniffel Batalha Naval e outros.

Page 41: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

41

2.3.5. Limitações

Apesar de fornecer várias vantagens, o protocolo WAP possui uma série

de limitações:

• Tamanho do LCD (display de cristal líquido): seu tamanho reduzido

limita seriamente as capacidades do sistema.

• Teclado: por ser pequeno e numérico, o teclado se torna um empecilho

para digitar palavras, reduzindo a capacidade de entrada de dados.

• Velocidade: a atual velocidade pode variar de 9,6 a 14,4kbs, assim, além

de ainda ser muito lenta, há a necessidade de fazer uma nova chamada

sempre que houver necessidade de uma nova conexão.

• Micro-browser: por apresentar apenas informações escritas em WML, as

operadoras têm que desenvolver conteúdos próprios para WAP.

• Possuem CPU, RAM, ROM e velocidade de processamento limitados e

poucas opções de fornecimento de energia (baterias, pilhas, etc);

• Redes de baixa capacidade com largura de banda modesta.

• As redes de voz e dados sem fio são inerentemente pouco confiáveis,

instáveis e imprevisíveis.

Page 42: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

42

2.3.6. O Modelo WWW

A arquitetura Internet prevê um modelo de programação flexível e

poderoso, onde aplicações e conteúdo são apresentados em formatos de dados

padrões e são mostrados por aplicações conhecidas como web browser ou

navegadores web. O web browser é uma aplicação para rede, o que significa que

ele envia requisições para objetos de dados nomeados para um servidor de rede e

este responde com o dado codificado, usando os formatos padrões.

Os padrões WWW especificam a maioria dos mecanismos necessários

para a construção de um ambiente de aplicação de propósito geral, incluindo:

• Modelo de nomeação padrão: todos os servidores e conteúdo na Web são

nomeados de acordo com o padrão da Internet, conhecido como URL.

• Tipificação de conteúdo: todo conteúdo na internet é produzido de maneira

que os navegadores web o processem da maneira correta, baseado em seu

tipo.

• Formatos de conteúdo padrão: todos os web browser suportam um pacote

de formatos de conteúdo padrões, que incluem o HTML e o JavaScript,

entre outros.

• Protocolos de comunicação padrões: os protocolos padrões de rede, tais

como o HTTP, permitem a qualquer navegador comunicar-se com qualquer

servidor WEB.

Page 43: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

43

Essa infraestrutura permite aos desenvolvedores criarem aplicações e

conteúdo para um grande número de clientes. Os protocolos da WWW são

definidos em três classes de servidores :

• Servidor de origem: servidor onde um dado recurso reside ou será

criado.

• Proxy: um programa intermediário que age tanto como cliente quanto

como servidor. Este tipo de servidor reside entre os clientes e os

servidores que não têm meios de comunicação direta.

• Gateway: um servidor que age como intermediário para algum outro

servidor. Diferente do proxy, um gateway recebe as requisições como se

ele fosse o servidor de origem para o recurso solicitado.

2.3.7. O Modelo WAP

O modelo de programação WAP é muito similar ao modelo de

programação WWW, visando justamente se agregar a ela da melhor maneira

possível. Esta tentativa de produzir um ambiente coerente com a estrutura já

existente, provê vários benefícios à comunidade de desenvolvimento, como a

familiarização com o modelo existente, a confiabilidade de uma arquitetura testada

e a possibilidade de utilização de ferramentas existentes (como servidores WEB,

editores XML, etc). A Figura 7 demonstra os modelos WAP e WWW.

Page 44: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

44

Figura 7 Modelo WAP e Modelo WWW

No entanto, apesar de muito similar o modelo de programação WAP

possui duas diferenças cruciais:

• Há sempre pelo menos um servidor proxy WAP entre o usuário e o

servidor de conteúdo.

• A comunicação entre o agente de usuário e o servidor proxy é feita

com protocolos WAP, ilustrado na Figura 8 abaixo.

Page 45: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

45

Figura 8 Modelo WAP

Assim como o WWW, o WAP define um conjunto de componentes

padrões para permitir a comunicação entre terminais móveis e servidores de rede:

• Modelo de nomeação padrão: o padrão WWW de Universal Resource

Locator (URL) é usado para identificar o conteúdo WAP nos servidores

originais, enquanto o padrão WWW de Universal Resource Identifier (URI) é

usado para identificar recursos locais em um dispositivo.

• Tipificação de conteúdo: todo o conteúdo WAP tem um tipo específico

consistente com a tipificação da WWW, o que permite aos agentes-usuários

WAP processarem corretamente um conteúdo baseado em seu tipo.

• Formatos de conteúdo padrões: todos os formatos de conteúdo WAP são

baseados na tecnologia WWW e inclui marcação para display, informações

de calendário, objetos de cartões de negócios eletrônicos, imagens e

linguagem de script.

Page 46: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

46

• Protocolos de comunicação padrões: o protocolo de comunicação WAP

possibilita a comunicação das requisições do browser do terminal móvel

com o servidor web.

Os tipos de conteúdo e protocolos WAP foram otimizados para micro

portáteis sem fio. O WAP utiliza a tecnologia de proxy para conectar um domínio

sem fio à Internet.

2.3.8. Principais funções do proxy WAP:

O gateway de protocolo traduz as requisições das camadas da pilha do

Protocolo WAP. Essas camadas (WAE, WSP, WTP, WTLS e WDP) serão

explicadas em mais detalhes na subseção Pilha de Protocolos.

Codificador e decodificador de conteúdo: os codificadores de conteúdo

traduzem o conteúdo WAP em um formato codificado compacto para reduzir o

tamanho dos dados que trafegam pela rede. Os decodificadores traduzem o

conteúdo codificado compacto para o conteúdo WAP.

A partir dessas funções, o proxy WAP permite que conteúdo e aplicações

sejam hospedados em servidores WWW padrões e sejam desenvolvidos usando

tecnologias WWW como, por exemplo, scripts CGI. A Figura 9 ilustra um exemplo

de uma rede WAP.

Page 47: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

47

Figura 9 Exemplo de uma rede WAP

O WAP gateway diminui o tempo de resposta do dispositivo portátil, agregando

dados de diferentes servidores na WWW e guardando informações

freqüentemente acessadas. O WAP gateway também pode se conectar a bancos

de dados de assinantes e utilizar informações da rede wireless, tais como

informação de localização, para personalizar as páginas WML de acordo com o

usuário.

2.3.9. Arquitetura - A Pilha de Protocolos

Apesar de ser visto como um protocolo, na verdade o WAP é uma pilha composta

por cinco protocolos independentes, organizados em um ambiente escalável e

extensível para o desenvolvimento de aplicações direcionadas à utilização em

dispositivos móveis. Isto foi alcançado através da construção de uma pilha de

protocolos dividida em camadas, conforme Figura 10.

Page 48: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

48

Figura 10 Camadas do Protocolo Wap

WAE (Wireless Application Environment) : É um ambiente de aplicação de

propósito geral baseado na combinação das tecnologias da WEB e de telefonia

móvel.

WSP (Wireless Session Protocol) : Disponibiliza para a camada de aplicação uma

interface consistente para dois serviços de sessão. O primeiro é o serviço

orientado a conexão, que opera sobre o protocolo de transação WTP e o segundo

é o serviço não orientado a conexão, que opera sobre o serviço de datagrama

seguro ou não (WDP).

WTP (Wireless Transaction Protocol) : É executado no topo de um serviço de

datagramas, provendo um protocolo orientado a conexão leve, otimizado para

implementação em dispositivos móveis, como telefones celulares.

Page 49: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

49

WTLS (Wireless Transport Layer Security) : É uma camada opcional da pilha WAP

que fornece às camadas superiores um serviço de interface de transporte seguro.

É um protocolo de segurança baseado no protocolo padrão da indústria, o

Transport Layer Security (TLS), formalmente conhecido como Secure Socket

Layer (SSL).

WDP (Wireless Datagram Protocol) : É a camada de transporte da arquitetura

WAP e opera sobre os serviços portadores de dados suportados por vários tipos

de redes. Esta camada oferece uma forma consistente de transmissão de pacotes,

permitindo às camadas de Segurança, Sessão e Aplicação funcionarem

independentemente da rede sem fio utilizada.

Camada de Rede : A camada de protocolos WAP foi projetada para operar sobre

uma variedade de transportadores de serviços. Estes oferecem níveis diferentes

de qualidade no que diz respeito a rendimento, taxa de erro e atraso, que devem

ser compensados ou tolerados pelo WAP.

2.3.10. Tipos de redes telefônicas WAP

Abaixo são apresentados os tipos de redes telefônicas que

atualmente suportam a utilização de WAP

CDMA (Code Division Multiple Access): tecnologia que utiliza sistema exclusivo,

permitindo enviar a ligação codificada e resgatá-la de outra porta de forma clara e

sem erros;

MAC é um código calculado a partir de funções de hash seguras, para garantir a

integridade das mensagens trocadas.

Page 50: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

50

FDMA (Frequency Division Multiple Access): é uma das principais técnicas de

múltiplo acesso utilizada em sistemas de comunicação móvel. Nesta, a

multiplexação é feita por divisão de freqüência;

GSM (Global System for Mobile Communication): sistema criado para padronizar

as comunicações celulares, permitindo ao usuário utilizar seu telefone em

qualquer país;

EDGE (Enhanced Data Rates for Global Evolution): trata-se de uma tecnologia

que permite às redes GSM suportar e oferecer serviços de terceira geração à

telefonia móvel;

W-CDMA (Wireless Code Division Multiple Access): é um padrão norte americano

que possui um importante papel na realização das comunicações sem fio, porque

tem quase a mesma performance na transmissão quanto às comunicações com

fio;

TDMA (Time Division Multiple Access): tecnologia para serviços digitais sem fio

baseada na divisão de uma freqüência de rádio em frações de tempo que serão

usadas em diferentes conexões.

Além dos transportadores de serviços, também existe a rede portadora que é

responsável pelo encaminhamento de datagramas até ao dispositivo destino. O

endereçamento desta varia conforme o tipo de rede (endereços IP ou números de

telefone), no entanto, o protocolo WAP foi projetado para compensar ou tolerar

estas diferenças, permitindo que seus endereços de rede incluam o tipo de

portadora e o endereço (ex.: IP; 123.456.789.123).

Page 51: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

51

2.3.11. Exemplos de portadores

• SMS (Smart Messaging Service): é um serviço que permite mandar ou receber

mensagens curtas de/para telefones celulares sem que se tenha de fazer uma

ligação, economizando desta forma tempo e dinheiro.

• CSD (Circuit Switched Cellular Data): uma tecnologia que permite a transferência

de dados via celular através de um canal de tráfego digital, por exemplo: com um

laptop, um aparelho celular com esta tecnologia e um cabo, o cliente pode acessar

a internet independente do horário e local a uma velocidade de 9.600 bps, além de

poder enviar e receber fax.

• CDPD (Cellular Digital Packet Data): é uma especificação que suporta o acesso

à internet e outras redes públicas através de comutação de pacotes. Um telefone

celular e um modem CDPD possibilitam velocidades até 19,2Kbps.

• GPRS (General Packet Radio Services): serviço não baseado em voz que

permite o envio e recepção de informações através de uma rede telefônica móvel.

Ele utiliza as tecnologias de CSD e SMS.

Page 52: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

52

2.4. Linguagens de Marcação

2.4.1. SGML

Segundo Silva Filho (2004) a SGML (Standard Generalized Markup

Language) é a precursora das linguagens de editoração, a partir da SGML foi que

surgiram a HTML e XML, as quais serão comentadas mais adiante.

Com o objetivo de construir um sistema portável, para o intercâmbio e

manipulação de documentos , foi criada a SGML, (independente de sistema

operacional e formatos de arquivos). Foi desenvolvido um sistema de "Marcação

Generalizada" (Generalized Markup), com dois objetivos básicos:

A marcação de um documento deve descrever a estrutura do documento,

e outros atributos do mesmo, em vez de especificar o processamento a ser feito

no mesmo. A marcação deve ser definida rigorosamente, de forma que sistemas

formais como programas possam ser usados para processar o documento

Como SGML não possui um conjunto pré-definido de tags e de

elementos, ela é na verdade uma meta-linguagem para descrever (mais

precisamente especificar) linguagens de marcação. Ela não possui uma semântica

pré-definida.

A sintaxe de uma linguagem específica de marcação definida através de

SGML é especificada através de construções coletadas num documento

denominado DTD (Document Type Definition)(ou incluídas diretamente no

documento SGML), onde aparecem "declarações de elementos", que especificam

para cada elemento da linguagem todas as possíveis marcações válidas para o

Page 53: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

53

elemento, como por exemplo, a ordem e obrigatoriedade de elementos num

documento, quantidade,etc, e declarações de atributos, que especificam, por

exemplo, tipos de valores de atributos, valores default, etc.

O DTD define, portanto, uma gramática para a linguagem de marcação do

documento. Todo documento SGML deve possuir um DTD (que define a sua

gramática) de forma que o documento possa ser validado por um analisador

sintático (parser).

2.4.2. HTML Conceitos Básicos

Ainda segundo Silva Filho (2004) e Godoy (2004) uma informação

publicada na internet, e distribuída globalmente, deve ser entendida por todos os

computadores e sistemas existentes na WEB, para isso foi necessário o

desenvolvimento de uma linguagem de formatação única, o qual foi denominado

HTML.

HTML significa HyperText Markup Language - Linguagem de Marcação

de Hipertexto. (Hipertexto é a capacidade de se pular de um documento para outro

com um clique do mouse) Consiste de uma aplicação especifica do SGML

utilizada na internet, e define um tipo de documento simples com marcações fixas

projetadas para uma classe de relatórios técnicos de uso comum em escritórios,

como, por exemplo, cabeçalhos, parágrafos, listas, ilustrações e algumas

possibilidades para hipertexto e multimídia. É o padrão atualmente em uso na

Internet.

Não é possível programar em linguagem HTML, pois ela é simplesmente

uma linguagem de marcação (ou formatação),: isto é, ela fornece elementos que

indicam como um texto deve aparecer na página, tais como "negrito" e

"sublinhado"; com ela também é possível inserir imagens, multimídia e outros

recursos no texto, além, é claro, das ligações de hipertexto.

Page 54: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

54

Os browsers são os responsáveis por identificar as marcações em HTML

e apresentar os documentos conforme o que foi especificado por essas

marcações. O HTML é usado principalmente para disponibilizar documentos e

informações na Internet ou em Intranets, mas com a aceitação deste padrão por

quase todos os sistemas computacionais existentes, tem aumentado

consideravelmente o seu uso em soluções desktop, tais como "HELP" de

softwares comerciais populares

Apesar do HTML não ser uma linguagem de programação, tem em

comum com estas a presença de diretivas, isto é trechos especiais de texto,

geralmente destacados por algum caracter delimitador. São tais diretivas que

controlam ou alteram a maneira em que as diversas partes de um documento são

apresentadas tipograficamente. Assim, as diretivas não são normalmente

tipografadas literalmente, mas o efeito destas é que pode ser observado.

Todas as diretivas HTML são delimitadas pelos caracteres menor (<) e

maior ( >).

Exemplo: <TITLE>, <HEAD>, <P>, <BR>, etc

A diretiva do HTML não é sensível ao tipo de caixa, isto é, tanto pode ser

escrita em maiúsculas como em minúsculas, ou em qualquer combinação.

Exemplo:

<Title>,

<HeAd>,

<P>

<br>,

São diretivas interpretadas da mesma maneira.

Numa diretiva, não deve haver espaço em branco nem quebra de linha

entre o sinal de menor < e o nome da diretiva. Por exemplo, as seguintes

codificações listadas a baixo,não são permitidas:

Page 55: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

55

< TITLE>,

< HEAD>,

<

P>

Uma diretiva não é visualizada literalmente, mas é identificada e

adequadamente interpretada pelo programa navegador a fim de produzir algum

efeito visual ou de estrutura lógica. Qualquer outra informação que não seja uma

diretiva, deve ser um texto, consistindo do conteúdo do documento.

Exemplo: <P> Este parágrafo.....

Um fato importante sobre HTML é que ao contrário do que acontece com

editores de texto convencionais, o programador não tem controle sobre o efeito

final do documento. Este pode variar, de acordo com as condições estabelecidas

pelo usuário final no programa navegador.

Exemplo:

Dimensões da área de visualização.

Escolha dos fontes tipográficos

Nível de HTML suportado

Versão e marca do programa navegador

Limitações de dispositivos (hardware e software)

A preocupação principal dos desenvolvedores do HTML é a de permitir

transportar a estrutura lógica e o conteúdo de documentos através de diferentes

plataformas (conjunto consistindo de computador, sistema operacional e programa

de suporte utilizado) de computadores.

Em HTML, existe diretiva para iniciar e finalizar uma determinada

especificação. <[diretiva]> inicia a especificação e </[diretiva]> finaliza a

especificação. A diretiva </[diretiva]> é denominado de diretiva de fechamento.

Page 56: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

56

Em alguns casos em que o final da especificação seja óbvio ou quando a

diretiva não trata de especificação do bloco, a diretiva de finalização </[diretiva]>

pode ser omitido. Caso tenha uma diretiva desconhecida no documento ela será

simplesmente ignorada. A forma declarativa geral de um documento HTML é a

seguinte:

<html>

<head>

[cabeçalho do documento]

</head>

<body>

[corpo do documento]

</body>

</html>

Como podemos ver, o documento HTML consiste basicamente de duas seções:

cabeçalho e corpo.

<html> e </html> indica o começo e o fim do documento hipertexto em HTML,

<head> e </head> indica o começo e o fim do caba�alho do documento HTML, e

<body> e </body> especifica o começo e o fim do corpo do documento HTML.

Page 57: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

57

2.4.3. XML - Linguagem de Marcação Extensível

Conforme Silva Filho (2004) e Bandeira Duarte (2004) a linguagem XML

(eXtensible Markup Language) é linguagem de marcação de dados (meta-markup

language) que provê um formato para descrever dados estruturados, também

denominado linguagem de editoração, e herda diversas características de HTML,

porém para atender as novas necessidade, onde HTML não poderia dar suporte,

surgiu a XML.

A XML foi proposta pela W3C (Word Wide Web Consortium) com o

objetivo de preencher lacunas não atendidas pela HTML conforme Mendes

(2004), trata-se de uma linguagem que permite que outras pessoas criem suas

próprias linguagens de editoração para fins específicos. Certos documentos HTML

não conseguem prover recursos satisfatórios como, por exemplo:

Equações matemáticas, moleculares e outras.

Mecanismo sofisticado em banco de dado (busca, filtragem e outros).

Documentos com informações organizadas de forma hierárquica.

Os princípios básicos da XML são os da simplicidade, o XML permite a

criação de infinitas tags, e dispõem de um sistema para criar tags para dados

estruturados. Um elemento XML pode ter dados declarados como:

preços de venda,

taxas de preço,

um título de livro,

quantidade de chuva,

ou qualquer outro tipo de elemento.

Page 58: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

58

2.4.3.1. Comparações entre HTML e XML

Apesar de já ter discorrido sobre a HTML, cabe aqui algumas

comparações entre HTML e XML. Por derivarem da SGML ambas identificam

elementos em uma página e ambos utilizam sintaxes similares. A grande diferença

entre HTML e XML é que o HTML descreve a aparência e a ações em uma página

na rede enquanto o XML não descreve nem aparência e ações, mas sim o que

cada trecho de dados é ou representa. Em outras palavras, o XML descreve o

conteúdo do documento.

Como o HTML, o XML também faz uso de tags (palavras encapsuladas

por sinais '<' e '>') e atributos (definidos com name="value"), porém, enquanto em

um documento HTML uma tag por exemplo, <p> indica um parágrafo, o XML usa

as tags somente para delimitar trechos de dados, e deixa a interpretação do dado

a ser realizada completamente para a aplicação que o está lendo e essa tag pode

indicar um preço, um parâmetro, uma pessoa, ou qualquer outra coisa.

Apesar dos arquivos XML serem textos, não são fáceis de serem

interpretados pelo ser humano como o HTML é, porém arquivos XML são fáceis

de depurar para programadores ou desenvolvedores, de forma que um simples

editor de textos pode ser usado para corrigir um erro em um arquivo XML.

As regras de formatação para documentos XML são muito mais rígidas do

que para documentos HTML. Uma tag esquecida ou um atributo sem aspas torna

o documento inutilizável, enquanto que no HTML isso é tolerado. As

especificações oficiais do XML determinam que as aplicações não podem tentar

adivinhar o que está errado em um arquivo, mas sim devem parar de interpretá-lo

e reportar o erro, o que já não acontece com o HTML.

Page 59: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

59

2.4.3.2. Características da linguagem XML

O XML provê uma representação estruturada dos dados que mostrou ser

amplamente implementável e fácil de ser desenvolvida.

O XML provê um padrão que pode codificar o conteúdo, as semânticas e as

esquematizações para uma grande variedade de aplicações desde simples até as

mais complexas.

Uma característica importante é que uma vez tendo sido recebido o dado

pelo cliente, tal dado pode ser manipulado, editado e visualizado sem a

necessidade de reacionar o servidor. Dessa forma, os servidores têm menor

sobrecarga, reduzindo a necessidade de computação e reduzindo também a

requisição de banda passante para as comunicações entre cliente e servidor.

O XML é considerado de grande importância na Internet e em grandes intranets

porque provê a capacidade de interoperação dos computadores por ter um padrão

flexível e aberto e independente de dispositivo. As aplicações podem ser

construídas e atualizadas mais rapidamente e também permitem múltiplas formas

de visualização dos dados estruturados

2.4.3.3. Separação entre dados e apresentação

A mais importante característica do XML se resume em separar a

interface com o usuário (apresentação) dos dados estruturados. O HTML

especifica como o documento deve ser apresentado na tela por um navegador. Já

o XML define o conteúdo do documento. Por exemplo, em HTML são utilizadas

tags para definir tamanho e cor de fonte, assim como formatação de parágrafo. No

XML você utiliza as tags para descrever os dados, como exemplo tags de assunto,

título, autor, conteúdo, referências, datas, etc

Page 60: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

60

O XML ainda conta com recursos tais como folhas de estilo definidas com

Extensible Style Language (XSL) e Cascading Style Sheets(CSS) para a

apresentação de dados em um navegador. O XML separa os dados da

apresentação e processo, o que permite visualizar e processar o dado como

quiser, utilizando diferentes folhas de estilo e aplicações

2.4.3.4. Principais benefícios da linguagem XML

O objetivo do XML é trazer flexibilidade e poder às aplicações Web.

Dentre os benefícios para desenvolvedores e usuários temos:

Buscas mais eficientes

Os dados em XML podem ser unicamente "etiquetados", o que permite

que, por exemplo, uma busca por livros seja feita em função do nome do autor.

Atualmente, uma busca com o nome do autor poderia levar a qualquer site que

tivesse referência a tal nome, não importando se fosse o autor do livro ou

simplesmente um livro sobre o autor. Sem o XML é necessário para a aplicação

de procura saber como é esquematizado e construído cada banco de dados que

armazena os dados de interesse, o que é impossível. O XML permitiria definir

livros por autor, título, assunto, etc, o que facilitaria enormemente a busca.

Desenvolvimento de aplicações flexíveis para a Web

O desenvolvimento de aplicações Web em três camadas, ou three-tier, é

altamente factível com o XML. Os dados XML podem ser distribuídos para as

aplicações, objetos ou servidores intermediários para processamento. Esses

mesmos dados também podem ser distribuídos para o desktop (pc e similares)

para ser visualizado em um navegador.

Page 61: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

61

Integração de dados de fontes diferentes

Atualmente é praticamente impossível a procura em múltiplos bancos de

dados e incompatíveis. O XML permite que tais dados possam ser facilmente

combinados. Essa combinação seria feita via software em um servidor

intermediário, estando os bancos de dados na extremidade da rede.

Os dados poderiam ser distribuídos para outros servidores ou clientes para que

fizessem o processamento, a agregagem e a distribuição.

Computação e manipulação local

Os dados XML recebidos por um cliente são analisados e podem ser

editados e manipulados de acordo com o interesse do usuário. Ao contrário de

somente visualizar os dados, os usuários podem manipulá-los de várias formas.

Os recursos disponíveis do Document Object Model (DOM) permitem que os

dados sejam manipulados via scripts ou outra linguagem de programação.

A separação da interface visual dos dados propriamente ditos permite a criação de

aplicações mais poderosas, simples e flexíveis.

Múltiplas formas de visualizar os dados

Os dados recebidos por um usuário podem ser visualizados de diferentes

formas uma vez que o XML define somente os dados e não o visual. A

interpretação visual poderia ser dada de várias maneiras diferentes, de acordo

com as aplicações. Os recursos de CSS e XSL permitem essas formas

particulares de visualização.

Page 62: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

62

Atualizações granulares dos documentos

Os dados podem ser atualizados de forma granular, evitando que uma

pequena modificação no conjunto de dados implique na busca do documento

inteiro novamente. Dessa forma, somente os elementos modificados seriam

enviados pelo servidor para o cliente. Atualmente, uma modificação em um item

de dados acarreta na necessidade de atualização da página inteira.

O XML também permite que novos dados sejam adicionados aos já existentes,

sem a necessidade de reconstrução da página.

Fácil distribuição na Web

Assim como o HTML, o XML, por ser um formato baseado em texto

aberto, pode ser distribuída via HTTP sem necessidade de modificações nas

redes existentes.

Escalabilidade

Devido ao fato dos documentos XML separarem completamente os dados

da forma com a qual são visualizados, autores de aplicações de visualização de

dados podem torná-las muito poderosas e interativas, permitindo ao usuário

visualizar os dados da forma que lhe agrade. Dessa forma, a interatividade, em

termos, não dependeria tanto da comunicação cliente servidor, mas sim seria feita

"offline", reduzindo o tráfego do link com o servidor.

Page 63: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

63

Compressão

A compressão de documentos XML é fácil devido à natureza repetitiva

das tags usadas para definir a estrutura dos dados. A necessidade de compressão

é dependente da aplicação e da quantidade de dados a serem movidos entre

clientes e servidores. Os padrões de compressão do HTTP 1.1 podem ser usados

para o XML

2.4.3.5. Tipos de aplicações

Apesar da tecnologia XML estar passando ainda por um processo

evolutivo é uma tecnologia amplamente experimentada em diversas aplicações.

Pelo fato de praticamente não apresentar restrições satisfazendo assim as mais

variadas demandas surgem aplicações das mais diversas, das quais algumas

serão apresentadas a seguir.

RDF framework para descrição e troca de metadados, permite

codificação, troca e reuso de metadados estruturados, também é

visto como uma linguagem baseada em XML para descrição de

informações

WML linguagem baseada em XML que possibilita a especificação

de conteúdo para dispositivos móveis;

CML aplicação XML para fazer descrição das informações de

estruturas moleculares;

OFX aplicação XML que permite que você especifique transações

financeiras;

MathML, aplicação XML para descrever equações matemáticas;

Page 64: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

64

SMLI, aplicação XML que permite elaborar apresentações

multimídia;

SVG aplicação XML para descrever imagens bidimensionais;

VML aplicação XML direcionadas a gráficos vetoriais, os quais

podem ser embutidos em paginas HTML;

VoiceXML aplicação XML que possibilita uma interação entre o

usuário e o computador de forma falada;

TalkML aplicação XML destinada a ser empregada em browser que

ofereçam suporte para dialogo com interação de voz;

CDF aplicação XML utilizada para definir canais ou channels. Essa

tecnologia permite o envio automático de conteúdo para usuários.

Page 65: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

65

Como vimos às aplicações da linguagem XML são muitas, mas para esse

trabalho foi concentrada a atenção na Wireless Markup Language (WML) a qual

será tratada no próximo capitulo desta monografia.

2.4.3.6. Exemplo em XML

<?xml version="1.0"?>

<doc xml:base="http://example.org/today/"

xmlns:xlink="http://www.w3.org/1999/xlink">

<head>

<title>Virtual Library</title>

</head>

<body>

<paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's

new</link>!</paragraph>

<paragraph>Check out the hot picks of the day!</paragraph>

<olist xml:base="/hotpicks/">

<item>

<link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link>

</item>

<item>

<link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link>

</item>

<item>

<link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link>

</item>

</olist>

</body>

</doc>

Page 66: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

66

2.4.4. WML

2.4.4.1. Demonstrando o WML

Conforme Silva filho (2004) e Forta (2001) a WML é uma linguagem de

programação baseada no XML (eXtensible Markup Language). A WML(Wireless

Markup Language) poderia ser definida como uma filha da XML. Pois foi gerada

totalmente baseando-se na XML, com isso, praticamente todas as regras de

formatação da XML são iguais às da WML.

A especificação oficial do WML foi desenvolvida e é mantida pelo WAP

Fórum, um consórcio industrial fundado pela Nokia, Phone.com, Motorola, e

Ericsson. As especificações definem a sintaxe, variáveis e elementos usados no

WML.

A WML foi construída para ser compatível com telefones celulares atuais, já

que os mesmos não podem agüentar a variedade de formatação da HTML (como

diferentes cores, etc). Com isso, a WML veio para deixar as páginas para

celulares bem leves, e portanto compatíveis com o sistema. WML junta toda a

facilidade da XML(XSL, DOM, DTD, etc) com o poder de outras linguagens de

programação que agem do lado do servidor como o ASP e PHP. Com isso, um

site com base de dados em XML, pode também disponibilizar uma página para

celulares compartilhando a mesma base de dados. Isso torna o site WAP, mais

dinâmico.

Entendendo: se um telefone ou outro dispositivo de comunicação é tido

como WAP, significa que este possui um software, conhecido como microbrowser,

e este software tem a capacidade de entender tudo que é especificado como

sendo WML.

Page 67: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

67

Para executar páginas em WML, é necessário que tenha um site

hospedado em um servidor com suporte a WML ou que em seu micro esteja

instalado um emulador WML.

O WML foi desenvolvido para uma pequena banda, e displays muitos

pequenos. Uma parte deste desenvolvimento é o conceito utilizado como

deck/cards. Um único documento WML é conhecido como Deck. Uma única

interação com o usuário é conhecida como card. A vantagem do projeto é que

múltiplas telas podem ser baixadas para o cliente numa única requisição. As

páginas WML são chamadas de DECKS, esses DECKS são formados pelos

CARDS. A Figura 11 abaixo representa essa estrutura.

Figura 11 Exemplo de um Deck

2.4.4.2. Elementos WML

O WML define elementos que podem ser combinados para que se possa

criar documentos WML. Os elementos podem ser divididos em dois grupos: os

elementos Deck/Card e os elementos Eventos, conforme demostrado abaixo.

Page 68: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

68

A utilização de cada um destes elementos, é da seguinte forma:

<elemento>valor do elemento</elemento>

2.4.4.3. Regras básicas de formatação:

As tags WML diferenciam as letras maiúsculas de minúsculas, ou

seja <wml> é diferente de <WmL>.

Todas as tags devem ser fechadas;

Os documentos WML devem ser salvos com a extensão .wml;

Qualquer tipo de texto deve ser escrito entre as tags <p> e </p>.

Na formatação de texto em WML as tags são usadas para

"incrementar" o texto da mesma forma que no HTML.

<strong>Destacado</strong>;

<i>Itálico</i>;

<b>Negrito</b>;

<u>Sublinhado</u>;

<small>Pequeno</small>;

<big>Grande</big>.

Deck Card

Eventos Tarefas Variáveis Entradas Ancoras, Imagens e Timers

Formatação de Textos

Wml Do Go setvar Input A Br

Card Ontimer Prev Select Anchor P

Template Onenterforward Refresh Option Img Table

Head onenterbackward Noop Optgroup timer Tr

Access onpickonevent Fieldset td

Meta postfield

Page 69: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

69

2.4.4.4. Programando em WML

Nesta introdução à linguagem WML propriamente dita, iremos ver como é a

estrutura de um arquivo WML, e quais as regras de formatação.

Todos os documentos WML seguem a uma regra DTD, que é especificada

no início de todo documento. Para você entender melhor a estrutura de um

arquivo WML, vamos ver o exemplo de um código-fonte:

Na Figura 12 abaixo podemos ver como é formado um documento WML simples

e ao lado o código do mesmo.

<?xml version="1.0" encoding="ISO-8859-

1"?>

<!--Defino o DTD padrão-->

<!DOCTYPE wml PUBLIC "-

//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id="Index" title="Inicial">

<p>Isso é um documento <u>WML</u> de

exemplo</p>

<!--Fecho o CARD-->

</card>

</wml>

Figura 12 Exemplo documento WML

Page 70: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

70

2.4.4.5. Aplicações com WML: Variáveis

Como vários cartões podem estar contidos em um deck, alguns

mecanismos precisam estar posicionados para reter dados, enquanto o usuário

navega de cartão em cartão. Este mecanismo é fornecido pelas variáveis WML..

As variáveis podem ser criadas e usadas utilizando-se diversos métodos

diferentes. Por exemplo: Usando o elemento <setvar> como resultado do usuário

que executa uma tarefa. O elemento <setvar> pode ser usado para "setar" uma

variável para os seguintes elementos: go, prev e refresh. O elemento da linha

abaixo criará uma variável "v1" com um valor "meu":

<setvar name="v1" value="meu"/>

As Variáveis também são "setadas" através dos elementos de entrada

(input, select, option, etc.). Uma variável é automaticamente criada

correspondendo a um atributo de um elemento de entrada. Por exemplo, o

elemento da linha abaixo criará uma variável de nome "v1":

<select name="v1" title="v1 Value:">

2.4.4.6. Criando um Deck WML

Neste exemplo, nós criaremos um Deck WML que nos permite

primeiramente selecionar um username da lista, entrar com uma senha, então

temos nossas seleções repetidas. Basicamente será mostrada a manipulação de

entrada, dos eventos e das variáveis num único Deck que utiliza vários cartões

(cards).

Page 71: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

71

Como você pode ver, na o prolog deste documento contém a versão do

XML. Depois deste, vem o elemento do documento WML, o Deck, que contém três

cartões: Login, Senha e Resultado. Cada um destes cartões é definido usando um

elemento <card>. Os cartões do Login Figura 13 e da Senha Figura 14, também

definem Eventos, eles utilizam o elemento <do type ="accept"> para definir o

evento a ser chamado.

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id="Login" title="Login">

<do type="accept" label="Senha">

<go href="#Senha"/>

</do>

<p>

Usuário:

<select name="nome" title="Nome:">

<option value="joão">João</option>

<option

value="Sergio">Sergio</option>

<option value="Maria">Maria</option>

<option

value="Claudio">Claudio</option>

</select>

</p>

</card>

Figura 13 Cartão Login

Page 72: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

72

Quando o elemento "accept" é encontrado, ele é mostrado no display do

celular (ou outro dispositivo) como uma opção. Selecionando uma destas opções,

o elemento <go> será analisado.

Se você está familiarizado com a tag (anchor) <a> no HTML, e você

conhece as especificações do atributo href, então se pode fazer um link no

browser para uma âncora selecionada .

<card id="Senha" title="Senha:">

<do type="accept" label="Resultado">

<go href="#Resultado"/>

</do>

<p>

Senha: <input type="text"

name="senha"/>

</p>

</card>

Figura 14 Cartão Senha

Page 73: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

73

O elemento WML <go> e o atributo href trabalham da mesma maneira. Com

HTML, para fazer um link para outro cartão no mesmo documento, você

simplesmente insere o símbolo # antes do link. Por exemplo, um link para o cartão

Resultado, é só definir o seguinte elemento, veja Figura 15 abaixo.

<go href="#Results"/>

<card id="Resultado"

title="Resultado:">

<p>

Entrada:<br/>

Nome: $(nome)<br/>

Senha: $(senha)<br/>

</p>

</card>

</wml>

Figura 15 Cartão Resultado

Page 74: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

74

Este cartão resultado emprega variáveis recuperando e exibindo o

conteúdo das variáveis Nome e Senha. Lembre-se que as variáveis são

substituídas em um cartão ou deck usando a seguinte sintaxe:

$(nome_da_variável)

2.4.4.7. Imagens ícones

Podemos inserir imagens que já vem pré-definidas na memória. Para isso,

podemos usar a propriedade localsrc do comando <img>, para acessar os ícones

internos, porém não podemos esquecer de acrescentar de usar alt, caso a versão

WAP do aparelho não suporte imagens. Veja o exemplo a seguir:

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD

WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card title="Monog. Jayme">

<p>Imagem 1 :

<img alt=":-)" localsrc="smileyface" src=""/> </p>

<p>Imagem 2 :

<img alt=":-)" localsrc="videocam" src=""/> </p>

<p>Imagem 3:

<img alt=":-)" localsrc="house" src=""/> </p>

<p>Imagem 4:

<img alt=":-)" localsrc="dog" src=""/> </p>

<p>Imagem 5:

<img alt=":-)" localsrc="heart" src=""/> </p>

<p>Imagem 6:

<img alt=":-)" localsrc="car" src=""/> </p>

<p>Imagem 7:

<img alt=":-)" localsrc="star3" src=""/> </p>

</card>

</wml>

Figura 16 CartãoExemplo Imagem

Page 75: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

75

2.4.4.8. Imagens wbmp

Podemos inserir fotos, em página WAP, mas é importante ressaltar que o formato

de imagens WAP é diferente do formato usado nas páginas HTML, já que o

sistema é diferente dos PCs e navegadores convencionais. O formato em questão

é o WBMP (Wireless BitMap) um gráfico em preto e branco com resolução de

100x70 que pode ser exibida em páginas WML.

Existem programas que transformar GIFs e JPGs em WBMP. Abaixo na Figura 17

temos um exemplo de como fica.

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-

//WAPFORUM//DTD WML 1.2//EN"

"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="Monografia Jayme">

<p>

Veja como ficou:

<img src="logoDIN.wbmp" alt="rastaguy"/>

</p>

</card>

</wml>

Figura 17Cartão Imagem Logo DIN

Page 76: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

76

2.4.4.9. Acentuação na WML

Para usarmos caracteres especiais na linguagem WML, é necessário usar o

seu código equivalente da tabela Latin-1 (ISO 8859-1). Se você quiser colocar a

palavra Endereço por exemplo, e usar a cedilha, o resultado não será o esperado

pois a palavra sairá escrita de forma incorreta. Para que saia escrita da forma

correta, é necessário escrevê-la assim:

Endere�ccedil;o.

Outro ponto importante é a visualização do conteúdo WML. Existem vários

browser que simulam o telefone celular, entre eles está o Opera e o M3Gate que

tem o formato de um celular.

Page 77: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

77

2.5. Linguagem de programação

2.5.1. PHP

2.5.1.1. O que é PHP?

Segundo Ullman (2001) PHP significa “Personal Home Page” é uma

linguagem de criação de scripts embutida na HTML, compatível com varias

plataformas do lado do servidor. Dizer que o PHP é embutido no HTML significa

que ele pode ser colocado no seu código HTML sendo este o código com quais

todas as páginas da web são criadas. PHP é uma linguagem de criação de scripts,

em oposição à linguagem de programação. Isso significa que ela é criada para

fazer algo apenas depois que um evento ocorre. PHP é uma linguagem que

permite criar sites WEB dinâmicos, possibilitando uma interação com o usuário

através de formulários, parâmetros da URL e links. Outra diferença de PHP com

relação a linguagens semelhantes a Javascript é que o código PHP é executado

no servidor, sendo enviado para o cliente apenas html puro. Desta maneira é

possível interagir com bancos de dados e aplicações existentes no servidor, com

a vantagem de não expor o código fonte para o cliente. Isso pode ser útil quando o

programa está lidando com senhas ou qualquer tipo de informação confidencial.

O que diferencia PHP de um script CGI escrito em C ou Perl é que o código

PHP fica embutido no próprio HTML, enquanto no outro caso é necessário que o

script CGI gere todo o código HTML, ou leia de um outro arquivo.

2.5.1.2. Instalação e configuração em ambiente windows

O servidor http que será utilizado para o desenvolvimento desta monografia

será é o Apache junto com mySQL, que será discutido em outro item.

Page 78: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

78

A melhor maneira de testar o sistema é criar um arquivo chamado teste.php

e salvar no diretório raiz do servidor Apache. O arquivo deve conter o seguinte

código mostrado abaixo.

<?

phpinfo();

?>

Acessando a página através do servidor (http://localhost/teste.php),

devemos ter como resultado uma listagem de todas as configurações do PHP

conforme Figura 18 abaixo.

Figura 18 Resultado da execução da função phpinfo().

Page 79: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

79

2.5.1.3. O que pode ser feito com PHP?

Ainda segundo Ullman (2001) basicamente, qualquer coisa que pode ser

feita por algum programa CGI pode ser feita também com PHP, como coletar

dados de um formulário, gerar páginas dinamicamente ou enviar e receber

cookies.

PHP também tem como uma das características mais importantes o suporte

a um grande número de bancos de dados, como dBase, Interbase, mSQL,

mySQL, Oracle, Sybase, PostgreSQL e vários outros. Construir uma página

baseada em um banco de dados torna-se uma tarefa extremamente simples com

PHP. Além disso, PHP tem suporte a outros serviços através de protocolos como

IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda é possível abrir sockets

e interagir com outros protocolos.

2.5.1.4. Sintaxe Básica

O código PHP fica embutido no próprio HTML. O interpretador identifica

quando um código é PHP pelas seguintes tags:

<?php

comandos

?>

<script language=”php”>

comandos

</script>

<?

comandos

?>

<%

comandos

%>

Page 80: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

80

O tipo de tags mais utilizado é o terceiro, que consiste em uma

“abreviação” do primeiro. Para utilizá-lo, é necessário habilitar a opção short-tags

na configuração do PHP. O último tipo serve para facilitar o uso por

programadores acostumados à sintaxe de ASP. Para utilizá-lo também é

necessário habilitá-lo no PHP, através do arquivo de configuração php.ini.

2.5.1.5. Separador de instruções

Entre cada instrução em PHP é preciso utilizar o ponto-e-vírgula, assim

como em C, Perl e outras linguagens mais conhecidas. Na última instrução do

bloco de script não é necessário o uso do ponto-e-vírgula, mas por questões

estéticas recomenda-se o uso sempre.

2.5.1.6. Nomes de variáveis

Toda variável em PHP tem seu nome composto pelo caracter $ e uma

string, que deve iniciar por uma letra ou o caracter “_”. PHP é case sensitive, ou

seja, as variáveis $vivas e $VIVAS são diferentes. Por isso é preciso ter muito

cuidado ao definir os nomes das variáveis. É bom evitar os nomes em maiúsculas,

pois como veremos mais adiante, o PHP já possui algumas variáveis pré-definidas

cujos nomes são formados por letras maiúsculas.

Page 81: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

81

2.5.1.7. Comentários

Comentários de uma linha:

Marca como comentário até o final da linha ou até o final do bloco de

código PHP – o que vier antes.

Pode ser delimitado pelo caracter “#” ou por duas barras ( // ).

Exemplo:

<? echo “teste”; #isto é um teste ?>

<? echo “teste”; //este teste é similar ao anterior ?>

Comentários de mais de uma linha:

Tem como delimitadores os caracteres “/*” para o início do bloco e “*/”

para o final do comentário.

Se o delimitador de final de código PHP ( ?> ) estiver dentro de um

comentário, não será reconhecido pelo interpretador.

Exemplos:

<?

echo “teste”; /* Isto é um comentário com mais

de uma linha, mas não funciona corretamente ?>

*/

<?

echo “teste”; /* Isto é um comentário com mais

de uma linha que funciona corretamente

*/

?>

Page 82: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

82

2.5.1.8. Criando scripts

Será mostrado um script com uma saída simples inserido no HTML. Para

digitar um script em PHP pode-se utilizar qualquer editor de texto, em nosso caso

utilizei o “Bloco de notas” e para ver como fica na WEB estou utilizando a

ferramenta "DPHPEdit" ou "Davor's PHP Editor", é um IDE (Integrated

Development Environment) ambiente de desenvolvimento integrado para

linguagem PHP.

Isso mostra como o PHP funciona, o script é executado no servidor, ficando

disponível para o usuário apenas o resultado, conforme mostra a Figura 19 e

Figura 20. respectivamente

Figura 19 Script PHP

Figura 20 Apresentação do Exemplo Script1

Page 83: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

83

Podemos também escrever um script que produza exatamente o mesmo

resultado utilizando uma variável, como mostra o código abaixo.

<html>

<head><title>Aprendendo PHP</title></head>

<body>

<?php

$texto = "Primeiro Script";

echo $texto;

?>

</body>

</html>

2.5.1.9. Enviando Dados para o Servidor http

O protocolo HTTP provê dois principais métodos para enviar informações

para o servidor web. São POST e GET

A requisição GET inicia com a palavra GET, inclui o documento solicitado e

encerra com a combinação dos caracteres carriage return e line feed. GET

/index.html crlf Pelo método GET também é possível passar parâmetros da

requisição. GET /index.php?id=0024horas&tipo=Taxi crlf GET permite uma

quantidade de dados limitada a 1024 caracteres, o que pode gerar perda de

informações. Pelo GET, como as informações fazem parte da URL, todos os

dados podem ser vistos pelo usuário. Pode ser perigoso quando informações

sigilosas estão envolvidas (senha).

Page 84: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

84

A versão 1.0 do protocolo HTTP trouxe inovações, como o uso de headers

em mensagens de requisição e de resposta. Headers são informações trocadas

entre o navegador e o servidor de modo transparente ao usuário, contendo dados

sobre o tipo e a versão do navegador, a página de onde partiu a requisição (link),

tipos de arquivos aceitos como resposta, e uma série de outras informações.

Através da utilização de headers é possível enviar os parâmetros da URL

solicitada sem expor esses dados ao usuário, e sem limitar seu tamanho. O

usuário não deve se preocupar com os headers, em codificar os dados ou em

calcular o tamanho do corpo da mensagem. O browser faz isso de maneira

transparente. O método GET pode ser utilizado através da digitação de um

endereço no local apropriado do navegador, através de um hiperlink (com a

conversão dos dados para o formato urlencode) e através de formulários HTML. O

uso de formulários HTML é a única maneira possível de submeter dados pelo

método POST.

2.5.1.10. Utilizando formulários HTML

Ao clicar num botão “Submit” em um formulário HTML as informações dos campos

serão enviadas ao servidor especificado para que possa ser produzida uma

resposta. O PHP trata esses valores como variáveis, cujo nome é o nome do

campo definido no formulário. O exemplo abaixo mostra isso, e mostra também

como o código PHP pode ser inserido em qualquer parte do código HTML:

Ao salvar o arquivo da Figura 21 e carregá-lo no browser, o usuário verá

apenas um formulário que contém um espaço para digitar o texto, como visto na

Figura 22. Ao digitar um texto qualquer e submeter o formulário, a resposta, que é

o mesmo arquivo PHP (indicado pela constante $PATH_INFO, que retorna o

nome do arquivo) será como na Figura 23.:

Page 85: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

85

Figura 21 Submit

Figura 22 Envia texto

Figura 23 Retorna

Page 86: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

86

Isso ocorre porque o código PHP testa o conteúdo da variável $texto.

Inicialmente ele é uma string vazia, e por isso nada é impresso na primeira parte.

Quando algum texto é digitado no formulário e submetido, o PHP passa a

tratá-lo como uma variável. Como no formulário o campo possui o nome “texto”, a

variável com seu conteúdo será $texto. Assim, no próximo teste o valor da variável

será diferente de uma string vazia, e o PHP imprime um texto antes do formulário.

2.5.1.11. Outras facilidades do PHP

Como podemos observar existe uma enorme simplicidade em manipular as

informações utilizando PHP. Abaixo farei uma breve descrição das funcionalidades

oferecidas por esta linguagem.

Headers:

O comando header permite enviar cabeçalhos html para o cliente.

Gravando cookies:

Para gravar cookies no cliente, deve ser utilizada a função setcookie.

Lendo cookies gravados:

Os cookies lidos por um script PHP ficam armazenados em duas variáveis.

Enviando e−mail

Para enviar e−mail através de um script PHP é bastante simples. Basta utilizar a

função mail:

Page 87: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

87

Manipulando arquivos:

Através do PHP é possível ter acesso aos arquivos do sistema, e até arquivos

remotos, como:

Copiar Arquivos

Verificar o tamanho de um arquivo

Listar o conteúdo de um diretório, através de um scritps

Mostrar o tamanho do arquivo, em bytes

Verificar se um arquivo existe

Abrir arquivos para leitura e/ou escrita

Encerrar a manipulação de um arquivo

Ler um arquivo

Escrever em um arquivo

Gravar um arquivo

Também, como toda linguagem, o PHP utiliza-se de outras propriedades comum a

qualquer linguagem como:

Tipos de variáveis

Constantes

Operadores

Estruturas de controles

Funções

Variáveis

Classes e Objetos

Page 88: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

88

2.5.2. ASP

2.5.2.1. O que é ASP?

Active Server Pages (ASP) é uma linguagem para geração de páginas

HTML dinamicamente. Segundo Pereira (2001) Páginas de Servidor Ativas são

um ambiente para programação por scripts no servidor, que você pode usar para

criar páginas dinâmicas, interativas e de alta performance. Como as páginas ASP,

os scripts rodam no servidor e não no cliente. É o próprio servidor que transforma

os scripts em HTML padrão, fazendo com que qualquer browser do mercado seja

capaz de acessar um site que usa ASP.

Entre os recursos que podem ser implementados via ASP, podemos

citar:

Programação em VBScript ou JScript

Acesso à banco de dados

Sessões (persistência de informações no servidor)

ASP surgiu juntamente com o lançamento do Internet Information Server

3.0. Esta é uma solução Microsoft, que exige que o seu servidor precisa rodar um

sistema operacional da Microsoft (Windows 95 ou NT). Os seguintes servidores

suportam o uso de páginas ASP:

Microsoft Internet Information Server versão 3.0 no Windows NT Server

Microsoft Peer Web Services versão 3.0 no Windows NT Workstation

Microsoft Personal Web Server no Windows 95 ou Windows 98

A grande vantagem, porém, é que existe esta exigência apenas do lado do

servidor. No lado do cliente, você pode utilizar qualquer browser, mesmo os que

não suportam VBScript (como os da Netscape).

Page 89: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

89

2.5.2.2. Vantagens do ASP

Todos os browser suportam ASP. Isto acontece pelo fato das páginas ASP

serem processadas pelo servidor. O que o cliente recebe é somente código HTML

padrão. O ASP possui uma Independência do browser, podendo rodar páginas

complexas no servidor e enviar somente os resultados para o cliente.

As páginas ASP são capazes de guardar o estados, durante a execução de

uma aplicação ASP podem armazenar dados que são mantidos durante toda uma

sessão. Desta forma, um usuário pode fornecer seu nome somente uma vez em

uma página e as demais páginas podem obter este dado automaticamente. Este

recurso é ideal para aplicações de venda pela Internet.

Uma aplicação ASP pode ser usada com qualquer banco de dados

compatível com ODBC. Isto inclui dados do Access, Microsoft SQL Server, Oracle,

Sybase, Informix, DB2, entre outros, além do que permitem visualizar, atualizar e

adicionar informações nos servidores SQL

O recurso de segurança do ASP é parte integrante do IIS (Internet

Information Server), que tem sua segurança integrada com o Windows NT Server.

É fácil restringir o acesso a páginas ASP usando os esquemas de autenticação do

IIS (senha básica da Web, senha do NT ou certificados de cliente). E ainda é

possível dar segurança aos dados transmitidos usando SSL. Como o Servidor

retorna somente o resultado html, o código fonte (lógica) fica preservado.

ASP lhe dá todos os recursos de aplicações CGI de uma forma mais fácil e

mais robusta. Com ASP, é bem mais fácil criar conexões entre o browser e os

dados em formatos normalmente incompatíveis com HTML, como bancos de

dados. ASP é mais robusto por não criar um processo no servidor para cada

Page 90: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

90

pedido do usuário, como acontece com o CGI. Usando ASP ao invés de CGI, um

servidor pode atender a um grande número de pedidos de usuários de forma mais

rápida e usando menos memória. Além disso, criar páginas ASP é em geral muito

mais fácil do que criar aplicações CGI.

Quanto a linguagens script há suporte nativo para JScript (o JavaScript da

Microsoft) e VBScript. Existem plug-ins ActiveX para dar suporte para outras

linguagens como REXX, PERL, and Python.

2.5.2.3. Servidor

O computador que hospedará as páginas deverá rodar Windows NT Server,

Windows NT Workstation, Windows 95 ou Windows 98. Portanto deve estar

instalado o Microsoft Internet Information Server (IIS), o Peer Web Services (PWS)

ou o Personal Web Server (PWS, também) instalado neste computador. O

Windows NT 4.0 vem com a versão 2.0 do IIS, que não é suficiente. A partir de um

Windows NT Server com o IIS3 ou IIS4 (Internet Information Server) instalado, é

possível rodar códigos que geram páginas HTML dinamicamente, e então, mandá-

las para o Browser. Assim sendo, sempre que uma página ASP for requisitada

pelo Browser, esta página será executada pelo servidor, e a partir daí, será gerada

uma página HTML, a qual será enviada para o Browser que a requisitou. É

possível então, a partir de uma única rotina, gerar uma página HTML contendo os

registros ,de um banco de dados.

Detalhando um pouco mais, um usuário qualquer entra na página principal

da agenda virtual da sua empresa. Nesta página existem links para todas as letras

do alfabeto e para todas as cidades listadas na agenda. Esse usuário clica no link

na letra A (poderia ser de qualquer outra letra), e então uma página ASP (uma

rotina ASP) é acionada no servidor. O servidor por sua vez, vai ler e executar esta

página, o que significa que, em primeiro lugar, o servidor abrirá o banco de dados,

ai então, fará uma consulta a este banco de dados requisitando todos os registros

Page 91: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

91

cujo nome comece com a letra A. Aí então o servidor cria uma página HTML

contendo todos esses registros numa tabela.

2.5.2.4. Banco de Dados

A linguagem ASP não serve apenas para consultas a banco de dados.

Serve também para envio e recebimento de correio eletrônico via páginas HTML,

para criação rotinas de propaganda rotativa, para identificação e autenticação de

usuários, para leitura de arquivos texto e uma infinidade de outras aplicações.

Se você pretende usar os recursos de acesso a bancos de dados, certifique

se os dados estão acessíveis através de ODBC. Você precisará de um driver de

ODBC instalado e funcionando no servidor. Se você optou por usar o Access,

instale uma versão 7.0 (95) ou superior no Servidor. Isto garantirá a presença do

driver ODBC e facilitará a criação dos seus bancos de dados. Se você preferir

utilizar o SQL Server, garanta que o driver ODBC está instalado.

Para usar os recursos de acesso a bancos de dados, deve estar

configurada uma "Fonte de Dados" ODBC para o banco de dados. Isto é feito

usando a opção "ODBC" do "Painel de Controle" do Windows. Se for usar o SQL

Server, o usuário devera ter direito de acesso ao banco de dados.

2.5.2.5. VBScript e ASP

A linguagem ASP é, na verdade, uma junção de programação em VBScript

e Objetos ActiveX. VBScript é uma linguagem criada a partir do Visual Basic, mas

com algumas limitações, por motivos de segurança.

Page 92: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

92

Objetos ActiveX são objetos, ou melhor, funções prontas, já existentes no

servidor. Essas funções captam os parâmetros de entrada dos dados, manipula-os

de acordo a sua função e então os envia para a saída. Um exemplo de ActiveX é o

Objeto ASPMail, o qual capta os dados de entrada (nome, email, corpo da

mensagem, etc), cria um email com esses dados e depois envia o email.

A linguagem ASP tem uma estrutura muito bem elaborada, uma vez que ela

pode ser implementada com os chamados Objetos. A linguagem ASP, além de

trazer todo o poder do VBScript para a página HTML, traz ainda o poder dos

Componentes ActiveX e dos Objetos. Os componentes ActiveX, simplificando

bastante, são bibliotecas que contém vários objetos reunidos. Principalmente

objetos que necessitam de instâncias para funcionar, o que significa que, por

exemplo, cada acesso a um banco de dados deve ocupar uma instância daquele

objeto.Objetos são add-ons que dão a capacidade de captura e transmissão de

variáveis entre as páginas, de criação e manipulação de cookies, sessions e

publicidade rotativa nos sites, a capacidade de captura de informações sobre o

Browser do usuário e sobre o servidor, de consulta, alteração e adição de dados

em Bando de Dados, de envio e recebimento de emails via página WEB, e uma

infinidade outras funções. Esses objetos podem ser criados por outras empresas,

implementando assim o poder da linguagem ASP.

Uma vez que a linguagem ASP é usada apenas em alguns "pedaços" de

páginas HTML, existe um símbolo para diferenciar o que é programação HTML e o

que é programação ASP: <% código asp %>

Abaixo segue a simbologia e as convenções de uso da linguagem ASP.

<% -> início do trecho de código ASP

%> -> final do trecho de código ASP

Page 93: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

93

Abaixo um exemplo de um código que exibe a frase Ola Mundo!!! de três

modos diferentes. O primeiro, usando apenas programação HTML, o segundo,

usando apenas comandos ASP, e o terceiro, é uma mistura de código HTML com

ASP.

<html>

<head><title>Como funciona o ASP?</title></head>

<body bgcolor="#FFFFFF">

<p> Ola Mundo primeiro esse!!!</p>

<% response.write "<p> Ola Mundo depois esse !!!</p>" %>

<p>

<%="Ola Mundo final !!!"%>

</p>

</body></html>

Como se percebe, não é necessário construir a página inteira com códigos

ASP. É possível criar páginas onde há a mesclagem das duas programações. A

única exigência é que, a partir do momento em que o código da página tenha pelo

menos uma linha na linguagem ASP, a terminação do nome da página deve ser

.asp. Somente assim o servidor poderá distinguir quais páginas devem ser

executadas antes de enviar ao Browser

Page 94: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

94

2.6. Linguagem de Script

2.6.1. Java Script

2.6.1.1. O que é JavaScript?

Conforme Torres (1997), e Alves (2004) JavaScript é uma nova linguagem

para criação de Home-Pages. Funções escritas em JavaScript podem ser

embutidas dentro de seu documento HTML. Com JavaScript temos muitas

possibilidades para "incrementar" documentos HTML com elementos

interessantes. Por exemplo, responder facilmente a eventos iniciados pelo usuário.

Alguns efeitos que são possíveis agora com JavaScript antes eram

possíveis apenas com CGI. Assim você pode criar na verdade sofisticadas

páginas com a ajuda do JavaScript.

2.6.1.2. Diferença entre JavaScript e Java

Apesar dos nomes bem parecidos, Java não é o mesmo que JavaScript!

Estas são duas técnicas diferentes de programação na Internet. Java é uma

linguagem de programação. JavaScript é uma linguagem de hiper-texto. A

diferença é que realmente podemos criar programas em Java. Mas muitas vezes

precisamos apenas criar um efeito bonito sem ter que se incomodar com

programação. A solução então é JavaScript, pois é fácil de entender e usar.

Podemos dizer que JavaScript é mais uma extensão do HTML do que uma

linguagem de programação propriamente dita

Page 95: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

95

2.6.1.3. Executando o JavaScript

Em documentos HTML, a utilização da linguagem JavaScript, se dá sob a

forma de funções (applets), as quais são chamadas em determinadas situações

ou em resposta a determinados eventos, estas funções podem estar localizadas

em qualquer parte do código HTML, a única restrição é que devem começar com a

declaração <SCRIPT> e terminar com o respectivo </SCRIPT>, por convenção

costuma-se colocar todas as funções no início do documento (entre as TAGs

<HEAD> e </HEAD>, isso para garantir que o código JavaScript seja carregado

antes que o usuário interaja com a Home Page), ou seja, antes do <BODY>.

Exemplo:

<HTML>

<HEAD>

<TITLE>Exemplo</TITLE>

Se houvesse alguma função seria bom declará-la aqui!!!

</HEAD>

<BODY>

Esta linha está escrita em HTML

<SCRIPT>document.write("Aqui já é JavaScript");</SCRIPT>

Voltamos para o HTML

</BODY>

</HTML>

Page 96: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

96

Este exemplo mostraria o seguinte:

Esta é uma linha escrita em HTML

Aqui já é JavaScript

Voltamos para o HTML

Este exemplo realmente não é dos mais úteis - poderia ter sido escrito mais

facilmente em HTML puro. O objetivo foi apenas demonstrar o uso das TAGs

<SCRIPT> e </SCRIPT>, tudo que está entre essas TAGs é encarado como

JavaScript.

É importante ressaltar, que como no C++, as linhas sejam terminadas

com; (ponto e virgula) a menos que a próxima instrução seja um ELSE e se você

precisar escrever mais de uma linha para executar uma condição seja ela em uma

estrutura For, If ou While, este bloco de instruções deve estar entre { } (chaves).

Inclusive a definição de funções segue este modelo, ou seja, todo o código da

função deve estar limitado por { (no início) e } (no final).

2.6.1.4. Suporte a JavaScript

Um browser que não suporta JavaScript, não conhece a TAG <SCRIPT>.

Ele ignora a TAG e logicamente todo o código que estiver sendo limitado por ela,

mostrando todo o código na tela como se fosse um simples texto HTML. Deste

modo o usuário veria o código JavaScript do programa dentro do documento

HTML e como certamente essa não deve ser a intenção, existe um meio de

esconder o código JavaScript dos browsers que não conhecem esta linguagem,

basta utilizar os comentários HTML <!-- e -->. O código do nosso exemplo anterior

ficaria assim:

Page 97: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

97

<HTML>

<HEAD>

<TITLE>Exemplo</TITLE>

Se houvesse alguma função seria bom declará-la aqui!!!

</HEAD>

<BODY>

Esta linha está escrita em HTML

<SCRIPT>

<!-- Esconde o código JavaScript dos browsers mais antigos

document.write("Aqui já é JavaScript"); // -->

</SCRIPT>

Voltamos para o HTML

</BODY>

</HTML>

Se o browser não suportar JavaScript e não inserirmos o comentário HTML,

o que apareceria na tela seria:

Esta é uma linha escrita em HTML

document.write("Aqui já é JavaScript");

Voltamos para o HTML

Note que esse artifício não esconde completamente o código JavaScript, o

que ele faz é prevenir que o código seja mostrado por browsers mais antigos,

porém o usuário tem acesso a todas as informações do código fonte de sua Home

Page (tanto HTML, quanto JavaScript), para isso ele só precisa escolher a opção

Document Source, no menu View.

Page 98: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

98

2.6.1.5. Detectar a versão do Browser

Este script usa as variáveis do sistema navigator.appName e

navigator.appVersion para saber qual o NAVEGADOR e a VERSÃO que estão

sendo usados pela pessoa que visita uma página. Depois ela usa o comando

document.write para exibir na tela estas informações apenas para ilustrar o

exemplo, mas na pratica a intenção seria usar estas informações para direcionar o

usuário para uma página compatível com o browser que ele estiver usando.

<html>

<head>

<title>JAVASCRIPT - Versão do Navegador</title>

<script>

function navegador()

{navegador_usado = navigator.appName

versao_navegador = navigator.appVersion

document.write("Você Está Navegando No "+navegador_usado+" Versão

"+versao_navegador+"")}

</script>

</head>

<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink= "#800080"

alink="#FF0000">

<center>

<font color="#FF0000" FACE="arial"><b>

<font size=+2>Este script é mais um exemplo da Monografia do

Jayme.<br><br></font>

<font size=+1>Nome e versão do seu Browser:</font></b>

</font><br><br>

<script>navegador()</script>

</center>

</body>

</html>

Page 99: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

99

A Figura 24 abaixo mostra como ficaria o código mostrado anteriormente.

Figura 24 Versão do Browser em JavaScript

Criar janelas é uma das grandes características do JavaScript. Você pode

construir novas janelas, carregar documentos HTML, navegar pela Internet, tudo

isso através do JavaScript. Podemos mostrar abrir uma janela e escrever

qualquer coisa nela.

Como podemos ver no exemplo abaixo, clicando no botão da Figura 25

chamamos a função WinOpen() que cria uma nova janela ao chamar o método

open conforme Figura 26. Observando o código abaixo vemos que as primeiras

aspas contêm a URL da página. Ali você pode colocar o endereço de um

documento HTML que você quer que seja carregado. Se você as deixa em

Page 100: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

100

branco, nenhuma página é carregada e se pode escrever nela com JavaScript! As

aspas seguintes especificam o nome da janela. Ali você pode escrever quase tudo

<html>

<head>

<script language="JavaScript">

function WinOpen() {

msg=open(" ","DisplayWindow",

"toolbar=no,directories=no,menubar=no");

msg.document.write("<HEAD><TITLE>MONOGRAFIA DO

JAYME</TITLE></HEAD>");

msg.document.write("<CENTER><h1><B>Mais um exemplo do

JavaScript!</B></h1></CENTER></Br></Br></Br><CENTER><h2><B>M

ONOGRAFIA DO JAYME</B></h2></CENTER>"); }

</script>

</head>

<body>

<form>

<P>Exemplo de como criar janelas no JavaScript.</br></br>

<input type="button" name="Button1"

value="Aperte-me" onclick="WinOpen()">

</br></br>Uma das grandes características da linguagem.</p>

</body>

</html>

Page 101: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

101

Figura 25 Cria uma Janela JavaScript

Figura 26 Visão da Janela JavaScript

Page 102: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

102

2.6.1.6. Outras aplicações para o Java Script

O Javascript é uma liguagem scripting que permita que você adicione a

programação real a seus webpages. Você pode criar pequenos processos ou

aplicações com o Javascript, como uma calculadora ou algum tipo de joguinho.

Entretanto, há usos mais sérios para o Javascript:

Detecção do browser: que detecta o browser usado por um visitante em sua

página. Dependendo do browser, uma outra página projetada especificamente

para esse browser pode então ser carregada.

Os Cookies que armazenam a informação no computador do visitante,

recuperando então esta informação automaticamente quando da próxima vez o

usuário visita sua página. Esta técnica é chamada “Cookies”.

Controle dos browsers que abrem páginas nas janelas customizadas,

onde você especifica se as teclas do browser, linha do menu, linha de status ou o

que quer que deva estar presente.

Validação dos campos dos formulários que são examinados na entrada

dos dado, antes de submeter um formulário. Um exemplo seria validação do email

para verificar se no local do endereço de email foi digitado “@”, caso contrário o

endereço não é válido.

Page 103: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

103

2.6.2. WMLScript

2.6.2.1. O que é o WMLScritp:

O WMLScript é uma linguagem de script leve e procedural, segundo Forta

(2001), projetada para sofisticar e realçar as facilidades de navegação e

apresentação do WML, bem como proporcionar aos terminais de acesso sem fio

capacidade de servir conteúdo dinâmico aos assinantes com um mínimo de

interação sem fio.

Usando WMLScript, as seleções e entradas do usuário podem ser retidas e

distribuídas entre os cartões já carregados, eliminando então, transações

excessivas com os servidores remotos. Claro que com limitações para o usuário.

Dependendo da capacidade de memória do cliente, pode ser necessário dividir

vários cartões e vários Decks para evitar que um deck fique demasiadamente

grande.

É bom mencionar que quando o WML e o WMLScript trabalham juntos, eles

compartilham as mesmas variáveis. O WML trabalha com entrada e saída de

dados, exibição de conteúdo e processamento de eventos, mas não tem recursos

computacionais elaborados.

O WMLScript preenche este vazio. Ele pode definir funções que podem ser

chamadas a partir de programas WML. Dentro destas funções pode-se manipular

instruções de atribuição, chamadas de funções, construções de laços, tipos de

dados básicos fracamente tipados e um conjunto completo e poderoso de

operadores lógicos, aritméticos e de comparação.

Page 104: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

104

2.6.2.2. O que pode ser feito com WMLScript:

Dar suporte a comportamento da Standardized Generalized

Markup Language(UI) de modo mais avançado;

Adicionar inteligência ao cliente;

Prover um mecanismo conveniente de acesso aos dispositivos e

seus periféricos;

Verificar a validade dos dados de entrada por parte do usuário;

Manejar mediante código funções próprias do terminal, como

realizar chamadas deste telefone, enviar mensagens e agregar

um número de telefone a uma lista de endereços;

Realizar alertas, mensagens de erro, confirmações, etc;

Reduzir a necessidade de idas e voltas ao servidor.

Ainda segundo Forta (2001)A linguagem é fracamente baseada na

linguagem de script da Internet o JavaScript, pois foi refinada para dispositivos de

banda estreita. Os tipos de dados suportados pelo WMLScript são lógico, inteiro,

ponto flutuante cadeia de caracteres e inválido, e a própria linguagem tenta fazer a

conversão automaticamente entre os tipos.

A linguagem suporta também várias categorias de operações, como:

atribuições, aritméticas, lógicas e comparações, e vários tipos de funções, como

locais, externas e de bibliotecas, além de definir uma série de bibliotecas incluindo

uma para linguagem, uma para cadeia de caracteres, uma para navegador, uma

para ponto flutuante e uma para diálogo.

Page 105: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

105

2.6.2.3. Principais características da linguagem WMLScript:

O WMLScript foi criado para ser semelhante ao ECMAScript

(desenvolvido pela European Computer Manufacturers Association)

que foi a formalização do JavaScript, o que o torna bastante fácil de

aprender e usar.

Lógica Procedural: o WML proporciona comportamento dinâmico

simples usando eventos, tarefas e substituição de variáveis, mas

suas ações são limitadas por falta de lógica procedural.

Implementação compilada pelos gateways em uma representação

binária compacta, apropriada para redes sem fio e eficiente para ser

interpretada por terminais sem fio.

A linguagem é totalmente integrada com o navegador WML, o que

permite ao desenvolvedor construir serviços usando ambas as

tecnologias, escolhendo a mais apropriada para a tarefa.

Suporte internacional.

A linguagem pode ser usada para expor e estender a funcionalidade

do dispositivo sem mudanças no software deste.

Page 106: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

106

2.6.2.4. Exemplo de programa escrito em WMLScript:

extern function submit()

{

var a = Lang.parseFloat(WMLBrowser.getVar("valor"));

var op = WMLBrowser.getVar("opcao");

var c = invalid;

if (op == "reais")

{

c = a / 3;

}

else if (op == "dolares")

{

c = a * 3;

}

WMLBrowser.setVar("resultado", String.toString(c));

WMLBrowser.go("exercicio4.wml#Resultado");

}

Este programa é constituído de apenas uma função responsável por fazer a

conversão dólar/reais. As variáveis ”a” e ”op” declaradas nas linhas 3 e 4, são

capazes de capturar os valores das variáveis ”valor” e ”opção” utilizadas pelo

documento WML. Entre as linhas sete e 14 são feitos os cálculos propriamente

ditos da conversão. Na linha 15 a variável ”resultado” recebe o valor encontrado

após a conversão e na última linha de código existe uma instrução para voltar ao

programa WML.

Page 107: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

107

2.7. Banco de Dados

2.7.1. MySQL

2.7.1.1. O que é MySQL?

Segundo Anselmo (2000) e Parra (2004), o MySQL é um sistema de banco

de dados rápido e fácil, que consegue interagir com diversas linguagens de

programação Web, tais como ASP e PHP. O programa MySQL é tido como um

servidor robusto de bancos de dados SQL (Structured Query Language -

Linguagem Estruturada para Pesquisas) muito rápido, multi-tarefas e multi-

usuários. O Servidor MySQL pode ser usado em sistemas de produção com alta

carga e missão crítica bem como pode ser embutido em programas de uso em

massa. MySQL é uma marca registrada da MySQL AB, além de ser gratuito e de

código aberto.

É um sistema de gerenciamento de bancos de dados relacional. Um banco

de dados relacional armazena dados em tabelas separadas em vez de colocar

todos os dados em um só local. Isso proporciona velocidade e flexibilidade. O

MySQL é um programa interativo que permite você conectar com um servidor de

MySQL, perguntar e ver os resultados.

MySQL utilizado em modo de lote é quando colocamos perguntas em um

arquivo de antemão, e o MySQL executa os conteúdos do arquivo.

Para ver uma lista de opções fornecidas pelo MySQL, devemos abrí-lo com

-help: shell> mysql --help

Para conectar a um servidor, usualmente necessitaremos fornecer um

usuário ao MySQL e, mais provavelmente, uma senha. Se o servidor estiver numa

Page 108: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

108

máquina que não tem onde se registrar, também necessitaremos especificar um

hostname.

shell> mysql -h host -u user -p

Enter password: ********

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 459 to server version: 3.22.20a-log

mysql>

O prompt diz que está pronto para receber os comandos. Algumas

instalações do MySQL permitem aos usuários conectar com o servidor e continuar

como anfitrião local. Quando é este o caso podemos nos conectar com o servidor

ao abrir o MySQL sem quaisquer opções:

shell> mysql

Depois de conectado, pode-se desconectar a qualquer momento, é só

digitar QUIT no mysql> prompt:

mysql> QUIT

Bye

Podemos também, nos desconectar digitando o comando control-D.

2.7.1.2. Como funciona o MySQL?

O MySQL funciona através de querys para a execução de comandos, como

por exemplo: CREATE DATABASE (criar Database, onde ficam todas as tabelas

que você cria), CREATE TABLE (criar tabela), INSERT INTO (inserir registro em

uma tabela) e UPDATE (Updade dos dados de um registro).

Page 109: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

109

2.7.1.3. Perguntando (querys):

Neste ponto, é mais importante descobrir como emitir perguntas do que

criar tabelas, carregar e recuperar dados. Esta seção descreve os princípios

básicos de como entrar com os comandos, usando várias perguntas.

Para ilustrar as característica do programa, podemos iniciar com um

comando simples do MySQL. que pergunta ao servidor o número de sua versão e

a data corrente.

mysql> SELECT VERSION(), CURRENT_DATE;

+--------------+--------------+

| version() | CURRENT_DATE |

+--------------+--------------+

| 3.22.20a-log | 1999-03-19 |

+--------------+--------------+

1 row in set (0.01 sec)

mysql>

Esta pergunta ilustra várias coisas sobre MySQL:

Um comando normalmente consiste de uma declaração do SQL

seguida por um ponto-e-vírgula, há algumas exceções onde um

ponto-e-vírgula não é necessário, QUIT, mencionado anteriormente,

é um deles.

Quando emitimos um comando, MySQL envia ao servidor para

execução e exibe os resultados, então exibe mysql>, para indicar

que está pronto para outro comando.

Page 110: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

110

MySQL exibe a saída da pergunta como uma tabela (filas e colunas).

A primeira fila contém os rótulos das colunas. As demais filas são os

resultados da pergunta. Normalmente, os rótulos da coluna são os

nomes das colunas que vêm das tabelas do banco de dados. Se

você está recuperando o valor de uma expressão, em vez de uma

coluna de tabela, MySQL rotula a coluna usando a expressão que foi

usada.

MySQL mostra quantas filas foram exibidas, e quanto tempo à

pergunta levou para ser executada, dando uma idéia rude de

performance do servidor. Esses valores são imprecisos porque eles

representam tempo de relógio de parede (não CPU ou tempo de

máquina), e porque eles são afetados por certos tipos de fatores.

Palavras chaves podem ser inseridas em qualquer caixa de entrada .

As seguintes perguntas são equivalentes:

mysql> SELECT VERSION(), CURRENT_DATE;

mysql> select version(), current_date;

mysql> SeLeCt vErSiOn(), current_DATE;

Além das “Querys” apresentadas acima, existe a possibilidade de formar

várias outras por meio de agrupamento de palavras reservadas do programa

Page 111: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

111

2.7.1.4. O uso do MySQL com linguagens de programação

Cada linguagem de programação tem suas peculiaridades, por isso não

podemos definir como usá-la de uma maneira geral, mas cada linguagem possui

um método de você executar uma query no Mysql com suas funções, as quais

variam, de acordo com a linguagem.

2.7.1.5. Acessando o MySQL via PHP

Estabelecendo conexões

Para acessar bases de dados num servidor mySQL, é necessário antes

estabelecer uma conexão. Para isso, deve ser utilizado o comando

mysql_connect, ou o mysql_pconnect. A diferença entre os dois comandos é que o

mysql_pconnect estabelece uma conexão permanente, ou seja, que não é

encerrada ao final da execução do script. As assinaturas dos dois comandos são

semelhantes, como pode ser verificado a seguir:

int mysql_connect(string [host[:porta]] , string [login] , string [senha] );

int mysql_pconnect(string [host[:porta]] , string [login] , string [senha] );

O valor de retorno é um inteiro que identifica a conexão, ou falso se a

conexão falhar. Antes de tentar estabelecer uma conexão, o interpretador PHP

verifica se já existe uma conexão estabelecida com o mesmo host, o mesmo login

e a mesma senha. Se existir, o identificador desta conexão é retornado. Senão,

uma nova conexão é criada.

Page 112: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

112

Uma conexão estabelecida com o comando mysql_connect é encerrada ao

final da execução do script. Para encerrá−la antes disso deve ser utilizado o

comando mysql_close, que tem a seguinte assinatura:

int mysql_close(int [identificador da conexão] );

Se o identificador não for fornecido, a última conexão estabelecida será

encerrada.

IMPORTANTE: o comando mysql_close não encerra conexões estabelecidas com

o comando mysql_pconnect.

2.7.1.6. Selecionando a base de dados

Depois de estabelecida a conexão, é preciso selecionar a base de dados a ser

utilizada, através do comando:

mysql_select_db, que segue o seguinte modelo:

int mysql_select_db(string base, int [conexao] );

Novamente, se o identificador da conexão não for fornecido, a última

conexão estabelecida será utilizada.

2.7.1.7. Realizando consultas

Para executar consultas SQL no mySQL, utiliza−se o comando

mysql_query, que tem a seguinte assinatura:

int mysql_query(string query, int [conexao] );

Page 113: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

113

Onde query é a expressão SQL a ser executada, sem o ponto−e−vírgula no

final, e conexão é o identificador da conexão a ser utilizada. A consulta será

executada na base de dados selecionada pelo comando

mysql_select_db.

É bom lembrar que uma consulta não significa apenas um comando SELECT. A

consulta pode conter qualquer comando SQL aceito pelo banco. O valor de

retorno é falso se a expressão SQL for incorreta, e diferente de zero se for correta.

No caso de uma expressão SELECT, as linhas retornadas são armazenadas

numa memória de resultados, e o valor de retorno é o identificador do resultado.

Alguns comandos podem ser realizados com esse resultado:

2.7.1.8. Apagando o resultado

int mysql_free_result(int result);

O comando mysql_free−result deve ser utilizado para apagar da memória o

resultado indicado.

2.7.1.9. Número de linhas

int mysql_num_rows(int result);

O comando mysql_num_rows retorna o número de linhas contidas num resultado.

2.7.1.10. Utilizando os resultados

Existem diversas maneiras de ler os resultados de uma query SELECT. As

mais comuns serão vistas a seguir:

Page 114: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

114

int mysql_result(int result, int linha, mixed [campo] );

Retorna o conteúdo de uma célula da tabela de resultados. result é o identificador

do resultado; linha é o número da linha, iniciado por zero; campo é uma string

com o nome do campo, ou um número correspondente ao número da coluna. Se

foi utilizado um alias na consulta, este deve ser utilizado no comando

mysql_result. Este comando deve ser utilizado apenas para resultados

pequenos. Quando o volume de dados for maior, é recomendado utilizar um dos

métodos a seguir:

array mysql_fetch_array(int result);

Lê uma linha do resultado e devolve um array, cujos índices são os nomes dos

campos. A execução seguinte do mesmo comando lerá a próxima linha, até

chegar ao final do resultado.

array mysql_fetch_row(int result);

Semelhante ao comando anterior, com a diferença que os índices do array são

numéricos, iniciando pelo zero (zero).

2.7.1.11. Alterando o ponteiro de um resultado

int mysql_data_seek(int result, int numero);

Cada resultado possui um “ponteiro”, que indica qual será a próxima linha lida com

o comando mysql_fetch_row (ou mysql_fetch_array). Para alterar a posição

indicada por esse ponteiro deve ser utilizada a função mysql_data_seek, sendo

que o número da primeira linha de um resultado é zero.

Page 115: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

115

2.8. Servidores WEB

2.8.1. Personal Web Server - PWS

2.8.1.1. O que é PWS

Segundo Hokama (2003), o Personal Web Server é um servidor WWW

gratuito, da Microsoft, que roda em computadores com sistema operacional

Windows 95 e 98.

Para quem desenvolve sites, é muito importante trabalharmos primeiro

"localmente" e ver nossas páginas no nosso próprio micro, antes de enviá-la para

a Internet. Com o Personal Web Server (ou simplesmente "PWS"), isso fica bem

mais fácil.

2.8.1.2. Suporte do Servidor PWS.

Ele é um servidor WWW leve, feito sob medida para instalações pequenas

e suporta as seguintes aplicações:

ASP

PHP

Server Side Includes (SSI)

Controles ActiveX

Roda scripts "Internet Server API (ISAPI)" e "Common Gateway Interface

(CGI)"

Acesso à banco de dados via ODBC

Secure Sockets Layer (SSL)

Page 116: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

116

2.8.1.3. Requisitos para instalação

O computador onde o Personal Web Server vai ser instalado e qualquer

cliente que quiser acessá-lo via rede, deve ter o protocolo TCP/IP instalado. Este

protocolo vem com sistema operacional Windows.

O adaptador onde TCP/IP está instalado não é importante por enquanto. O

que interessa é que este protocolo deve estar na lista. Se não estiver, deve ser

adicionado por meio de uma instalação.

Quanto ao hardware, pode ser instalado em uma maquina modesta

(pressupondo que esta instalação seria usada para teste), está configuração

básica poderia ser um Pentium clássico de 200Mhz, com 64 MB de memória RAM

e um espaço mínimo no HD.

No Apêndice I fazemos uma apresentação com maiores detalhes da

instalação e configuração do Personal Web Server.

Page 117: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

117

2.8.2. Tomcat

2.8.2.1. O Software Tomcat

Segundo Portaljava (2004) o software Tomcat, desenvolvido pela Fundação

Apache, permite a execução de aplicações para web. Sua principal característica

técnica é estar centrada na linguagem de programação Java, mais

especificamente nas tecnologias de Servlets e de Java Server Pages (JSP). Esta

abordagem rivaliza, por exemplo, com a usada pela Microsoft com o ASP

(baseada na linguagem Visual Basic).

A Fundação Apache, mais conhecida pelo seu servidor web de mesmo

nome, permite, como no caso do servidor Apache, que o Tomcat seja usado

livremente, seja para fins comerciais ou não.

O Tomcat está escrito em Java e, por isso, necessita que a versão Java 2

Standard Edition (J2SE) esteja instalada no mesmo computador onde ele será

executado. No entanto, não basta ter a versão runtime de Java instalada, pois o

Tomcat necessita compilar (e não apenas executar) programas escritos em Java.

O projeto Jakarta da Fundação Apache, do qual o subprojeto Tomcat é o

representante mais ilustre, tem como objetivo o desenvolvimento de soluções

código aberto baseadas na plataforma Java.

2.8.2.2. Linguagens: Java, HTML e XML

O desenvolvimento de uma típica aplicação web a ser executada pelo

Tomcat implica no domínio das seguintes linguagens:

Page 118: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

118

Java : Todos os algoritmos da aplicação devem ser escritos em Java.

HTML: A interface da aplicação, isto é, aquilo que o usuário vê em sua tela,

é construída na forma de páginas escrita em HTML e visualizada através do

browser do usuário. Esta tarefa normalmente é delegada ao web designer.

XML : Qualquer aspecto relacionado à configuração da aplicação deve ser

expresso por meio da linguagem XML em um arquivo chamado web.xml.

Os dados de configuração podem ser usados tanto pelo Tomcat como pela

aplicação.

2.8.2.3. Servlets e Java Server Pages

Um servlet é uma classe escrita em Java cujos objetos têm a finalidade de

gerar documentos codificados em HTML. Esta característica dos servlets implica

em que um web designer precisa conhecer Java para poder construir as páginas

de uma aplicação. Esta limitação (quantos web designers conhecem Java?) é

superada pela tecnologia de JSP.

Uma página escrita em JSP (arquivos com extensão .jsp) é uma página

escrita em HTML e que contém pequenos fragmentos de código Java e/ou tags

especiais (definidos na especificação JSP). Com estes tags, o web designer não

necessita escrever uma única linha de código Java. Ao contrário do que acontece

com a tecnologia ASP, o analista/programador pode criar (em Java) os seus

próprios tags customizados para a aplicação em desenvolvimento.

2.8.2.4. O servidor Tomcat

O servidor Tomcat tem a habilidade de converter automaticamente qualquer

página JSP em um servlet equivalente. Em outras palavras, o Tomcat é capaz de

criar código fonte Java a partir de um documento HTML.

Page 119: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

119

2.8.2.5. Ponto de vista técnico

Do ponto de vista técnico, Tomcat é a implementação referência das

especificações das tecnologias de servlets e JSP criadas pela Sun. A versão 4.0.x

do Tomcat implementa as especificações Servlet 2.3 e JSP 1.2 (que são as mais

recentes). Várias empresas, como Borland, IBM, BEA, etc., também oferecem

suas implementações das duas especificações da Sun.

2.8.2.6. Ponto de vista operacional

Do ponto de vista operacional, a principal finalidade das tecnologias de

servlets e JSP é permitir a criação dinâmica de conteúdos. A dinâmica, em um

cenário típico, funciona do seguinte modo: Um usuário, no seu browser, solicita

algum documento (indicado por um URL) a um servidor Tomcat; O servidor, ao

receber uma solicitação (URL) do usuário, executa o servlet ou JSP

correspondente aquele URL (a associação entre URL e servlet ou JSP é

especificada no arquivo web.xml). O conteúdo gerado pelo servlet ou JSP,

normalmente um documento no formato HTML, é uma combinação de tags HTML

(incluídos explicitamente) e o resultado de algum processamento (por exemplo,

algoritmo Java e/ou acesso a um banco de dados). O usuário recebe o conteúdo

gerado pelo servidor Tomcat e o exibe através do seu browser.

No Apêndice II fazemos uma apresentação com maiores detalhes da

instalação e configuração do Servidor Tomcat.

Page 120: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

120

2.8.3. Apache/PHP em Windows

2.8.3.1. Demonstrando o Apache

O Apache é um servidor Web extremamente configurável, robusto e de alta

performance desenvolvido por uma equipe de voluntários (conhecida como

Apache Group), buscando criar um servidor web com muitos recursos e com

código fonte disponível gratuitamente via Internet em http://www.apache.org/.

O Apache é mais usado que todos os outros servidores web do mundo

juntos.

2.8.3.2. Hardware necessário

A máquina mínima para se rodar um servidor Apache para atender a uma

rede padrão 10MB/s é um Pentium 90MHz, 24MB de memória RAM, um HD com

um bom desempenho e espaço em disco de acordo com o tamanho projetado de

seu servidor web (considerando seu crescimento).

2.8.3.3. Características técnicas

Podemos citar ainda uma lista de características técnicas que o Apache

apresenta, como:

Suporte a scripts CGI usando linguagens como PHP, Perl, ASP,

Shell Script, etc;

Módulos DSO (Dynamic Shared Objects) permitem

adicionar/remover funcionalidades e recursos sem necessidade de

recompilação do programa;

Page 121: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

121

Autenticação, requerendo um nome de usuário e senha válidos para

acesso a alguma página/sub-diretório/arquivo (suportando

criptografia via Crypto e MD5).

Suporte à autorização de acesso, podendo ser especificadas

restrições de acesso separadamente para cada

endereço/arquivo/diretório acessado no servidor;

Suporte a virtual hosting, por nome ou endereço IP: é possível servir

duas ou mais páginas com endereços/portas diferentes através do

mesmo processo, ou usar mais de um processo para controlar mais

de um endereço;

Suporte a servidor proxy FTP e HTTP, com limite de acesso, caching

(todas flexivelmente configuráveis). Suporte a proxy e

redirecionamentos baseados em URLs para endereços internos;

Suporte a criptografia via SSL, certificados digitais;

Negociação de conteúdo, permitindo a exibição da página Web no

idioma.

requisitado pelo Cliente Navegador.

Suporte a tipos MIME;

Personalização de logs.

No Apêndice III fazemos uma apresentação com maiores detalhes da

instalação e configuração do Servidor Apache.

Page 122: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

122

3. Metodologia ( Materiais e Métodos )

3.1. Métodos

Primeiramente foi feito um estudo das tecnologias que dão suporte às

aplicações WAP, WML e WMLScript e um levantamentos das referências para os

dispositivos móveis, analisando o que já havia sido feito e o que foi usado como

ferramenta. Houve necessidade também de avaliar como alguns aplicativos

funcionavam.

Estudo da comunicação entre os telefones celulares, PDAs (Personal

Digital Assistant) com programas servidores.

Comparações de ferramentas para implementação de um ambiente para

hospedar aplicações wireless.

Investigação de tecnologias relacionadas para desenvolvimento de

aplicações WML/WAP

Estudos e levantamento das ferramentas que poderiam auxiliar no

desenvolvimento de aplicações para os dispositivos móveis.

Concepção de um estudo de caso onde poderíamos avaliar de forma mais

ampla as possíveis variáveis de utilização da tecnologia dentro de um único

sistema, onde deveriam ser agregados as linguagens pretendidas junto

com banco de dados formando um único sistema wireless e sistema WEB.

Instalação dos software necessários para construção e teste do aplicativo.

Desenvolvimento de uma pequena aplicação Web

Page 123: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

123

Seleção do ambiente para a implementação do estudo de caso.

Implementação, teste e validação do estudo de caso e.

Elaboração e desenvolvimento de estudo de caso usando tecnologia

WML/WAP

Realização de testes e avaliação de resultados em diversos emuladores

Apresentação dos resultados e discussões.

3.2. Materiais

3.2.1. Software

Para o desenvolvimento dos estudos foram utilizados vários softwares

descritos abaixo, dois micros e um telefone celular.

Navegadores

Mozilla 1.7.2

Opera 7.53

Microsoft Internet Explorer 6.0

Editores textos

Macromedia Dreamweaver 6.0

Microsoft Notepad 5.1

Microsoft Word 2000

Editores de Imagens

Advanced Batch converter 3.9

Page 124: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

124

Simuladores

OpenWave SDK 6.22

WinWap SmartPhone Browser V 1.2

Nokia 7210 SDK v. 1.0

Nokia 5100 SDK v. 1.0

Nokia 7210 SDK v. 1.0

Nokia 6230 S40 SDK DP 2.0

Nokia Mobile Browser 4.0 NMB 4.0

Nokia WAP Gateway Simulator V 4.0

Nokia Mobile Internet ToolKit v 4.0 may/2003

Servidores

Apache 1.3.14

PWS

Tomcat

Linguagem de Programação, Marcação e Script.

PHP 4.3.4 - Win32

ASP

WML

WMLScript

JavaScript

Banco de Dados

MySQL - 4.0.16 - win

MySQL Front V 2.05

Java 2 Platform, Standard Edition (J2SE)

Java 2 SDK, Standard Edition, v. 1.4.2 for Windows

Page 125: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

125

3.2.2. Equipamentos

Telefone celular Siemens GSM/GRPS modelo MC60 habilitado pela

operadora local, Brasiltelecom. Esse aparelho serviu para os teste de campo.

Um microcomputador AMD Athlon 1.1GHz com 256MB de memória RAM

e 20GB.de disco rígido conectado na intranet do depto. de informática e limitado

por um hub ao tráfego de 10mb/seg. trabalhando com sistema operacional

Windows XP onde ficaram instalados os softwares para implementação,

desenvolvimento e teste de avaliação/simulação dos estudos. Esse equipamento,

serviu como base de desenvolvimento.

Um microcomputador AMD K6 II 450MHz com 128 de memória RAM e

10GB.de disco rígido conectado na intranet do depto. de informática e limitado por

um hub ao trafego de 10mb/seg. trabalhando com sistema operacional Windows

98 onde ficaram instalados os servidores de web Apache, PWS e banco de dados

MySQL, para implementação, desenvolvimento e teste de avaliação/simulação

dos estudos. Esse equipamento, serviu como apoio ao desenvolvimento. Um

editor de WML e PHP para pequenas alterações nos softwares, também foi

necessário instalar.

Page 126: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

126

4. Tecnologias Envolvidas no Estudo de Caso

Neste capítulo veremos quais as tecnologias que foram selecionadas para

o desenvolvimento do “Estudo de Caso Enquete On Line”, e fazendo um

comentário do porquê da escolha de cada uma delas.

4.1. Wireless

Como nosso estudo de caso trata de uma aplicação wireless a qual é

utilizada na comunicação (troca de informações) entre dispositivos móveis, torna-

se indispensável a utilização das tecnologias envolvidas como:

WAP (wireless Application Protocol) por ter sido criado

especificamente para ser utilizado em dispositivos sem fio é o mais

eficiente protocolo para esse tipo de aplicação (Forta 2001).

Linguagem de marcação WML, por ter sido criada para atender as

necessidades dos dispositivos sem fios (Forta 2001).

WMLScript por ser uma linguagem de Script projetada para facilitar a

navegação e apresentação da WML, bem como proporcionar

capacidade de servir conteúdos dinâmicos aos dispositivos wireless

como o mínimo de interação (Forta 2001).

4.2. Linguagem para web

Para o desenvolvimento da estrutura WEB optamos pelo PHP (Hipertext

Preprocessor) pelos seguintes motivos: segundo Ullman (2001):

Uma linguagem fácil de aprender

O código do PHP fica embutido dentro HTML

É uma linguagem de script executada do lado do servidor.

Código fonte aberto e gratuito.

Page 127: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

127

Excelente velocidade de execução.

Acesso nativo a vários bancos de dados.

Multiplataforma, compatível com vários servidores web.

4.3. Servidor WEB

Como servidor Web optamos pelo Apache. Segundo Shibayama D. (2005)

é um servidor Web Alta performance com muitos recursos , além de:

Alta performance com muitos recursos e com

Código fonte disponível gratuitamente.

Suporte a scripts CGI usando linguagens como PHP, e outras.

Autenticação, requerendo um nome de usuário e senha válidos para

acesso a alguma página/sub-diretório/arquivo

Suporte à autorização de acesso.

Suporte a servidor proxy FTP e HTTP.

Negociação de conteúdo, permitindo a exibição da página Web no

idioma requisitado pelo Cliente Navegador.

Suporte a tipos MIME;

Extremamente configurável e robusto.

4.4. Banco de dados

Para o desenvolvimento optou-se pelo banco de dados MySQL , pois

segundo Anselmo (2000):

Utiliza linguagem SQL (structure Query language) para realizar

operações no banco de dados.

Suporta varias plataformas como win32 entre outras

Suporta API (Application Program Interface) para linguagens como PHP

entre outras .

Page 128: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

128

Suporta múltiplos processos.

Conexão com protocolo TCP/IP.

Excelente velocidade de execução.

Facilidade de uso e robustez.

Open source.

No próximo capítulo abordaremos como foi desenvolvido nosso estudo de

caso “Enquete On Line”, mostrando os diagramas, e outros detalhes.

Page 129: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

129

5. Desenvolvimento do Estudo de Caso “Enquete on Line”

Neste capitulo vamos demonstrar como foi estruturado nosso estudo de

caso, como e o que foi utilizado para sua criação.

5.1. Descrição do Sistema

Enquete é uma forma de pesquisa que lançamos mão quando o objetivo é

realizar uma pesquisa de opinião. O Sistema Enquete é uma aplicação que

oferece soluções voltadas a pesquisa de opiniões integrando dispositivos wireless

e internet, onde o controle pelo administrador é feito em tempo real.

5.2. Visão Geral do Sistema

PAGINÁ

PRINCIPAL

WEB

CADASTRAVOTADISPONIBILIZA

ENQUETE

ENQUETE

WAP

RESULTADO

SOLICITA

CONFIRMAÇÃO

RESPOSTA

FINALIZAÇÃO

OPÇÕES

PAGINÁ

APRESENTAÇÃO

Figura 27 Visão Geral do Sistema

Page 130: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

130

5.3. Diagrama de Use Case

A Figura 28 mostra o diagrama de use case visão do Administrador do

protótipo Enquete On Line, e abaixo apresenta suas funcionalidades.

Cadastro Enquete

Administrador

Excluir Enquete

Ativar Enquete

Consultar Enquete

Figura 28 Use Case visão do Administrador

Funcionalidades do use case Administrador

Use Case Descrição

Cadastrar Enquete Adiciona uma nova Enquete

Ativar Enquete Disponibiliza uma Enquete p/ resposta

Excluir enquete Elimina uma Enquete do BD

Consultar Enquete Consulta votos/opções da Enquete

A Figura 29 mostra o diagrama de use case visão dos Usuários WEB do

protótipo Enquete On Line, e abaixo apresenta suas funcionalidades.

Page 131: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

131

Usuario WEB Efetuar Votação

Consultar Posição

Figura 29 Use Case visão dos Usuários WEB

Funcionalidades do use case Usuários WEB

Use Case Descrição

Consultar posição Verifica posição de todas as opções da Enquete

Votar votação Adiciona voto p/ uma opção da Enquete

A Figura 30 mostra o diagrama de use case visão dos Usuários WAP do

protótipo Enquete On Line, e abaixo apresenta suas funcionalidades.

Usuario WAP Efetuar Votação

Receber Posição

Figura 30 Use Case visão dos Usuários WAP

Funcionalidades do use case Usuários WAP

Use Case Descrição

Receber posição Recebe posição da opção votada na Enquete

Votar votação Adiciona voto p/ uma opção da Enquete

Page 132: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

132

5.4. Diagrama de Classes

Classe é a descrição de um conjunto de objetos que tem os mesmo

atributos, operações relacionamentos e semânticas.

ADMINISTRADOR

senha

USARIO / WEB

USUARIO / WAP

Titulo

op1

op2

op3

op4

op5

op6

t_op1

t_op2

t_op3

t_op4

t_op5

t_op6

Ativo

EnqueteBD

Cadastrar

Ativar

Excluir

Figura 31 Diagrama de Classes

Page 133: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

133

5.5. Dicionário de Dados

EnqueteDB

Atributos Tipo Tamanho Obrigatório Descrição

id int Num. 3 Sim Chave Primaria

Titulo char Caract 150 Titulo da Enquete

op1 int Num. 3 Opção 1

op2 int Num. 3 Opção 2

op3 int Num. 3 Opção 3

op4 int Num. 3 Opção 4

op5 int Num. 3 Opção 5

op6 int Num. 3 Opção 6

t_op1 char Caract 50 Não Descrição da opção 1

t_op2 char Caract 50 Não Descrição da opção 2

t_op3 char Caract 50 Não Descrição da opção 3

t_op4 char Caract 50 Não Descrição da opção 4

t_op5 char Caract 50 Não Descrição da opção 5

t_op6 char Caract 50 Não Descrição da opção 6

Ativo char Num. 1 Sim Mostra a Enquete ativa

5.6. Fluxo de Chamada das Telas

WEB WAP

1

1.2 1.31.1

2

1

4

3

Figura 32 Fluxo de chamada das Telas

1-Pagina Principal 1-Pagina de Apresentação

1.1-Criação da Enquete 2-Seleciona Enquete

1.2-Votação 3-Solicitação de Confirmação

1.3 Resultado 4- Resposta e Finalização

Page 134: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

134

5.7. Layout das Telas

5.7.1. WEB

1-Página Principal

Figura 33 Página Principal

1.1-Criação da Enquete

Figura 34 Criação da Enquete

1.2-Votação

Page 135: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

135

Figura 35 Votação

1.3 Resultado

Figura 36 Resultado

Page 136: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

136

5.7.2. WAP

1-Página de apresentação

Figura 37 Página de apresentação

Page 137: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

137

2-Seleciona Enquete

Figura 38 Seleciona Enquete

Page 138: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

138

3 Solicitação de confirmação

Figura 39 Solicitação de confirmação

Page 139: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

139

4-Resposta da opção e Finalização

Figura 40 Resposta e Finalização

Page 140: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

140

5.8. Relação de Programas

NOME DESCRIÇÃO

INDEX Mostra a pagina principal

INICIO Faz a apresentação

SALVA_VOTO Adiciona mais um a opção selecionada

ENQUETE APRESENTA A ALTERNATIVA SELECIONADA E PEDE P/ CONFIRMAR

ENQUETES Apresenta a Enquete selecionada / ativada

CRIA Cria as enquetes

VOTA Apresenta as opções para selecionar

RESULTADO Apresenta o resultado on line da tabela (gráfico e percent.)

5.9. Relação de Arquivos

Nome da Tabela Nome do DataBAse

Enquete EnqueteDB

Arquitetura do Sistema SGBD

SGBD

MySQL

WML e PHP

WEB SERVER APACHE

PARA WINDOWS

Figura 41 Arquitetura do Sistema SGBD

No próximo capitulo será mostrado os resultados obtidos, onde citaremos

o que foi estudado e utilizado para o desenvolvimento do sistema.

Page 141: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

141

6. Resultados Obtidos

Neste capitulo vamos abordar os estudos e teste que foram realizados para

o desenvolvimento do estudo de caso e desta monografia.

6.1. Simuladores

Foram instalados seis emuladores de dispositivos moveis conforme as

Figuras 42 a Figura 47 abaixo, onde foi possível verificar as dificuldades de

instalação de cada um e como as paginas WML são apresentadas nas telas.

Todos os emuladores usados são gratuitos e foram conseguidos na Internet.

Figura 42 OpenWave

SDK 6.22

Figura 43 Nokia

Mobile Browser

Figura 44 Nokia 5100

SDK v. 1.0

Page 142: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

142

Figura 45 Nokia

6230 S40

Figura 46 WinWap

SmartPhone

Figura 47 Nokia

7210 SDK v. 1.0

Quanto à instalação o Nokia SDK (Service Development Kits ou

simplesmente Kit para Desenvolvimento de Serviço) é um dos mais simples,

possui um emulador 7110 que não requer um Gateway independente, pois traz um

interno, conforme Figura 48.

Figura 48 Nokia WAP Gateway Simulator V 4.0

Page 143: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

143

Já o Nokia WAP Toolkit foi desenvolvido em Java, o que implica ter que

instalar o JRE e também é necessário utilizar um Gateway independente. A

vantagem de utilizar o ToolKit é que oferece a possibilidade de compilar os

arquivos WML e WMLS, a Figura 49 mostra a área de trabalho da ferramenta.

Figura 49 Nokia Mobile Internet ToolKit v 4.0 may/2003

Os emuladores que vêm nos kits para desenvolvedores são os mais

completos: documentação, gateway, editor e compilador. Eles facilitam a edição e

a depuração dos erros no código fonte. Entre eles a documentação mais completa

é fornecidas pela Nokia e Phone.com.

Apesar dos recursos adicionais do Nokia WAP Toolkit, ainda é preferível as

facilidade do Nokia SDK, tanto pela instalação como pelo uso. O OpenWave SDK

6.22, é o que oferece maior atrativo, um utilitário wizard deixa a instalação já

configurada, pronta para o uso, e a operação é mais intuitiva, dirigida e

estruturada para as necessidades dos desenvolvedores. O trabalho com os

emuladores apresentou várias vantagens, entre elas:

Foi possível simular o teste nos seis (6) modelos apresentados.

Não foi necessário estar conectado na internet.

O resultado da pagina testada foi apresentada de imediato off-line.

A instalação do pacote Java 2 SDK, Standard Edition, v. 1.4.2 for Windows

somente foi instalado para teste do emulador.

Page 144: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

144

6.2. Teste de Micronavegadores.

Foi feita uma bateria de teste em todos os simuladores usando o mesmo

código WML. A apresentação do código WML nos micronavegadores deveria ser

diferente em cada modelo ou pelo menos na maioria deles, conforme todos os

autores descrevem em suas literaturas, porém não foi isso que constatamos. As

diferenças apresentadas nos micronavegadores foram mínimas, como: estilo,

centralização e quebra de linha, sendo que em nenhum deles a mensagem ficou

ilegível ou distorcida.

6.3. WEB Browser

Foi verificado que os navegadores para WEB utilizados nos PCs desktop

não suportam a linguagem WML, quando chamado um arquivo ponto WML é

apresentando o código HTML e em alguns casos o browser entende como uma

solicitação de download. A única exceção foi o browser da Opera que apresentou

a pagina perfeitamente conforme Figura 50 abaixo.

Figura 50 Navegador Opera ver. 7.53

Page 145: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

145

Os Navegadores Mozilla 1.7.2 e da Microsoft Internet Explorer 6.0 também

foram testados, ambos apresentaram restrições ao código WML.

6.4. Servidores

6.4.1. Apache

O servidor de web Apache 1.3.14 foi o instalado conforme Figura 51 sem

dificuldades, a configuração é simples e se apresentou muito bem.

Figura 51 Instalação Servidor Apache

Depois do servidor Apache instalado foi feita a configuração do arquivo

httpd.conf. Dentro deste arquivo encontra-se o "bloco" que aparece entre

<IfModule mod_mime.c> e </IfModule>, conforme está mostrado abaixo.

# Document types.

#

<IfModule mod_mime.c>

.

. </IfModule>

# End of document types.

Page 146: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

146

Dentro deste "bloco", coloca-se as linhas conforme mostrado abaixo.

Uma dificuldade foi quanto aos MIME, porém foi logo solucionada

adicinando as linhas acima no arquivo httpd.conf .

6.4.2. PWS

A instalação PWS (Personal Web Server) conforme Figura 52 foi realizada sem

problemas.

Figura 52 Instalação do PWS

# MIME Types for WAP

# Para o PHP 4.x:

AddType application/x-httpd-php .wml

# Para paginas WML comuns:

AddType text/vnd.wap.wml .wml

# Para scripts WML:

AddType text/vnd.wap.wmlscript.wmls

# Para paginas WML compiladas:

AddType application/vnd.wap.wmlc .wmlc

# Para scripts WML compilados:

AddType application/vnd.wap.wmlscriptc .wmlsc

# Para gráficos WML embutidos:

AddType image/vnd.wap.wbmp .wbmp

# End MIME Types for WAP

Page 147: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

147

Porem a configuração com a linguagem PHP já apresentou certa

dificuldade. Somando as dificuldades apresentadas pelo servidor e o fato de o

mesmo só ser gratuito e indicado para instalação no Windows 98, o PWS foi

preterido.

6.4.3. Tomcat

Conforme os estudos realizados a principal característica técnica do

Servidor Tomcat esta centrada na linguagem de programação Java, mais

especificamente nas tecnologias de Servlets e de Java Server Pages (JSP). Como

o objetivo desse não é o de trabalhar com essa tecnologia optamos por realizar

estudos práticos com o servidor.

Page 148: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

148

6.5. Linguagem de Programação

6.5.1. PHP

A instalação do PHP 4.3.4 - Win32 conforme Figura 53 não apresentou

dificuldade.

Figura 53 Instalação do PHP

Segundo Frota (2001), para se trabalhar com WML, deve-se declarar o

cabeçalho indicando o tipo de conteúdo usado, conforme mostrado abaixo.

Tipo conteúdo no WML

A linguagem foi utilizada em conjunto com a WML isso facilitou o trabalho

com o uso do PHP embutido no código WML.

<?php

header (“ content-type:

text/vnd.wap.wml”);

echo “<?xml version=\”1.0\” ?>”;

?>

Page 149: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

149

6.5.2. ASP

O teste realizado com a linguagem ASP demonstra que é possível também

utiliza-la com o código WML embutido na linguagem, porém, comparando o PHP

com ASP, a linguagem PHP oferecia maiores facilidades.

6.5.3. WML/ WMLScript

No desenvolvimento dos estudos a linguagem de marcação WML

demonstrou ser muito poderosa, durante os testes realizados conferimos que

aliada ao WMLScript é possível conseguir praticamente tudo que se espera em

termos de WEB para dispositivos móveis.

6.5.4. JavaScript

A intenção de usar o JavaScript para identificar o Browser dos visitantes

não teve seqüência porque a linguagem WMLScript se mostrou mais adequada.

Foram feitos teste com JavaScript apenas para fazer uma comparação com a

WMLScript. Esta última, como foi desenvolvida para este tipo de ambiente,

oferece recursos mais apropriados.

Page 150: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

150

6.6. Banco de Dados

6.6.1. MySQL

Em um estudo prévio realizado através da popularidade e quantidade de

aplicações desenvolvidas e observado na Internet, a opção foi pelo MySQL -

4.0.15 – win. Após a instalação que foi simples foi rodado um script para avaliação

do banco conforme apresentado na Figura 54 abaixo.

Figura 54 Verificação do MySQL

O SGBD escolhido não apresentou nenhum tipo de problema. Ele mostrou-

se ser simples de gerenciar devido aos mecanismos implementados para facilitar

as tarefas dos usuários.

Para o desenvolvimento do banco foi utilizada a ferramenta MySQL Front V

2.05 conforme Figura 55,abaixo, de livre distribuição que proporcionou enorme

facilidades de manuseio com as instruções SQL query, conexões remotas.

Page 151: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

151

Figura 55 Instalação do MYSQL

No próximo capitulo será discutido a conclusão do trabalho.

Page 152: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

152

7. Conclusão

As informações pertinentes à telefonia móvel, além da documentação

dos fornecedores, estão sendo publicadas em artigos, jornais, revistas, periódicos,

e internet. Durante a pesquisa não foi encontrada obra que tenha sido publicado

recentemente. A mais recente é de 2002. Nestas obras é comum encontrar

citações das complexidades em desenvolver aplicativos para os dispositivos

móveis, como: memória de tamanho limitado, tela de apresentação com tamanho

reduzido, baixa velocidade de processamento e de transferência de dados.

Os equipamentos de telefonia móvel estão cada dia mais rápidos e com

maior capacidade de processamento. Isto permite aplicações mais dinâmicas e

com maior interatividade, prova disso são as constantes novidades tecnológicas

que o mercado vem anunciando dia a dia, como a ultima novidade divulgada pelo

jornal Estado de são Paulo (11/07/2005) onde uma operadora de telefonia móvel

divulga o lançamento da telefonia 3G, que transmite conteúdo multimídia, inclusive

TV ao vivo, com mais velocidade do que os existentes até agora.

As limitações que os dispositivos móveis possuíam até alguns anos atrás

como: telas pequenas, teclado impróprio para entrada de dados, bateria de curta

duração, conexão de baixa velocidade, pouca memória e tarifas altas, que antes

desestimulava a utilização dos celulares para o uso com internet, hoje já podemos

dizer que algumas coisas já mudaram.

As telas já não são tão pequenas, o teclado ainda continua impróprio para

entrada de dados, as baterias melhoraram bastante a sua durabilidade, a conexão

e a memória tem aumentado significativamente em velocidade e capacidade, e por

outro lado as tarifas estão em declínio devido ao aumento da oferta pelos

concorrentes.

Page 153: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

153

A preocupação que praticamente as literaturas citam referente aos

cuidados com o conteúdo que os programadores devem ter, controlando o numero

de telas, evitando solicitar muitas informações aos usuários, já não se justificam

tanto. Não se quer dizer com isso que tudo é possível, mas que os limites foram

estendidos.

A incompatibilidade do microbrowser entre os dispositivos de fabricantes

diferentes, citada nas obras pesquisadas, como sendo uma das maiores

dificuldades no desenvolvimento, atualmente com a os novos recursos de

interfaces é praticamente imperceptível. Entre os sete modelos que foram

testados, as diferenças de conteúdo apresentadas nos microbrowser, foram

insignificantes, mostrando uma discreta compatibilidade. A padronização por parte

das empresas ainda que modesta tem ajudado muito esse processo.

Os estudos feitos com ferramentas e tecnologia para desenvolvimento de

site e aplicações para dispositivos moveis, inclusive o desta pesquisa, mostraram

que a utilização de linguagens mais adequada para esse padrão de equipamento

é uma boa maneira de contornar as pequenas restrições e limitações que ainda

existem.

Embora as restrições e limitações dos dispositivos móveis, mesmo que

em menor grau ainda exista, os estudos feitos mostraram que a utilização das

tecnologias e ferramentas leves de fácil manipulação é uma boa solução para o

desenvolvimento de sites e aplicações para os dispositivos móveis.

Com isso a utilização de linguagens como PHP, WML, WMLScript,

servidor de WEB Apache, Gerenciador de Banco de Dados MySQL mostraram

uma excelente opção para a implementação do sistema. A utilização de

ferramentas open source (código livre) também facilitaram o desenvolvimento,

pois rodam em qualquer plataforma, não necessitamos comprá-las e a

documentação também está disponível na internet.

Page 154: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

154

Um dos objetivos deste trabalho foi o desenvolvimento do estudo de caso

“Enquete On Line”, uma aplicação que serve de exemplo para novos trabalhos. A

opção pelo uso de software livre oferece facilidade de acesso às tecnologias e às

bibliografias envolvidas para novos desenvolvedores de sistemas, sem precisar

utilizar software proprietário.

O protótipo desenvolvido teve um bom resultado, apesar de precisar de

algumas melhorias conseguiu executar de maneira objetiva o que foi proposto,

fornecendo uma pesquisa de opinião de forma simples e direta. Portanto, este

trabalho cumpre o que se propõe, na medida que fornece ao dispositivo móvel,

conteúdo de paginas no formato WML em servidor WEB. O resultado da pesquisa

recuperou um grande volume de material bibliográfico, no entanto, ainda há muitas

fontes para ser trabalhadas pertinentes ao assunto. Entretanto a generalidade

deste assunto dá uma visão ampla do contexto atual da área de wireless e serve

como ponto de partida para novas pesquisas em assuntos específicos.

Page 155: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

155

8. Trabalhos futuros

Este capítulo apresenta alguns trabalhos complementares que visam o

aperfeiçoamento de funcionalidades já existentes e adição de novas funções no

protótipo “Enquete On Line”, para que o sistema tenha um melhor aproveitamento,

não esquecendo de estar sempre buscando simplicidade e praticidade de uso

para o usuário.

8.1. Validação do usuário

Seria interessante que fosse solicitado ao usuário digitar um código para

autenticação, impedindo que o mesmo vote várias vezes, pois dependendo do tipo

da pesquisa de opinião, poderia ter resultados distorcidos.

8.2. Segurança

Na aplicação desenvolvida não houve preocupação com a segurança, por

se tratar de protótipo, porem o item segurança para o uso comercial é

indispensável. Nesse ponto poderiam ser implementados códigos que dificultam o

rastreamento e uso das tecnologias já existentes como WTLS (Wireless Transport

Layer Security) e SSL (Secure Sockets Layer) e outros métodos.

8.3. Relatórios

Outro recurso interessante seria o deixar opções para o administrador do

sistema de solicitar relatórios das enquetes. Isso ajudaria muito na analise dos

dados.

Page 156: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

156

9. Referências bibliográficas

9.1. Bibliografias

[Alves - 2004]

Willian Pereira Alves Dreamweaver UltraDev – Criação de sites Dinamicos

e Aplicações E-Commmerce, 2004.

[Anselmo – 2000]

Fernando Anselmo, PHP e MySQL para Windows. Florianopolis Visual Books 2000.

[Bandeira Duarte - 2004]

prof: Otto Carlos Muniz Bandeira Duarte, XML Extensible Markup LanguageTexto,

Universidade Federal do Rio de Janeiro, em

http://www.gta.ufrj.br/grad/00_1/miguel/index.html, pesquisado em 11/08/2004

[Denega – 2000]

Marco Antonio Denega, WAP Tecnologia sem Fio, Editora Berkeley

São Paulo, 2000

[Dias – 2003]

Bruna Chesye Dias, ANÁLISE DA TECNOLOGIA WAP VIA ESTUDO DE CASO EM

JOGOS DISTRIBUÍDOS E INTERATIVOS, Monografia Depto. de Ciência da

Computação da Universidade Federal de Lavras, como parte das exigências do curso

de Ciência da Computação. em 16 de Junho de 2003

[Forta - 2001]

Ben Forta, Desenvolvimento WAP com WML e WMLScript, Editora Campus, 2001.

Page 157: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

157

[Generation – 2005]

Next Generation, Mobilidade, http://www.nextg.com.br/BR/curso.aspx,

visitado em 26/06/2005.

[Godoy - 2004]

Luiz Henrique Pereira de Godoy, USP - Centro de Divulgação Científica e Cultural

(CDCC), http://www.cdcc.sc.usp.br/tutorial/index.htm

visitado em 12/06/2004

[Hokama – 2003]

Marçal de Lima Hokama, Personal Web Server - PWS,

http://www.crieseuwebsite.com/artigos/artigo.php?categoria=pws&id=, publicado em

abril 2003, visitado em 12/02/2005.

[IT web – 2005]

IT web Google lança serviço para equipamentos móveis-- 12/04/2005 --

http://www.itweb.com.br/noticias/artigo.asp?id=89888

visitado em 18/04/2005

[Moon – 2000]

Peter Moon, O futuro é agora. IstoÉ, São Paulo, n.1579, janeiro 2000. Disponível

em:<http://www.zaz.com.br/istoe/ciencia/1999/12/28/003.htm>.

Acesso em: 12 abril. 2005.

[Oliveira – 2000]

Winson José de Oliveira, WAP Tecnologia e segurança, Editora Visual Books,

Florianópolis, 2000.

[Parra – 2004]

Michelle Parra, O que é MySQL? http://www.portalfiremasters.com.br/, Publicado em:

06 Dezembro 2004, visitado em 24/05/2005.

Page 158: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

158

[Pekus – 2002]

PEKUS Cons. e Desenvolvimento Ltda. Dispositivos móveis, São Paulo, 2002.

Disponível em: <http://www.pekus.com.br/palmtops.htm>.

Acesso em: 12 abril. 2005.

[Portal Java – 2004]

Tutorial Desenvolvido pela equipe do PortalJava,

http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=51,

publicado em: 22-03-2004, visitado em 08-05-2005

[Rigonatti - 2004]

Thiago Rigonatti, Móbile Life,

http://www.mobilelife.com.br/default.asp?arquivo=092004,

Mobilidade e Entreternimento, Publicado em 15/9/2004 , Visitado em 11/04/2005

[Rischpater – 2000]

Rischpater, R., Desenvolvendo Wireless para WEB. São Paulo, Makron

Books, 1a Edição, 2000.

[Samy Silva – 2004]

Maurício Samy Silva, Introdução a tecnologia WAP, Publicado em: 10/05/2004,

http://www.linhadecodigo.com.br/artigos.asp?id_ac=319&pag=1

visitado em 11/04/2005

[Shibayama - 2005]

Davi Shibayama, Tutorial de instalação do Apache/PHP em Windows em:

<http://unix.wmonline.com.br/php/tutoriais/instalacao_apache/instalacao.htm>,

pesquisado em 22/05/2005.

Page 159: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

159

[Silva Filho - 2004]

Antonio Mendes Silva Filho, Programando com XML, Editora Campus, 2004.

[Taurion - 2002]

Cezar Taurion, Diferencial competitivo, Revista TI, http://www.timaster.com.br ,

Publicado em 25 de junho de 2002,

pesquisado em 21/11/2003.

[Texas Inst. - 2003]

Texas Instruments, http://www.ti.com/sc/brasil/, Novo conceito para aparelhos móveis,

Publicado em: 17 de março de 2003

Visitado em 11/04/2005

[Torres - 1997]

Anderson Barros Torres, http://www.geocities.com/SiliconValley/Way/3105/,

JavaScript - Guia de Referência

publicado em 27/08/97, visitado em 15/05/2005.

[Ullman - 2001]

Larry Ullman, PHP para a Word Wide Web, Editora Campus, 2001.

[Zanetti - 2004]

L. C Gonçalves A. R Zanetti,.; Redes Locais sem Fio. Disponível,

http://www.dc.ufscar.br/~carvalho/WLAN/index.html. Pesquisado em outubro de 2004.

Page 160: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

160

9.2. Bibliografias Auxiliares

[Genilhu – 2004]

Leo Genilhu, Utilizando PHP e MySQL para gerar páginas WAP

http://www.phpbrasil.com/articles/article.php/id/602

visitado em 10/05/2004.

[Guimarães - 2005]

Prof. Célio Guimarães, Introdução a Linguagens de Marcação: HTML, XHTML,

SGML, XML, Instituto de Computação – Unicamp, Atualizado em 06-Jun-05.

http://www.dcc.unicamp.br/~celio/inf533/docs/markup.html em 20 / 02 / 2005

[Lapa - 2004]

Eduardo Lapa, Computação móvel e diferencial nos negócios, publicado em

21/06/2004, http://webinsider.uol.com.br/vernoticia.php/id/2148, consultado em

07/05/2004.

[Macoratti - 2004]

José Carlos Macoratti, Tutorial WAP - Crie o seu site WAP,

http://www.macoratti.net/wml.htm, consultado em 29/08/2004

[Marinho – 2005]

Samuel Rocha Marinho, HTML – Tutorial,

http://www.praianet.com/tutoriais/tutorialhtml/tutorialhtml01.htm

Consultado em 10/02/2005

[Openwave Developer Network - 2004]

http://developer.openwave.com/dvl/

visitado em 02/4/2004.

Page 161: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

161

[Shtuzer – 1997]

Waldeck Shtuzer, Curso de Html, http://www.dm.ufscar.br/~waldeck/curso/html/

Publicado em 09/01/1997, consultado em 11/06/2004

[Silva Junior – 2004]

Givanildo Francisco da Silva Junior, WAP – WIRELESS APPLICATION PROTOCOL,

http://www.wirelessbrasil.org/wirelessbr/colaboradores/givanildo_wap/wap_01.html

Consultado em 11-06-2004

[Silva – 2004]

Maurício Samy Silva, Introdução a tecnologia WAP,

http://www.linhadecodigo.com.br/artigos.asp?id_ac=319&pag=1, Publicado em:

10/05/2004, consultado em 11/04/2004.

[Vivas – 2000]

Mauricio Vivas, Comitê de Incentivo a Produção do Software Gratuito e Alternativo

CIPSGA, Curso de Aplicações WEB em PHP − www.cipsga.org.br − Junho de 2000

[W3C – 2004]

World-Wide Web Consortium, WML Specification V. 1., www.w3c.org/wml/specs/,

acessado em 25 de dezembro de 2004.

[WAP Forum – 2004]

http://www.wapforum.org/

visitado em 12/04/2004.

[Wireless Brasil – 2004]

Portal Independente de Telecomunicações, Comunidade Weriless Brasil,

http://www.wirelessbrasil.org/, acessado em 02/03/2004.

Page 162: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

162

[WinWap Thechnologies – 2004]

http://www.winwap.com/index.php

visitado em 02/04/2004.

[WML Club – 2004]

http://www.wmlclub.com/

visitado em 15/04/2004.

[Nokia – 2004]

Nokia - Developers

http://www.nokia.com/nokia/0,8764,64431,00.html

visitado em: 15/junho/2003

[Nokia – 2003]

Nokia 5100 Software Developer’s Kit Version 1.0

User’s Guide

June 2003

[Nokia – 2003]

Nokia Mobile Internet Toolkit

Version 4.0

NMIT User’s Guide

May 2003

[Nokia – 2004]

Nokia Mobile Internet Toolkit

Version 4.1

Installation Guide

February, 2004

Page 163: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

163

[Nokia – 2004]

Nokia Mobile Internet Toolkit

Version 4.1

User’s Guide

May 2004

[Nokia – 2004]

Nokia Connectivity Framework Lite User’s Guide

Version 1.1

June 18, 2004

[Nokia – 2003]

Nokia WAP Gateway Simulator

Version 4.0

User’s Guide

May 2003

[Nokia – 2003]

Nokia Update Manager

Version 1.1

User’s Guide

April 2003

[Nokia – 2002]

Nokia 7210 Content Authoring SDK

Version 1.0

User’s Guide

December 2002

Copyright © Nokia 2001-2002. All rights reserved.

Page 164: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

164

10. Apêndice I Instalação PWS / TOMCAT / APACHE

10.1. PWS

10.1.1. Instalando o PWS

O PWS está no CD do Windows 98 pode ser baixado no site da

Microsoft. Download - Personal Web Server - download - 21.949 KB

Depois de copiado o arquivo para o seu computador, descompacte-o para

uma pasta temporária usando um programa descompactador. Depois, execute o

programa "Instalar.exe" no diretório temporário ou no CD. Aparecerá a tela inicial

de instalação: Clique no botão "Avançar>". Aparecerá a próxima tela onde

escolheremos o tipo de instalação. Recomenda-se a escolha da opção "Típica",

que instala todos os componentes menos o "MSMQ - Cliente Microsoft Message

Queue" e "Visual Interdev RAD - Remote Deployment Support". Tendo a

necessidade de um desses componentes, a opção de instalação deve ser

"Personalizada" e selecione o(s) componente(s) desejado(s). A pasta padrão é

"\Inetpub\wwwroot". Tudo deve estar sendo exibido pelo servidor web pasta.

Clique no botão "Avançar>" e a instalação estará concluída.

10.1.2. Configurando o PWS

Para executar o Personal Web Server, clique no botão "Iniciar", escolha o

item "Programas" e selecione a opção "Internet Explorer". Depois clique em

"Personal Web Server" e abra o programa "Gerenciador do Personal Web".

Para iniciar o servidor web, clique no botão "Iniciar" na janela. Na área

"Principal", veremos que o serviço web está ativo, que sua home page pode ser

encontrada no endereço http://nome_da_sua_maquina (para descobrir o nome do

Page 165: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

165

seu computador, veja as propriedades do seu "Ambiente de Rede", na área de

identificação) ou também pelo endereço IP http://127.0.0.1, que se refere à própria

máquina. Quando o servidor estiver ativo, aparecerá um ícone na barra de tarefas

do Windows.

Para acessar com servidor web, abra o seu browser e digite o seguinte

endereço: http://127.0.0.1 - Será aberta a página inicial do seu servidor, que neste

caso é a "default.asp". Observando a tela do Personal Web Manager acima,

podemos ver que este arquivo se encontra localizado na seguinte pasta do seu

servidor: "C:\Inetpub\wwwroot". Esta pasta pode ser alterada, através da área

"Avançado".

Ainda na área "Principal", podemos observar a seção "Monitorando", que

mostra diversas estatísticas do servidor: Conexões ativas, visitantes, requisições,

etc.

Agora, no menu esquerdo, selecionamos "Avançado". Em "pastas

virtuais", vemos as pastas virtuais que foram criadas para este servidor e podemos

alterá-las, adicionando novas pastas através do botão "Adicionar", editar uma

pasta virtual já existente, selecionando-a e clicando no botão "Editar propriedades"

ou removendo-a clicando no botão "Remover".

Uma pasta virtual é como se criássemos um atalho no servidor web para

uma pasta localizada fisicamente (no disco) em outro local. A idéia das pastas

virtuais é justamente facilitar o acesso a diretórios que têm um caminho muito

longo ou que estão fora da pasta padrão do servidor. Nesse caso, no browser,

digitando a URL "http://127.0.0.1/iissamples/default/welcome.htm", acessaria uma

página que está fora do diretório-base do servidor, mas está na pasta virtual

"IISSAMPLES".

Page 166: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

166

Ainda na área "Avançado", a caixa "Ativar documento padrão" faz com

que, se ativada, quando você não especificar no browser o nome de um

documento, será procurado um documento padrão, especificado no campo

"Documento(s) padrão". Se esta opção estiver desativada e você não especificar

um nome de uma página, aparecerá uma mensagem de erro, ou uma lista de

todas as páginas, dependendo da opção "Permitir busca na pasta".

No campo "Documento(s) padrão", iremos definir os nomes dos

documentos padrão, ou seja o documento que será exibido quando o usuário não

especificar no nome do documento no browser. Por exemplo, quando alguém

digitar "http://127.0.0.1", qual a página que será exibida? É isso que é definido no

campo "Documento(s) padrão". Na tela de exemplo, o valor deste campo é

"Default.htm,Default.asp". Isso quer dizer que o servidor irá verificar se existe na

pasta base algum documento de nome "default.htm". Se tiver, este será exibido no

browser. Se não tiver, ele fará uma nova busca na pasta, desta vez por

"default.asp". Se não for encontrado nenhum dos dois documentos, uma

mensagem de erro ou a lista das páginas será exibida, dependendo da opção

"Permitir busca na pasta".

Ainda, o valor deste campo pode variar de servidor para servidor. Por

isso, quando for colocar o seu site na Internet, verifique quais são os nomes de

documentos padrões do servidor onde o seu site será hospedado. Por exemplo,

suponha que no seu site você criou a página inicial de nome "default.asp", e que

aparece normalmente no servidor local, que tem como documento padrão

"default.asp". Se o servidor onde será hospedado o seu site na Internet tiver como

documento padrão "index.asp", você será obrigado a renomear a sua página

principal e alterar todos os links no seu site para ela.

Page 167: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

167

O campo "Permitir busca na pasta" faz com que, se você não tiver um

documento padrão especificado e esta opção estiver ativada, o visitante verá uma

lista com todos os nomes de documentos contidos na pasta. Por exemplo, se no

browser digitarmos o endereço "http://127.0.0.1/iissamples/default/" (sabendo que

nesta pasta não há nenhum documento padrão), com esta opção ativada,

aparecerá algo como:

A opção "Salvar o log de atividade do site da Web" permite que dados do

acesso ao seu servidor web sejam salvos em disco. Os logs serão salvos na pasta

\System\LogFile\W3spc1 em formato texto e podem ser visualizados em qualquer

editor de textos.

Vimos aqui as principais funções do PWS, e explicando-as passo a passo.

Este é um servidor muito utilizado em projetos de desenvolvimento para Internet,

principalmente para quem usa tecnologias como ASP e SSI.

10.2. Tomcat

10.2.1. Instalando o Tomcat

Em termos práticos, o Tomcat pode ser usado isoladamente, assumindo o

papel de um servidor web, ou em conjunto com outro servidor (como o Apache).

Neste caso, o Apache atende a requisições de páginas estáticas enquanto que o

Tomcat atende a requisições de páginas dinâmicas.

Outra forma de usar o Tomcat é como parte da versão J2EE (Enterprise

Edition) de Java para a criação de servidores de aplicação. Este é o caso, por

exemplo, do servidor de aplicação JBoss.

Page 168: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

168

10.2.2. Instalação do servidor de JSP no IIS

O Tomcat é um servidor open source e gratuito, além disso, é muito

utilizado comercialmente. Alguns podem encontrar uma certa dificuldade para

instalá-lo e colocá-lo para funcionar. Podemos ainda colocá-lo como um serviço do

Windows (NT/2000/XP).

Devemos ter os seguintes softwares :

Java Development Kit:

Tomcat 4.0.1 Binary Distribution:

Extra do Tomcat para integração com IIS e NT/2000:

Instalamos o JDK, versão j2sdk-1_4_0_01-windows-i586.exe ou mais

recente. Deixando o diretório como j2sdk1.4.0_01. Durante a instalação deixamos

todas as opções de componentes ativadas.

Em seguida temos que ajustar a variável de ambiente chamada

JAVA_HOME apontando para o caminho do diretório dentro do qual está a

instalação do JDK. Para ajustar a variável JAVA_HOME iremos em: Painel de

Controle -> Sistema -> Avançado -> Variáveis de Ambiente. Criaremos uma nova

variável de ambiente chamada JAVA_HOME com o valor c:\j2sdk1.4.0_01

Instalando o Tomcat, versão jakarta-tomcat-4.1.12.exe executando o

arquivo de instalação deixando o tipo da instalação como Normal, e alterando o

diretório para tomcat4 e ajustando a variável de ambiente chamada

CATALINA_HOME com o valor c:\tomcat4.

Page 169: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

169

10.2.3. Para iniciar o Tomcat:

Devemos executar o arquivo .BAT

%CATALINA_HOME%\bin\startup

Deverá aparecer algo do tipo:

C:\>%CATALINA_HOME%\bin\startup

Using CATALINA_BASE: C:\tomcat4

Using CATALINA_HOME: C:\tomcat4

Using JAVA_HOME: c:\j2sdk1.4.0_01

C:\>

Colocamos o Tomcat para funcionar como um serviço do Windows, dessa

forma não é necessário deixar a janela do DOS aberta enquanto ele estiver

funcionando. Pegamos o arquivo jk_nt_service e o arquivo wrapper.properties que

estão no arquivo tc4ntiis.zip e colocamos dentro da pasta

%CATALINA_HOME%/conf/jk.

Na seqüência editamos os arquivos wrapper.properties para configurar as

variáveis de ambiente:

wrapper.tomcat_home=c:\tomcat4

wrapper.java_home=c:\j2sdk1.4.0_01

Abrimos o prompt, e na linha de comando e executamos os seguintes

comandos para instalar o serviço do Tomcat:

C:\>cd %CATALINA_HOME%

C:\tomcat4>cd conf\jk

C:\tomcat4\conf\jk>jk_nt_service -i tomcat -a wrapper.properties

Page 170: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

170

Iniciamos o serviço do Tomcat com o comando abaixo, mas devemos nos

certificar de que o Tomcat já não esteja sendo executado:

C:\tomcat4\conf\jk>jk_nt_service -s tomcat

Asked (and given) winsock 1.1

Starting tomcat.

tomcat started.

Para removermos o serviço, utilizamos o seguinte comando:

C:\tomcat4\conf\jk>jk_nt_service -r tomcat

10.3. Apache

Apresentaremos agora os passos para instalação e configuração do

servidor Web Apache em ambientes Windows 95/98/ME/XP, para

desenvolvimento local. O maior parte dos procedimentos apresentados aqui é

válido também para sistemas Windows NT/2000, sendo que a única diferença está

na maneira como o Apache é inicializado.

É importante lembrar que, apesar do Apache executar de maneira

satisfatória em ambientes Windows, é recomendável que esta plataforma seja

usada apenas para desenvolvimento, simulando o ambiente Unix/Linux original

onde essas ferramentas devem realmente residir.

Page 171: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

171

10.3.1. Obtendo o Apache

O arquivo de instalação do Apache para Windows está disponível em três

formatos: .ZIP, .EXE e .MSI. Trabalharemos aqui com este último, que está no

formato de pacote do Windows Installer. O arquivo de instalação do Apache pode

ser conseguido no seguinte endereço:

http://www.apache.org/dist/httpd/binaries/win32.

O arquivo deverá estar com o seguinte nome: apache_x.x.xx-win32-

x86.msi, onde x.x.xx é a versão do software. Note que este arquivo é do tipo .msi

(Microsoft Installer). É recomendável baixar o arquivo de instalação neste formato

pois ele, além de ser menor, é mais fácil de instalar e configurar. Para maiores

informações sobre os arquivos de instalação do Apache, consulte a página de

download citada acima.

Usuários do Windows95!

Os usuários do Windows95 precisam primeiro baixar a atualização do

Winsock para Windows, caso contrário, o Apache não funcionará. Esta atualização

poderá ser obtida a partir do site da Microsoft, no seguinte endereço:

http://www.microsoft.com/windows/downloads/bin/W95ws2setup.exe

Page 172: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

172

10.3.2. Instalando o Apache

Para efetuar a instalação a partir deste tipo de arquivo .msi, você deverá

ter o utilitário Microsoft Windows Installer instalado no seu sistema. Os usuários do

Windows2000, WindowsME e WindowsXP já possuem este utilitário instalado. Os

usuários de outras versões do Windows deverão baixá-lo a partir do site da

Microsoft, nos seguintes links:

Windows Installer v1.10 para Windows NT 4.0

Windows Installer v1.10 para Windows 95 e 98

Após ter instalado o utilitário Microsoft Windows Installer, clique duas

vezes no arquivo de instalação do Apache. Uma tela como da Figura 56 abaixo

deverá aparecer:

Figura 56 Bem vindo a Instalação do Apache

Page 173: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

173

Prossiga clicando no botão "Next", aceitando os termos da licença de uso

e, na tela de Informações do Servidor ("Server Information"), onde é solicitado

"Network Domain", "Server Name" e "Administrator's Email Address", conforme

Figura 57 abaixo, informe, respectivamente: "localdomain", "localhost" e o seu

endereço de e-mail. Deixe também selecionado a opção "Run as a service for All

users", como indicado abaixo:

Figura 57 Informações do Servidor

Prossiga selecionando a instalação completa ("Complete") e finalize a

instalação.

10.3.3. Iniciando/parando o Apache (com Win95/98/ME/XP)

Para INICIAR o servidor Web Apache, devemos clicar no botão Iniciar-

>Programas->Apache HTTP Server e clique em Start Apache in Console. Uma

janela como a da Figura 58 deverá aparecer, indicando que o Apache está em

execução

Page 174: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

174

Figura 58 Apache em Execução

Para PARAR o Apache, não é aconselhável que se feche esta janela

diretamente. Ao invés disso, devemos ir em Iniciar->Programas->Apache HTTP

Server e clique em Stop Apache. Isso dará inicio ao processo de shutdown do

servidor Web, o que fará com que a janela acima se feche.

Atenção usuários do Windows NT/2000!

O Apache é instalado como um serviço em sistemas Windows NT e 2000

e, por isso, os procedimentos descritos acima, para iniciar e parar o Apache, NÃO

se aplicam a essas plataformas. Use o gerenciador de serviços do Windows

NT/2000, localizado no painel de controle, para controlar a execução do Apache.

10.3.4. Testando a instalação do Apache

Para testar a instalação, primeiramente, certificaremos de que o Apache

esteja em execução. Abrindo o navegador e digitando o seguinte endereço:

http://localhost. Este é o endereço do servidor web local. Uma página como a da

Figura 59 deverá aparecer, indicando que foi instalado e configurado corretamente

o servidor Web Apache no sistema.

Page 175: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

175

Figura 59 Teste de Instalação do Apache

Se não tiver alterado a pasta padrão de instalação do Apache, a pasta raiz

do seu servidor web se encontra no seguinte caminho no seu disco:

C:\Arquivos de programas\Apache Group\Apache\htdocs

É nesta pasta que devemos colocar todos os arquivos que serão acessados

através do servidor Web local, incluindo páginas HTML, scripts em PHP, arquivos

de imagens, etc.

Page 176: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

176

11. Apêndice II Script do Banco de Dados Enquete”

11.1. Banco de Dados enquet

# MySQL-Front Dump 2.5

#

# Host: jayme_wap Database: enquetebd

# --------------------------------------------------------

# Server version 4.0.15

#

# Table structure for table 'enquet'

#

CREATE TABLE enquet (

id int(3) unsigned NOT NULL auto_increment,

Titulo char(150) default NULL,

op1 int(3) unsigned default '0',

op2 int(3) unsigned default '0',

op3 int(3) unsigned default '0',

op4 int(3) unsigned default '0',

op5 int(3) unsigned default '0',

op6 int(3) unsigned default '0',

t_op1 char(50) default NULL,

t_op2 char(50) default NULL,

t_op3 char(50) default NULL,

t_op4 char(50) default NULL,

t_op5 char(50) default NULL,

t_op6 char(50) default NULL,

Ativo char(1) default NULL,

PRIMARY KEY (id)

) TYPE=MyISAM;

Page 177: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

177

12. Apêndice III Código Fonte “Enquete On Line”

12.1. Arquivo Index.Wml

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<!--O evento ontimer, mostra durante um tempo de quatro

segundos o card inicial -->

<card id="inicial" title="Experimental"

ontimer="enquete.php">

<timer value="40"/>

<p align="center">

<b>

Monografia

</b>

</p>

</br>

<p align="center">

</b>

do

</b>

</p>

</br>

<p align="center">

</b>

Jayme

</b>

</p>

</br>

<p align="center">

</b>

Estudo de Caso

</b>

</p>

</br>

<p align="center">

</b>

Enquete

Page 178: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

178

</b>

</p>

</br>

</card>

</wml>

Page 179: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

179

12.2. Arquivo index2.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

Transitional//EN">

<html>

<head>

<title>Monografia -&gt;Jayme&lt;- Comunica&ccedil;&atilde;o

entre dispositivos</title>

<meta http-equiv="Content-Type" content="text/html;

charset=iso-8859-1">

<body>

<!-- define a formatação do "cabeçalho' da pagina: uma tabela

acom titulo e logo -->

<table width="100%" border="0">

<tr>

<td width="17%">

<div align="center">

<img src="logouem1.gif" width="94" height="86">

</div>

</td>

<td width="65%">

<div align="center">

<strong>

<font size="3" face="Verdana,Arial, Helvetica,

sans-serif">

Universidade Estadual de Maring&aacute;

</font>

</strong>

<font size="3" face="Verdana, Arial, Helvetica, sans-

serif">

<br>

<font color="#0000FF">

<strong>

Centro de Tecnologia<br>

Departamento de Inform&aacute;tica<br>

Maring&aacute; - PR

</strong>

</font>

</font>

</div>

</td>

<td width="18%">

<div align="center">

Page 180: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

180

<img src="cabecalho2_r03_c02.jpg" width="123"

height="56">

</div>

</td>

</tr>

</table>

<hr color="#3333CC">

<!--define a formatação do texto central da pagina -->

<p align="center">

<strong>

<font color="#000000" size="2" face="Verdana, Arial,

Helvetica, sans-serif">

Monografia apresentada ao curso de

Especializa&ccedil;&atilde;o,<br>

&quot;Desenvolvimento de Sistem para WEB&quot;

</font>

</strong>

</p>

<p align="center">

<font color="#999999" size="2" face="Verdana, Arial,

Helvetica, sans-serif">

<strong>

Titulo:Comunica&ccedil;&atilde;o entre dispositivos<br>

m&oacute;veis e servidores utilizando tecnologia WAP -

WML e WMLScript.

</strong>

</font>

</p>

<p align="center">

<font color="#000000" size="2" face="Verdana, Arial,

Helvetica, sans-serif">

<strong>

Orientador: Prof. Dr. Antonio Mendes da Silva Filho.<br>

email: [email protected]

</strong>

</font>

</p>

<p align="center">

<font color="#999999" size="2" face="Verdana, Arial,

Helvetica, sans-serif">

<strong>

Aluno: Jayme Frederico F. Fedrigo Jr.<br>

email: [email protected]

Page 181: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

181

</strong>

</font>

</p>

<p align="center">

<font color="#000000" size="2" face="Verdana, Arial,

Helvetica, sans-serif">

<strong>

julho/2005

</strong>

</font>

</p>

<hr color="#3333CC">

<!--define a formatação dos links da pagina-->

<table width="100%" border="0">

<tr>

<!-volta a pagina principal >

<td width="25%" height="24">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica,

sans-serif">

<a href="index.php">Principal</a>

</font>

</div>

</td>

<!-vai para a pagina cria enquete >

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="cria.php">Cria&ccedil;&atilde;o de

Enquete</a>

</font>

</div>

</td>

<!-vai para a pagina votação>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="vota.php">Vota&ccedil;&atilde;o</a>

</font>

</div>

Page 182: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

182

</td>

<!-vai para a pagina resultado >

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="resultado.php">Resultado</a>

</font>

</div>

</td>

</tr>

</table>

</body>

</html>

Page 183: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

183

12.3. Arquivo Cria.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

Transitional//EN">

<html>

<head>

<title>Cria&ccedil;&atilde;o de Enquete</title>

<meta http-equiv="Content-Type" content="text/html;

charset=iso-8859-1">

</head>

<body>

<table width="100%" border="0">

<tr>

<td width="17%">

<div align="center">

<img src="logouem1.gif" width="94" height="86">

</div>

</td>

<td width="65%">

<div align="center">

<strong>

<font size="5">

Universidade Estadual de Maring&aacute;

</font>

</strong><br>

<font color="#0000FF" face="Verdana, Arial,

Helvetica, sans-serif">

Centro de Tecnologia <br>

Departamento de Inform&aacute;tica - Bloco 19<br>

Maring&aacute; - PR</font><br>

</div>

</td>

<td width="18%">

<div align="center">

<img src="cabecalho2_r03_c02.jpg" width="123"

height="56">

</div>

</td>

</tr>

</table>

Page 184: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

184

<hr color="#0000CC">

<?php

/*Esse if funciona como uma precaria e simples proteção*/

if($_POST[senha] == "Jayme123"){

//Estabele conexão com o host

$link = mysql_connect("seringueira", "jayme", "monografia")

or die("Não pude conectar no banco de dados: " .

mysql_error());

//Seleciona o Banco de Dados

mysql_select_db('jayme')

or die ('Não foi possível usar db: ' . mysql_error());

/*Criação do comando SQL para a inserção de uma nova

enquete no Banco de Dados,

os dados são enviados para a criação desse comando através

do Post.*/

$sql = "INSERT INTO enquet (id, Titulo, op1, op2, op3, op4,

op5, op6, t_op1, t_op2, t_op3, t_op4, t_op5, t_op6) VALUES

(NULL, '$_POST[Titulo]', 0, 0, 0, 0, 0, 0, '$_POST[Op1]',

'$_POST[Op2]', '$_POST[Op3]', '$_POST[Op4]', '$_POST[Op5]',

'$_POST[Op6]')";

//Executa o comando SQL para Criação de nova enquete no

banco de dados

$result = mysql_query($sql)

or die('Não foi possivel inserir a nova enquete no banco

de dados: '. mysql_error());

?>

<p>Formul&aacute;rio enviado</p>

<?php }else { ?>

<p align="center">

<font size="3" face="Verdana, Arial, Helvetica, sans-

serif">

<strong>

Formul&aacute;rio para cria&ccedil;&atilde;o de

enquete.

</strong>

</font>

</p>

<form name="form1" method="post" action="">

<table width="100%" border="0">

Page 185: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

185

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Titulo da Enquete

</font>

</td>

<td colspan="2">

<input name="Titulo" type="text" id="Titulo"

size="80" axlength="150">

</td>

</tr>

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Op&ccedil;&atilde;o 1

</font>

</td>

<td>

<input name="Op1" type="text" id="Op1" size="40"

maxlength="50">

</td>

<td>

<input type="submit" name="Submit" value="Enviar">

</td>

</tr>

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Op&ccedil;&atilde;o2

</font>

</td>

<td colspan="2">

<input name="Op2" type="text" id="Op2" size="40"

maxlength="50">

</td>

Page 186: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

186

</tr>

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Op&ccedil;&atilde;o3

</font>

</td>

<td>

<input name="Op3" type="text" id="Op3" size="40"

maxlength="50">

</td>

<td>

<input type="reset" name="Submit2" value="Limpar

Campos">

</td>

</tr>

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Op&ccedil;&atilde;o4

</font>

</td>

<td colspan="2">

<input name="Op4" type="text" id="Op4" size="40"

maxlength="50">

</td>

</tr>

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Op&ccedil;&atilde;o5

</font>

</td>

<td>

Page 187: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

187

<input name="Op5" type="text" id="Op5" size="40"

maxlength="50">

</td>

<td>

Digite a senha

</td>

</tr>

<tr>

<td>

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

Op&ccedil;&atilde;o6

</font>

</td>

<td>

<input name="Op6" type="text" id="Op6" size="40"

maxlength="50">

</td>

<td>

<input name="senha" type="password" id="senha2">

</td>

</tr>

</table>

</form>

<?php } ?>

<hr color="#0000CC">

<table width="100%" border="0">

<tr>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="index.php">

Principal

</a>

</font>

</div>

</td>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="cria.php">

Cria&ccedil;&atilde;o de Enquete

Page 188: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

188

</a>

</font>

</div>

</td>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="vota.php">

Vota&ccedil;&atilde;o

</a>

</font>

</div>

</td>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="resultado.php">

Resultado

</a>

</font>

</div>

</td>

</tr>

</table>

</body>

</html>

Page 189: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

189

12.4. Arquivo Enquete.php

<?php ("Content-Type: text/vnd.wap.wml"); ?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<?php

//Estabele conexão com o host

$link = mysql_connect("seringueira", "jayme", "monografia")

or die("Não pude conectar no banco de dados: " .

mysql_error());

//Seleciona o Banco de Dados

mysql_select_db('jayme')

or die ('Não foi possível usar db: ' . mysql_error());

/*O PHP entrará nesse if quando a página receber algum

conteúdo passado através do

método GET, a função desse if é colocar uma enquete ativa, a

enquete que se tornará

ativa é que que for passada através do método GET na variavel

id.*/

if($_GET[id]){

//Qualquer enquete que tiver no banco irá ter seu status

marcada como inativa

//É construido abaixo o comando SQL para isso

$sql = "UPDATE enquet SET Ativo= 'N'";

//O comando é executando no Banco

mysql_query($sql);

//È contruido o comando SQL que tornará ativa a enquete

desejada

$sql = "UPDATE enquet SET Ativo= 'S' WHERE

id='$_GET[id]'";

//O Comando é executado no Banco

mysql_query($sql);

}

//É construido o comando SQL que consulta a enquete Ativa

$sql = "SELECT * FROM enquet WHERE Ativo = 'S'";

//O comando é executado no banco

$result = mysql_query($sql)

or die('Não foi possivel recuperar os dados da tabela: '.

mysql_error());

Page 190: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

190

//O resultado da consulta é transformado em um vetor do PHP

$row = mysql_fetch_array($result);

//Computando a soma de todos os votos da enquete

$soma = $row[op1] + $row[op2] + $row[op3] + $row[op4] +

$row[op5] + $row[op6];

?>

<wml>

<card id="opcao" title="Votacao">

<do type="accept" label="Selecionar">

<go href="#Resultado"/>

</do>

<p>

<?php echo $row[Titulo]; ?>

<select name="nome" title="Nome:">

<?php

/*Esse laço for insere 6 campos do tipo option com as

alternativas da enquete, cada

opção tera como valor o código da enquete e um numero que

identifica cada opção da enquete*/

for($i = 1; ($i <=6) && $row["t_op".$i] != ""; $i++){ ?>

<option value="<?php echo "($row[id].$i) ".$row['t_op'.$i];

?>"><?php echo $row["t_op".$i]; ?></option>

<?php } ?>

</select>

</p>

</card>

<card id="Resultado" title="Resultado:">

<do type="accept" label="Voltar">

<go href="#opcao"/> </go>

</do>

<do type="accept" label="Confirmar">

<go href="salva_voto.php" method="post">

<postfield name="Opcao" value="$(nome)"/>

</go>

</do>

<p> voce selecionou a alternativa <p><br/>

<p> $(nome) <br/><br/></p>

</card>

</wml>

Page 191: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

191

12.5. Arquivo Enquetes.php

<?php ("Content-Type: text/vnd.wap.wml"); ?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<?php

//Estabele conexão com o host

$link = mysql_connect("seringueira", "jayme", "monografia")

or die("Não pude conectar no banco de dados: " .

mysql_error());

//Seleciona o Banco de Dados

mysql_select_db('jayme')

or die ('Não foi possível usar db: ' . mysql_error());

//É construido o comando SQL que consulta as enquetes

$sql = "SELECT * FROM enquet";

//Executa o comando SQL do Banco de Dados

$result = mysql_query($sql)

or die('Não foi possivel recuperar os dados da tabela: '.

mysql_error());

//Cria a variavel enquete que contera todas as enquetes do

banco

$enquetes = array();

//Insere todas as enquetes no vetor de enquetes

while( $enquetes[] = mysql_fetch_array($result));

?>

<wml>

<card id="opcao" title="Selecione a Enquete">

<do type="accept" label="Confirmar">

<go href="enquete.php?id=$(nome)" method="post">

<postfield name="Opcao" value="$(Opcao)"/> </go>

</do>

<p>Opções

<select name="nome" title="Nome:">

<?php reset($enquetes);

/*Este laço 'for' cria 1 option para cada enquete, esses

option servirão para selecionar uma enquete a qual se tornará

ativa quando for passada para a página seguinte através do

GET*/

for($aux = pos($enquetes); $aux = pos($enquetes); $aux

= next($enquetes)){ ?>

Page 192: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

192

<option value="<?php echo $aux[id]; ?>"> <?php echo

$aux[Titulo]; ?> </option>

<?php } ?>

</select>

</p>

</card>

<card id="Resultado" title="Resultado:">

<do type="accept" label="Voltar">

<go href="#opcao"/> </go>

</do>

<do type="accept" label="Confirmar">

<go href="salva_voto.php" method="post"> <postfield

name="Opcao" value="$(Opcao)"/> </go>

</do>

<p> Escolhido:<br/>

A Opção: $(nome) <br/>

</p>

</card>

</wml>

Page 193: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

193

12.6. Arquivo Vota.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

Transitional//EN">

<html>

<head>

<title>Monografia -&gt;Jayme&lt;- Comunica&ccedil;&atilde;o

entre dispositivos</title>

<meta http-equiv="Content-Type" content="text/html;

charset=iso-8859-1">

</head>

<body>

<table width="100%" border="0">

<tr>

<td width="17%">

<div align="center">

<img src="logouem1.gif" width="94" height="86">

</div>

</td>

<td width="65%">

<div align="center">

<strong>

<font size="3" face="Verdana, Arial, Helvetica,

sans-serif">

Universidade Estadual de Maring&aacute;

</font>

</strong>

<font size="3" face="Verdana, Arial, Helvetica, sans-

serif"><br>

<font color="#0000FF">

<strong>

Centro de Tecnologia<br>

Departamento de Inform&aacute;tica<br>

Maring&aacute; - PR

</strong>

</font>

</font>

<br>

</div>

</td>

<td width="18%">

Page 194: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

194

<div align="center">

<img src="cabecalho2_r03_c02.jpg" width="123"

height="56">

</div>

</td>

</tr>

</table>

<hr color="#3333CC">

<p align="center">

<?php

//Estabele conexão com o host

$link = mysql_connect("seringueira", "jayme", "monografia")

or die("Não pude conectar no banco de dados: " .

mysql_error());

//Seleciona o Banco de Dados

mysql_select_db('jayme')

or die ('Não foi possível usar db: ' . mysql_error());

/*A variável $_POST[op_escolhida] é uma variavel que é

recebida pelo post e

contém o voto enviado é uma variavel do tipo string com a

informação do id

que identifica qual a enquete visualizada sequida de um

ponto que é um

separador, e seguida novamente pela opção da enquete que

foi votata.*/

if($_POST[op_escolhida]){

$str = $_POST[op_escolhida];

//As proximas duas linhas extraem a informação do id e

da opção da enquete votada

$aux = substr($str, 1, strpos($str, ')')-1);

list($id,$op) = explode('.',$aux);

/*Comando SQL que faz contabilização do voto na enquete

identificada como id

na opção identificada */

$sql = "UPDATE enquet SET op$op=op$op+1 WHERE id=$id";

//Executado o Camando SQL no banco

$result = mysql_query($sql)

or die('Não foi possivel lançar o voto na enquete: '.

Page 195: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

195

mysql_error());

//Imprime "Voto lançado"

echo "Voto Lançado";

}

//Comando para busca no BD a enquete definida como ativa e

que acabou de ter sido votada

$sql = "SELECT * FROM enquet WHERE Ativo = 'S'";

//Executa o comando no Banco

$result = mysql_query($sql)

or die('Não foi possivel recuperar os dados da tabela:'

.mysql_error());

//Transforma o resultado da consulta em um vetor PHP

$row = mysql_fetch_array($result);

//Contabiliza o total de votos

$soma = $row[op1] + $row[op2] + $row[op3] + $row[op4] +

$row[op5] + $row[op6];

?>

</p>

<form name="form1" method="post" action="">

<p>

<strong>

Vote na enqueter:

<font color="#0000FF" face="Verdana, Arial, Helvetica,

sans-serif">

<font color="#FF0000"><?php echo $row[Titulo]; ?>

</font>

</font>

</strong>

</p>

<table width="100%" border="0">

<tr>

<td>

<table width="30%" border="0">

<?php /*As proxima 10 linhas fazem parte de um loop

que será repetido o

numero de opções que tiver a enquete e irá constuir

um pedaço da tabela

que conterá as opções para serem votadas da enquete */

for($i = 1; ($i <=6) && $row["t_op".$i] != "";

$i++){ ?>

Page 196: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

196

<tr>

<td width="4%" nowrap>

<input type="radio" name="op_escolhida"

value="<?php echo "($row[id].$i) ".$row['t_op'.$i];

?>">&nbsp;

</td>

<td width="96%" nowrap>

<?php echo $row["t_op".$i]; ?>&nbsp;

</td>

</tr>

<?php } ?>

</table>

</td>

<td>

<div align="center">

<font color="#0000FF" size="4" face="Verdana,

Arial, Helvetica, sans-serif">

Vote tamb&eacute;m pelo seu Celular, acesse o

endere&ccedil;o WAP http://200.201.30.189/wml/

</font>

</div>

</td>

</tr>

</table>

<p align="center">

<input type="submit" name="Submit" value="Votar">

</p>

</form>

<hr color="#3333CC">

<table width="100%" border="0">

<tr>

<td width="25%" height="24">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="index.php">

Principal

</a>

</font>

</div>

Page 197: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

197

</td>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="cria.php">

Cria&ccedil;&atilde;o de Enquete

</a>

</font>

</div>

</td>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="vota.php">

Vota&ccedil;&atilde;o

</a>

</font>

</div>

</td>

<td width="25%">

<div align="center">

<font size="2" face="Verdana, Arial, Helvetica, sans-

serif">

<a href="resultado.php">

Resultado

</a>

</font>

</div>

</td>

</tr>

</table>

</body>

</html>

Page 198: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

198

12.7. Arquivo Salva_Voto.php

<?php ("Content-Type: text/vnd.wap.wml"); ?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<!-- estabelece conexão com o host -->

<?php

//Estabele conexão com o host

$link = mysql_connect("seringueira", "jayme",

"monografia")

or die("Não pude conectar no banco de dados: " .

mysql_error());

//Seleciona o Banco de Dados

mysql_select_db('jayme') or die ('Não foi possível usar

db: ' . mysql_error());

/*A variável $_POST[Opcao] é uma variavel que é recebida

pelo post e contém o voto enviado é uma variavel do tipo

string com a informação do id que identifica qual a enquete

visualizada sequida de um ponto que é um separador, e seguida

novamente pela opção da enquete que foi votata.*/

$str = $_POST[Opcao];

//As proximas duas linhas extraem a informação do id e da

opção da enquete votada

$aux = substr($str, 1, strpos($str, ')')-1);

list($id,$op) = explode('.',$aux);

//Gera o Comando SQL que será utilizado para enviar ao BD

onde será computado o voto

$sql = "UPDATE enquet SET op$op=op$op+1 WHERE id=$id";

//Computa a SQL gerada no banco

$result = mysql_query($sql)

or die('Não foi possivel lançar a voto: '.

mysql_error());

//Gera o Comando SQL para fazer a consultar da propria

enquete que acaba de ser votada

$sql = "SELECT * FROM enquet WHERE id = $id";

//Dispara o Comando SQL no Banco

$result = mysql_query($sql)

or die('Não foi possivel recuperar os dados da tabela: '.

Page 199: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

199

mysql_error());

//Transforma a consulta que acaba de ser feita em um vetor

$row = mysql_fetch_array($result);

//Cria a variavel $soma e atribui a ela a soma de todos os

votos

$soma = $row[op1] + $row[op2] + $row[op3] + $row[op4] +

$row[op5] + $row[op6];

?>

<wml>

<!--mostra o card resultado-->

<card id="Resultado" title="Resultado:">

<!--selecionando a opção voltar, vai p/ o card opção -->

<do type="accept" label="Voltar">

<go href="#opcao"/> </go>

</do>

<p> A Opção : <b>

<!--mostra a opção selecionada-->

<?php echo $row[t_op.$op];?> </b> <br/>

Tem a preferencia de <b>

<!--?calcula e mostra o total em porcentagem dos votos-->

<?php echo bcdiv($row["op".$op], $soma, 3)* 100; ?> % </b>

<br/>

De um total de: <b>

<!--calcula e mostra a soma total dos votos-->

<?php echo $soma; ?> </b>participantes.<br/>

</p>

</card>

</wml>

Page 200: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

200

12.8. Arquivo Resultado.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

Transitional//EN">

<html>

<head>

<title>Resultado da vota&ccedil;&atilde;o da enquete</title>

<meta http-equiv="Content-Type" content="text/html;

charset=iso-8859-1">

</head>

<body>

<table width="100%" border="0">

<tr>

<td width="17%">

<div align="center">

<img src="logouem1.gif" width="94" height="86">

</div>

</td>

<td width="65%">

<div align="center">

<strong>

<font size="5">

Universidade Estadual de Maring&aacute;

</font>

</strong><br>

<font color="#0000FF" face="Verdana, Arial,

Helvetica, sans-serif">

Centro de Tecnologia<br>

Departamento de Inform&aacute;tica - Bloco 19<br>

Maring&aacute; - PR</font><br>

</div>

</td>

<td width="18%">

<div align="center">

<img src="cabecalho2_r03_c02.jpg" width="123"

height="56">

</div>

</td>

</tr>

</table>

<?php

//Estabele conexão com o host

$link = mysql_connect("seringueira", "jayme", "monografia")

or die("Não pude conectar no banco de dados: " .

mysql_error());

Page 201: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

201

//Seleciona o Banco de Dados

mysql_select_db('jayme')

or die ('Não foi possível usar db: ' . mysql_error());

//uma pequena simples checagem de senha

if($_POST[senha] == "Jayme123"){

if($_POST[OP] == "Ativar"){

//Construção de um SQL para setar todas as consultas

com desativas

$sql = "UPDATE enquet SET Ativo= 'N'";

//Execução do SQL no Banco

mysql_query($sql);

//SQL para setar como ativa a enquete a ser definida

como ativa

$sql = "UPDATE enquet SET Ativo= 'S' WHERE

id='$_POST[enquete]'";

//Execução do SQL no Banco

mysql_query($sql);

echo "alterada a enquete";

}//if

else if(($_POST[enquete] != 1) && ($_POST[OP] ==

"Excluir")){

//Comando SQL para apagar a enquete selecionada

$sql = "DELETE FROM enquet WHERE id = $_POST[enquete]";

//Execução do comando para apagar a enquete selecionada

mysql_query($sql)

or die('Não foi possivel recuperar os dados da

tabela: '. mysql_error());

}else if(($_POST[enquete] == 1) && ($_POST[OP] ==

"Excluir")){

/*Um pequeno controle para que o banco não fique sem

nenhuma enquete, no caso

a Enquete 1º foi escolhida para sempre ficar no banco*/

echo "1 Enquete deve permanecer no banco de dados pelo

menos";

}

}//if

//SQL que recupera todas as enquetes armazenadas no banco

$sql = "SELECT * FROM enquet";

Page 202: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

202

//Executa comando SQL

$result = mysql_query($sql)

or die('Não foi possivel recuperar os dados da tabela: '.

mysql_error());

//Define a variavel enquetes que conterá todas as enquetes

$enquetes = array();

//povoa a variavel enquetes com as enquetes do banco

while( $enquetes[] = mysql_fetch_array($result));

?>

<?php

if(($_POST[senha]) && ($_POST[senha] != "Jayme123")){

?>

<script language="JavaScript">

alert("Senha Incorreta!!!!");

</script>

<?php } ?>

<hr color="#0000CC">

<form name="form1" method="post" action="">

<table width="100%" border="0">

<tr>

<td width="23%" nowrap>Selecione a Enquete:

<select name="enquete" id="select2">

<?php /*A sequencia php das proxima 7 linhas povoa

o

combo box com os titulos das enquetes*/

reset($enquetes);

for($aux = pos($enquetes); $aux =

pos($enquetes); $aux = next($enquetes)){

?>

<option value="<?php echo $aux[id]; ?>"

selected><?php echo

$aux[Titulo];?>

</option>

<?php } ?>

</select>

</td>

<td width="14%" nowrap>

<input name="Buscar" type="submit" id="Buscar4"

value="Atualizar">

</td>

<td width="17%" nowrap>Digite a senha </td>

<td width="21%"><input name="senha" type="password"

id="senha">

Page 203: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

203

</td>

<td width="25%"><input name="Apagar" type="submit"

id="Apagar2" value="OK">

</td>

</tr>

<tr>

<td nowrap>Ativar Enquete

<input type="radio" name="OP" value="Ativar">

</td>

<td nowrap>&nbsp; </td>

<td nowrap>Excluir Enquete</td>

<td><input type="radio" name="OP" value="Excluir">

</td>

<td>&nbsp;</td>

</tr>

</table>

</form>

<?php

/*O código abaixo recupera a enquete ativa ou então a enquete

que se deseja buscar e

mostra em uma tabela o resultado*/

if($_POST[enquete] && $_POST[Buscar]){

$sql = "SELECT * FROM enquet WHERE id =

$_POST[enquete]";

}else {

$sql = "SELECT * FROM enquet WHERE Ativo = 'S'";

}//else

$result = mysql_query($sql) or die('Não foi possivel

recuperar os dados da tabela: '. mysql_error());

$row = mysql_fetch_array($result);

$soma = $row[op1] + $row[op2] + $row[op3] + $row[op4] +

$row[op5] + $row[op6];

?>

<hr color="#0000CC">

<p align="center"><strong><font color="#0000FF"

size="4">Titulo da enquete: <?php echo $row[Titulo]; ?>

</font></strong></p>

<table width="100%" border="0">

<tr>

<td bgcolor="#669900"><strong><font color="#FFCC66"

size="2" face="Verdana, Arial, Helvetica, sans-

serif">Op&ccedil;&atilde;o</font></strong></td>

<td bgcolor="#669900"><strong><font color="#FFCC66"

size="2" face="Verdana, Arial, Helvetica, sans-

serif">Total</font></strong></td>

<td bgcolor="#669900"><strong><font color="#FFCC66"

size="2" face="Verdana, Arial, Helvetica, sans-

Page 204: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

204

serif">Porcentagem</font></strong></td>

<td bgcolor="#669900"><strong><font color="#FFCC66"

size="2" face="Verdana, Arial, Helvetica, sans-

serif">Gr&aacute;fico</font></strong></td>

</tr>

<?php for($i = 1; ($i <=6) && $row["t_op".$i] != ""; $i++){

?>

<tr>

<td bgcolor="#669900"><strong><font color="#00FFFF"

size="2" face="Verdana, Arial, Helvetica, sans-serif"> <?php

echo $row["t_op".$i]; ?> &nbsp;</font></strong></td>

<td><strong><font size="2" face="Verdana, Arial,

Helvetica, sans-serif"> <?php echo $row["op".$i]; ?>

</font></strong></td>

<td><strong><font size="2" face="Verdana, Arial,

Helvetica, sans-serif">

<?php if($soma !=0 ) {

echo bcdiv($row["op".$i], $soma, 3)* 100 . "%";

}else{

echo "0";

}

?>

</font></strong></td>

<td><img src="pixel.gif" width="

<?php if($soma !=0 ) {

echo bcdiv($row["op".$i], $soma, 3)* 100;

}else{

echo "0";

}

?>

"height="20"></td>

</tr>

<?php } ?>

<tr>

<td><strong><font color="#000000" size="2" face="Verdana,

Arial, Helvetica, sans-serif">Total</font></strong></td>

<td><strong><font color="#000000" size="2" face="Verdana,

Arial, Helvetica, sans-serif"> <?php echo $soma; ?>

</font></strong></td>

<td colspan="2"><strong><font color="#000000" size="2"

face="Verdana, Arial, Helvetica, sans-

serif">100%</font></strong></td>

</tr>

</table>

<hr color="#0000CC">

<table width="100%" border="0">

Page 205: Comunicação Entre Dispositivos Móveis e Servidores ... Frederico Junior... · 3 Resumo O trabalho realiza um estudo sobre a Comunicação entre dispositivos móveis e Servidores

205

<tr>

<td width="25%"><div align="center"><font size="2"

face="Verdana, Arial, Helvetica, sans-serif"><a

href="index.php">Principal</a></font></div>

</td>

<td width="25%"><div align="center"><font size="2"

face="Verdana, Arial, Helvetica, sans-serif"><a

href="cria.php">Cria&ccedil;&atilde;o

de Enquete</a></font></div>

</td>

<td width="25%"><div align="center"><font size="2"

face="Verdana, Arial, Helvetica, sans-serif"><a

href="vota.php">Vota&ccedil;&atilde;o</a></font></div>

</td>

<td width="25%"><div align="center"><font size="2"

face="Verdana, Arial, Helvetica, sans-serif"><a

href="resultado.php">Resultado</a></font></div>

</td>

</tr>

</table>

<p>&nbsp;</p>

</body>

</html>