44
UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA m-PSP: Ferramenta de apoio a utilização do Processo Pessoal de Software Grupo: Anderson Lamas Hebert Luiz Nidyana Miranda Thiago Souto Prof:Mauro Nacif VIÇOSA – MINAS GERAIS JANEIRO - 2007

m-PSP: Ferramenta de apoio a utilização do Processo ...nacif/cmovel/files/2006/02/relat.pdf · Figura3 - Modelo de requisição/resposta Figura4 - Pilha de protocolos WAP Figura5

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DE VIÇOSACENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

DEPARTAMENTO DE INFORMÁTICA

m-PSP: Ferramenta de apoio a utilização do Processo Pessoal de Software

Grupo:

Anderson Lamas Hebert Luiz Nidyana MirandaThiago Souto

Prof:Mauro Nacif

VIÇOSA – MINAS GERAISJANEIRO - 2007

Lista de Figuras

Figura1 – Modelo de comunicação WAP

Figura2 – Funcionalidades do WAP Gateway

Figura3 - Modelo de requisição/resposta

Figura4 - Pilha de protocolos WAP

Figura5 – Modelo em camadas da Internet

Figura6 – Comparação entre arquiteturas WWW e WAP

Figura7 – Conservação da largura de banda na pilha WAP

Figura8 - Modelo de comunicação WWW

Figura9 - Modelo de comunicação WAP

Figura10 – Modelo de segurança

Figura11 – Modelo de comunicação WAP

Figura12– Modelo opcional, usando WAP Proxy

Figura13 – Pilha WAP

Figura14 – Pilha de protocolos WAP 2.0

Figura15 – Pilha dupla WAP (opcional)

Lista de Tabelas

Tabela 1: Níveis do PSP

Lista de Abreviaturas ASP − Active Server PagesCDMA − Code Division Multiples AccessCGI − Common Gateway InterfaceCIA − Cellular Industry AssociationCSD − Circuit-Switched DataDNS − Domain Name ServerDSO - Dynamic Shared ObjectsEFI − External Funcionality InterfaceERB − Estação Rádio-BaseETSI − European Telecommunication Standard InstituteFTP − File Transfer ProtocolGPRS − General Packet Radio ServiceGSM − Global System fom Mobile CommunicationHDML − Handhled Device Markup LanguageHDTP − Handhled Device Transport ProtocolHTML − HyperText Markup LanguageHTTP − HyperText Transfer ProtocolIIS − Internet Information ServiceIP − Internet ProtocolITTP − Intelligent Terminal Transfer ProtocolMDI − Mobile Data InitiativeMIME − Multiporpose Internet Mail ExtensionsMMS − Multimedia Messaging ServiceOSI − Open System InterconnectionPDA − Personal Digital AssitantPDU − Protocol Data UnitPHP − Processor HypertextPSI − Persistent Storage InterfaceQoS − Quality of ServiceSEI - Software Engineering InstituteSGDB − Sistema Gerenciador de Banco de DadosSMS − Short Message ServiceSSL − Security socket LayerTCP − Transmission Control ProtocolTDMA − Time Division Multiplex AccessTIA − Telecommunication Industry AssociationTLS − Transport Layer SecurityTSAP − Transport Service Access PointTTML − Tagged Text Markup LanguageUAProf − User Agent ProfileUDP − User Datagram ProtocolUM − Unidade MóvelURL − Uniform Resource LocationW3C − Word Wide Web ConsortiumWAE − Wireless Application Enviroment

Sumário1. Introdução

2. Motivação

3. Sobre o PSP

3.1. Personal Software Process (PSP)

3.2. Objetivos do PSP

3.3. Níveis do PSP

4. Tecnologias e Ferramentas Utilizadas

4.1 Wireless

4.2 Wireless Application Protocol (WAP)

4.2.1 WAP Fórum

4.2.2 Ambiente WAP

4.2.3 Arquitetura WAP

4.2.4 WAP Gateway

4.2.5 A transmissão de Dados e Voz

4.2.6 Modelo de Requisição/ Resposta WAP

4.4.6.1 Pilha de Protocolos

4.2.6.2 Camada de Aplicação (WAE)

4.2.6.3 Camada de Sessão (WSP)

4.2.6.4 Camada de Transação (WTP)

4.2.6.5 Camada de Segurança (WTLS)

4.2.6.7 Camada de Rede – Portadora

4.2.7 WAP X Protocolo de Internet

4.2.7.1 Arquitetura Internet

4.2.7.2 Protocolo TCP

4.2.7.3 Protocolo IP

4.2.7.4 Limitações do Protocolo

4.2.7.5 Ipv6

4.2.8 Protocolos utilizados na WWW x WAP

4.2.9 Funcionamento WWW x WAP

4.2.10 Segurança WWW x WAP

4.2.11 Arquitetura WAP 2.0

4.2.12 Pilha de Protocolos

4.2.13 Serviços adicionais

4.2.14 Linguagens para WAP

4.3 PHP

4.4 Banco de Dados MySQL

5. Descrição do PALM para Implementação e testes

6. Fotos da execução do sistema no PDA citado no item 5

7. Conclusões

8. Dificuldades da pesquisa

9. Referências Bibliográficas

1. Introdução

A constante e rápida expansão tecnológica da comunicação sem fio traz a

demanda de acesso a informações, independente da localidade ou da informação

solicitada do usuário. Espera-se num futuro próximo, que milhares de pessoas estarão

usando equipamentos portáteis, tais como, palmtops, handhelds, entre outros. Dessa

forma, cada vez mais estão surgindo necessidades inerentes de construção de aplicações

para esse tipo de dispositivo ou a adaptação de softwares já existentes.

Observando a questão de adaptação de softwares existentes, notou-se a ausência

de uma aplicação móvel que funciona como uma ferramenta de apoio para a utilização

do PSP. O PSP (Personal Software Process) é um processo de desenvolvimento de

software que prioriza o planejamento do trabalho realizado [Humphrey, 1995]. Assim

sendo, o programador deve passar por várias fases planejando e revendo seu trabalho. O

produto final é um software com menos erros e maior qualidade. O processo requer a

coleta de vários dados como o tempo de duração das atividades, anotação do tempo

tomado por interrupções do ambiente e anotação e classificação dos erros cometidos em

cada fase e o tempo gastos para sua correção.

Uma aplicação móvel possibilitará aos programadores uma maior mobilidade na

coleta dos dados, pois poderiam continuar utilizando o sistema em qualquer lugar e um

maior controle por parte dos gerentes de equipes que poderão ter acesso a todos os

projetos que estarão concentrados em uma única base de dados.

Para aumentar a flexibilidade da aplicação optou-se em utilizar a tecnologia

WAP para a sua construção principalmente porque esta tecnologia faz uso combinado de

recursos da Web e da telefonia móvel.

O WAP é um padrão construído para a apresentação e entrega de informação em

ambientes móveis, permitindo que os usuários tenham acesso à informação desejada,

onde quer que estejam, a qualquer momento [BEL2001]. Este padrão é global e aberto,

O padrão WAP também especifica uma linguagem para apresentação de conteúdo em

redes móveis, semelhante ao HTML, só que com características próprias para o meio

sem fio, denominado WML. Para que um dispositivo móvel possa fazer acesso às

informações disponibilizadas na rede, em sua maioria no formato HTML, é necessário

que se converta essa informação para o formato suportado, no caso, WML. Porém,

devido à grande variedade de fabricantes e modelos de dispositivos móveis, torna-se

difícil estabelecer um padrão para que a visualização de tais documentos seja correta em

todos os dispositivos aptos ao acesso da informação. Além disso, os dispositivos móveis

sem fio tendem a possuir.

2. Motivação

O uso do PSP como um mecanismo para a melhora no processo de produção de

software já é algo amplamente divulgado e aceito. Prova disso são as diversas

ferramentas encontradas no mercado que auxiliam o seu uso, tais como o PSP Studio,

planilhas do SEI ou ainda aquelas resultantes de trabalhos acadêmicos.

Uma característica que poderia ampliar as possibilidades do uso do PSP, e que

normalmente não é encontrada nas ferramentas existentes, é a adaptação para o uso em

dispositivos móveis. Acrescentar o recurso da mobilidade ao PSP é algo que poderia

trazer grandes benefícios tanto para profissionais que estejam simplesmente lançando

dados, quanto para aqueles que irão utilizar estes dados para tomar suas decisões.

No caso dos profissionais como programadores e analistas que necessitem apenas

inserir dados nas diversas planilhas do PSP, o uso de um PDA permitiria que esse

processo fosse agilizado. Através do seu uso o profissional poderia trabalhar mesmo

quando estivesse fora do seu ambiente de trabalho. Isto seria uma forma de acelerar a

conclusão do processo do PSP.

Já no caso de profissionais como gerentes e diretores responsáveis por tomar

decisões o uso desse serviço móvel poderia ser útil para apresentar dados em reuniões

ou em negociações com equipes. Através de um sistema móvel como este seria possível

visualizar dados de todos os programadores, e escolhe-los para trabalhar em um projeto

baseado em pesquisas sobre os dados coletados. Por exemplo, poderia escolher aqueles

produzissem um maior número de linhas de código por minuto ou os que apresentassem

a menor taxa de erros por determinado número de linhas de código.

Certamente o uso de dispositivos móveis ficaria limitado à existência de um rede

sem fio. Porém esta tecnologia tem se expandido a grandes taxas o que viabiliza um

sistema com estas características. Outra vantagem é o fato deste esquema móvel

trabalhar com uma base de dados centralizada e constantemente atualizada, seja com

informações de dispositivos móveis ou desktops. Com isso garante-se uma melhor

manutenção, otimização e administração dos dados.

3. Sobre o PSP

3.1 Personal Software Process (PSP)

O Personal Software Process (Processo Pessoal de Software) foi desenvolvido

por Watts Humphrey em 1989, apoiado pelo SEI. O PSP proporciona um

direcionamento de como os engenheiros podem continuar melhorando seu desempenho.

Conforme [Humphrey,1997] o PSP é um processo de auto-melhoria projetado

para ajudar o engenheiro de software a controlar, administrar e melhorar o modo como

ele trabalha. O PSP é um framework composto de formulários, diretrizes e

procedimentos de desenvolvimento de software. Se for usado de forma correta o PSP

provê dados históricos que o engenheiro de software precisa para fazer e conhecer

melhor seus compromissos, tornar os elementos rotineiros de seu trabalho mais

previsíveis e mais eficientes, e possibilitar medição da qualidade dos produtos gerados

[Humphrey,2000].

Cerca de 70% dos custos de desenvolvimento de software são atribuídos aos

custos de pessoal, as habilidades, as experiências, e os hábitos do trabalho dos

engenheiros de software, que determinam significativamente os resultados do processo

de desenvolvimento de software [Humphrey,2000],

Segundo o modelo proposto por [Humphrey,1995] concentra-se no projeto,

codificação e fases de testes de desenvolvimento de software. Contundo o PSP não se

aplica apenas a eles, mas também a quase qualquer outro aspecto do processo de

software, inclusive especificação de requerimentos, manutenção de produto,

planejamento de testes e desenvolvimento de documentação.

O modelo do PSP possui 7 níveis, normalmente é introduzido com um curso que

consiste de quinze leituras, dez tarefas de programação e cinco relatórios. E se baseia

nos seguintes princípios da qualidade e planejamento:

3.2 Objetivos do PSP

Os objetivos do PSP além de Estimar e Acompanhar o processo, são:

• Gerenciamento do Esforço do software;

• Aumento na qualidade do software;

• Redução do Custo do Software;

• Redução no tempo do ciclo;

• Melhorar a produtividade;

• Eliminar os defeitos antes dos testes;

• Minimizar os custos dos testes do software;

3.3 Níveis do PSP

A implantação do PSP é dividida em 7 níveis, conforme detalhado na tabela

abaixo. Esta implantação é feita de maneira incremental. Os níveis superiores adicionam

características aos níveis já implantados. Isto minimiza o impacto da mudança no

processo do engenheiro, no qual ele somente tem que se adaptarem novas técnicas às já

existentes.

Nome do

Processo

Nível Atividade

Processo de Medição

Pessoal

PSP 0 Registro de Tempo Registro de

Defeitos Padrão de tipos de defeitos

PSP 0.1 Padrão de Codificação Medida de

Tamanho Proposta de

Melhoramento de ProcessoProcesso de

Planejamento Pessoal

PSP 1 Estimativa de Trabalho Relatório de

TestesPSP 1.1 Planejamento de Tarefas

CronogramasProcesso de

Gerenciamento de

Qualidade Pessoal

PSP 2 Revisões de Código Revisões de

ProjetoPSP 2.1 Padrões de Projeto

Processo Pessoal

Cíclico

PSP 3 Desenvolvimento Cíclico

Tabela 1: Níveis do PSP

De forma resumida abaixo são comentadas as etapas do PSP:

● Processo de Medição Pessoal PSP 0: é considerada a base do processo. Nele

é iniciado o registro do tempo gasto em cada etapa do ciclo de desenvolvimento

e dos defeitos encontrados;

● Processo de Planejamento Pessoal PSP 1: é adicionado ao nível anterior um

relatório de testes e estimativas de recursos e tamanho. Aprende-se a estimar e

planejar;

● PSP 1.1: são introduzidos planejamentos de horários e tarefas (elaborar

cronogramas). A idéia geral deste nível é obter a capacidade de estimar o tempo

necessário para realizar uma tarefa baseada em medições feita em tarefas

executadas anteriormente.

● Processo de Gerenciamento de Qualidade Pessoal PSP 2: aprender a

identificar os próprios erros inseridos nos programas, através da introdução de

técnicas de revisão ao PSP1.1. Com base nos defeitos encontrados na

compilação e nos testes dos primeiros programas, o desenvolvedor poderá criar

suas próprias listas de conferências (checklist) gerenciando a qualidade do seu

processo;

● PSP 2.1: estabelece critérios de melhoria do projeto e examina várias técnicas

de verificação e consistência de projeto;

● Processo Pessoal Cíclico PSP 3: é a última etapa do PSP. A idéia é subdividir

o programa maior em pedaços que possam ser tratados no PSP 2. A primeira

construção é um módulo básico ou núcleo, que cresce a cada ciclo de iteração.

Para cada repetição, faz-se um PSP2 completo, incluindo projeto, compilação e

testes. Assim o PSP 3 é satisfatório até para programas com vários KLOC (1). O

processo PSP 3 cíclico efetivamente escala programas grandes contanto que

cada incremento sucessivo seja de alta qualidade [Humphrey,1997].

4. Tecnologias e Ferramentas Utilizadas

4.1 Wireless

Na concepção da palavra Wireless significa conexão "sem fio". Conceitualmente

podemos definir Wireless como uma tecnologia que disponibiliza a transmissão de

dados, som e imagem via ondas de rádio em freqüências superiores a 800 Mhz.

Este tipo de tecnologia pode propiciar diversas funcionalidades tais como:

consultar qualquer tipo de notícias; confirmar reserva de restaurantes ou hotéis;

confirmar horários de vôos; verificar condições de tempo e trânsito; checar e-mails;

pagar hospedagens e outras compras feitas num shopping, e tudo isso em qualquer lugar

ou a qualquer hora, através de dispositivos móveis.

Em resumo podemos dizer que a tecnologia Wireless vem disponibilizar a

portabilidade da informação em qualquer lugar.

4.2 Wireless Application Protocol (WAP)

O padrão WAP foi construído com o objetivo de apresentar e entregar

informação em ambientes móveis, serviços de telefonia móvel e outros terminais sem

fio, possibilitando aos usuários à informação desejada, a qualquer lugar e momento

[BEL, 2001].

A especificação da pilha WAP surgiu de esforços de várias empresas que deu

origem ao denominado WAP Fórum-órgão responsável pela publicação das

especificações WAP, e também da homologação de produtos WAP.

O WAP utiliza padrões de comunicação sem fio, como, TDMA, e GSM. Além

disso, foram acrescidas novas extensões possibilitando aos participantes da indústria

desenvolver soluções independentes com interfaces aéreas, dispositivos independentes e

interoperáveis.

O objetivo do WAP é a agregação de valores aos serviços de redes sem fio

agrupando inteligência em servidores e associando apenas um micro-navegador (micro-

browser) no terminal móvel.

4.2.1 WAP Fórum

Em 1997, quatro empresas reuniram-se para desenvolver um protocolo de

aplicações sem fio em comum. No início esse protocolo foi chamado de MDI. A

iniciativa teve como objetivo unir esforços das companhias para portar aplicações

avançadas e conteúdo da Internet em dispositivos móveis digitais. O MDI herdou

características e a funcionalidade do HDML, HDTP (desenvolvido pela Unwired Planet,

TTML desenvolvido pela Nokia e o ITTP desenvolvido pela Ericsson.

O WAP é um padrão aberto que possibilita às operadoras aumentar o número de

serviços oferecidos, disponibilizando aos assinantes informação desejada a qualquer

hora e independente de onde eles estejam, e à interface do usuário é simples e efetiva,

disponíveis numa variedade de redes e dispositivos.

A especificação WAP resolve problemas de transporte e satisfação quanto às

limitações do ambiente sem fio de hoje, e o WAP Fórum trabalha para o

aperfeiçoamento do acesso sem fio à informação, em conjunto diversas entidades como

ETSI, TIA, W3C e CTIA, para garantir que um único padrão esteja disponível para o

acesso de informações sem fio necessárias aos assinantes e participantes da indústria em

todo mundo.

Segundo [FOR, 1999] o WAP Fórum define como sendo seus objetivos:

a) Disponibilizar conteúdo da Internet e/ou serviços de dados avançados a

telefones celulares digitais ou outros terminais sem fio;

b) Criar uma especificação global de protocolos de redes sem fio para

interoperar entre diferentes tecnologias de redes sem fio (CDMA, GSM, TDMA, etc);

c) Incentivar a criação de conteúdo e aplicações que serão disponibilizados

através de uma variedade de redes sem fio e de terminais;

d) Adotar, dentro do possível, padrões e tecnologias existentes e criar novos

padrões somente quando inevitável.

O WAP Fórum possui uma certificação de produtos, os fabricantes se

credenciam para obtenção de um certificado de conformidade de seus produtos com o

WAP Suite Protocol. Existem também um programa de registro de desenvolvedor e um

programa de verificação de conteúdo. Os desenvolvedores de software utilizando esses

programas podem licenciar seus sites WAP como "WML Compatible" [FOR, 1999].

O WAP Fórum mantém relações com outros órgãos padronizadores

internacionais com o objetivo de assegurar a convergência de futuras especificações.

Alguns destes órgãos são: ETSI; W3C; TIA; CTIA.

4.2.2 Ambiente WAP

A tecnologia WAP converge de duas tecnologias de rede que estão evoluindo

rapidamente são elas: a transmissão de dados sem fio e a Internet. A idéia básica é

utilizar conceitos da Internet, alterando-os para que eles possam ser úteis dentro das

limitações de uma rede sem fio e de aparelhos com recursos restritos.

A maior parte das tecnologias desenvolvidas para a Internet foi projetada para

computadores com capacidade relativa de comunicação e capacidade de processamento

grande. Através de um par de fios da rede telefônica convencional esses computadores

são conectados à Internet, o que lhe dá acesso moderado a uma rede com conexão

aceitável [WAP, 2002].

Os dispositivos móveis para redes sem fio possuem recursos mais restritos de

computação se comparados aos computadores desktop. Como por exemplo:

•Tamanho da tela dos dispositivos – Experiência com usuários de outras

plataformas indica que telas maiores proporcionam melhor usabilidade e

satisfatibilidade do que telas pequenas [BUC, 2001].

•Navegação e Estrutura do Site – Menus e links com grande profundidade em

sua hierarquia dificultam a usabilidade dos dispositivos móveis.

•Métodos de entrada – Nos atuais dispositivos móveis, a entrada requer um

significante esforço por parte do usuário, que tem que pressionar várias vezes uma

mesma tecla do cursor para navegar entre as possíveis opções de um menu, ou apertar

várias vezes uma mesma tecla para entrar apenas um caractere.

•Autonomia das baterias dos dispositivos portáteis.

Além dessas restrições, as redes móveis sem fio apresentam um ambiente mais

hostil de comunicação quando comparado às redes com fio. Devido às limitações de

potência, disponibilidade de espectro e mobilidade, as redes móveis sem fio tendem a

possuir [FOR, 1999]:

• Menor banda passante;

• Maior latência de transmissão de dados;

• Menor estabilidade na conexão;

Consequentemente a comunicação sem fio fica prejudicada. Para minimizar

esses problemas, a especificação WAP tenta adequar seus protocolos e serviços a fim de

amenizar essas diferenças entre estes dois ambientes. Sendo assim, a pilha WAP utiliza

transmissão binária de dados (Bytecode), sendo aperfeiçoada para alta latência e baixa

largura de banda passante.

4.2.3 Arquitetura WAP

A característica principal do padrão WAP é o emprego de vários protocolos já

existentes para a Internet como TCP, UDP, XML, HTML, SSL, entre outros. [FOR,

1999]. O funcionamento do WAP e apresentada na figura abaixo.

Figura1 – Modelo de comunicação WAP

As aplicações e o conteúdo e WAP são especificados através de um conjunto de

formatos conhecidos, com base nos conteúdos utilizados na Internet tradicional: os

dados são transportados utilizando protocolos de comunicação da Internet; o

microbrowser de um dispositivo móvel é especificado de forma análoga ao browser

convencional.

O micro-browser tem como função interpretar e exibir o conteúdo desenvolvido

para o ambiente WAP. Através da linguagem WML esse conteúdo é criado, uma

linguagem semelhante ao HTML. Ao contrário da linguagem HTML, a WML foi criada

para atender às necessidades dos dispositivos e redes sem fio, respeitando suas

deficiências e limitações. WML é adaptada e otimizada para utilização em ambiente

sem fio [RIS, 2001].

4.2.4 WAP Gateway

O WAP gateway (também conhecido por WAP Proxy) é um software que realiza

basicamente uma conexão entre o cliente (dispositivo móvel) e o servidor (http Server,

http Proxy, etc.). Um WAP gateway acessa todos os servidores DNS para resolver os

nomes de domínios usados nas URL’s, para aliviar o processamento dos dispositivos

portáteis.

O WAP gateway possui as seguintes funcionalidades [WAP, 2002]:

• Gateway de protocolo - Traduz as solicitações WAP para os padrões da

Internet;

• Codificadores e Decodificadores de conteúdo – Coloca o conteúdo a ser

transmitido em um formato de código compactado, bytecode, com a intenção de reduzir

o tamanho e o número de pacotes que trafegam na rede de dados sem fio.

Os conteúdos e aplicações são hospedados em servidores Internet e podem ser

desenvolvidos utilizando tecnologias da Internet como HTML, ASP, CGI, PHP, entre

outras. Ver figura abaixo:

Figura2 – Funcionalidades do WAP Gateway

4.2.5 A transmissão de Dados e Voz

O padrão WAP define a tecnologia WTA, que tem como objetivo fornecer meios

para definir serviços de telefonia (voz). A interface entre as funções relacionadas à

telefonia no dispositivo WAP é chamada de WTAI.

Quando o WAP browser é utilizado para solicitar dados, é enviado um pedido

através da rede sem fio para o WAP gateway que converte a requisição para os

protocolos da Internet. Em seguida é enviada essa requisição para o Web Server pela

Internet. O Web Server recebe a requisição, lê e retorna uma resposta com conteúdo

WML para o WAP gateway.

O conteúdo é criptografado e enviado através da rede sem fio para o WAP

browser que recebe a resposta do WAP gateway e a exibe na tela do dispositivo WAP,

ver figura abaixo.

Figura3 - Modelo de requisição/resposta

4.2.6 Modelo de Requisição/ Resposta WAP

4.4.6.1 Pilha de Protocolos

O WAP é uma pilha de protocolos composta por cinco camadas

independentes e é extensível para o desenvolvimento de aplicações direcionadas

a utilização em dispositivos móveis, conforme a figura abaixo.

Figura4 - Pilha de protocolos WAP

Com a divisão em camadas possibilita que outros serviços e aplicações

utilizem as características da pilha WAP através de um conjunto de interfaces

bem definidas [WAP, 2002]. As aplicações externas podem acessar diretamente

as camadas Session, Transaction, Security e Transport. A pilha de protocolos faz

o isolamento da tecnologia das operadoras, tornando possível que as aplicações

sejam executadas, independentemente do serviço de transporte utilizado.

4.2.6.2 Camada de Aplicação (WAE)

A camada Wireless Application Environment é responsável por estabelecer um

ambiente interativo, aonde os prestadores de serviços e as operadoras podem construir

aplicações alcançando um grande número de plataformas sem fio eficiente. O WAE

inclui um ambiente de micro-browser que suporta tecnologias: WML; WMLScript;

Serviços de telefonia e interfaces de programação: WTA, WTAI; Conjunto de formatos

de dados bem definidos, como imagens, registros de agenda de telefones e de

compromissos.

O WAE assume a existência de funcionalidades de um gateway responsável por

codificar os dados transferidos para o cliente móvel. A codificação dos dados tem como

objetivo minimizar o tamanho dos dados enviados pelo ar, e minimizar o volume de

recursos necessários para o cliente processar esses dados. É importante ressaltar que a

funcionalidade do gateway pode ser adicionada aos servidores de Internet que já

existem.

4.2.6.3 Camada de Sessão (WSP)

Dois tipos de serviço para a camada de aplicação do WAP são disponibilizados

pelo Wireless Session Protocol. O primeiro serviço é o orientado a conexão, que opera

sobre o protocolo de transação WTP, e o segundo serviço é o não orientado a conexão,

que opera sobre o serviço de datagrama seguro ou não, WDP. As seguintes

funcionalidades são oferecidas pelo WSP: funcionalidade e semântica do HTTP através

de uma codificação compacta; suspensão e retomada de sessões; protocolo para

negociação de capacidades.

Os protocolos da família WSP são otimizados para uma banda que possui uma

baixa conexão, com latência relativamente longa. WSP foi projetado para permitir que

um proxy WAP conecte um cliente WSP a um servidor HTTP comum.

4.2.6.4 Camada de Transação (WTP)

O Wireless Transaction Protocol é um protocolo orientado à conexão, que

disponibiliza os seguintes serviços:

• Classes de serviço:

Requisições one-way (solicitação) não confiáveis

Requisições one-way (solicitação) confiáveis

Requisições two-way (solicitação/respostas) confiáveis.

• Confiabilidade opcional user-to-user - Usuário ativa a confirmação a cada

mensagem recebida.

• Concatenação de PDU’s e reconhecimento do atraso para reduzir o número de

mensagens enviadas.

• Transações Assíncronas.

4.2.6.5 Camada de Segurança (WTLS)

O Wireless Transport Layer Security é um protocolo de segurança baseado no

protocolo TLS, conhecido também como SSL. O WTLS disponibiliza os seguintes

serviços:

• Integridade de Dados - O WTLS contém dispositivos que asseguram que os

dados transmitidos entre o terminal e um servidor de aplicações não foram modificados

ou corrompidos.

• Privacidade - Dados transmitidos entre o terminal e o servidor de aplicações

não podem ser compreendidos por ninguém que tenha interceptado o fluxo de dados.

• Autenticação - Permite facilidades que estabelecem a autenticidade do terminal

e do servidor de aplicações.

• Detecção e rejeição de dados incorretos.

4.2.6.6 Camada de Transporte (WDP)

O Wireless Datagram Protocol opera o serviço de transporte de dados,

oferecendo uma forma de transmissão de pacotes transparente das camadas superiores

da pilha WAP. Sendo assim as camadas de Segurança, Sessão e Aplicação podem

funcionar independentes da rede sem fio utilizada.

Para a camada superior do WAP o WDP possui um TSAP. Esta interface de

serviços possibilita que as aplicações trabalhem de forma transparente sobre os

diferentes serviços de portadora disponíveis.

4.2.6.7 Camada de Rede – Portadora

A pilha de protocolos WAP foi projetada objetivando operar sobre uma

variedade de serviços de portadoras, incluindo SMS, CSC e pacotes de dados. Cada

portadora oferece um nível de qualidade de serviço diferente em relação à velocidade de

transmissão, taxa de erros e atrasos. O encaminhamento de datagramas até ao

dispositivo destino é responsabilidade da rede portadora.

O tipo de endereçamento utilizado varia de acordo com o tipo de rede portadora,

como por exemplo, endereços IP ou números de telefone. Existem redes que utilizam

alocação dinâmica de endereços sendo necessário utilizar um servidor para encontrar o

endereço atual de um certo dispositivo. Os endereços de rede dentro da pilha WAP

podem incluir o tipo de portadora e o endereço (ex: IP – 200.131.17.45). Para

compensar ou tolerar estas diferenças os protocolos WAP foram projetados.

4.2.7 WAP X Protocolo de Internet

4.2.7.1 Arquitetura Internet

A arquitetura da Internet é baseada em um modelo com quatro camadas (ver

figura abaixo) onde cada camada executa um conjunto de funções de comunicação.

Figura5 – Modelo em camadas da Internet

A troca de informações entre as camadas da pilha acontece de forma vertical e

hierárquica e cada camada trata das informações que correspondem à sua função.

Quando se trata de comunicação entre dois hosts, a comunicação entre as camadas é

vista de maneira horizontal, ou seja, a Camada TRANSPORTE do host destino conversa

somente com a Camada TRANSPORTE do host Origem, e assim sucessivamente.

4.2.7.2 Protocolo TCP

Para a comunicação entre computadores da Internet é utilizado o protocolo TCP.

Através dele, pode-se obter um serviço de transporte confiável.

Para identificar a que serviço um determinado datagrama pertence, o TCP

utiliza o conceito de "portas". Uma porta é a representação numérica de um serviço na

Internet. As principais funções do TCP são:

•Transferência de dados - Transmissão de dados em blocos (segmentos) e em

modo full-duplex (envio e recebimento simultâneos);

•Transferência de dados urgentes – Transmite primeiramente os segmentos que

contenham sinalização de urgência;

•Estabelecimento e liberação de conexão;

•Segmentação - O TCP pode dividir os dados a serem transmitidos em pequenos

blocos (segmentos) que são identificados para, no host destino, serem agrupados

novamente.

•Controle de fluxo - Capacidade de adaptar a transmissão dos segmentos às

condições de transmissões (velocidade, tráfego, etc.) entre os sistemas envolvidos.

• Controle de erros – Segmentos são identificados antes de serem transmitidos.

Além disso, é adicionado o checksum, para verificar e corrigir erros na transmissão.

4.2.7.3 Protocolo IP

O IP é o protocolo responsável por definir o caminho que um pacote de dados

deverá percorrer do host origem ao host destino, passando por uma ou várias redes. Ao

contrário do TCP, o protocolo IP é chamado de Protocolo não-orientado a conexão, o

que significa que não há nenhuma garantia na transferência. O protocolo apenas

encaminha os pacotes pela rede.

4.2.7.4 Limitações do Protocolo

Embora os protocolos da pilha TCP/IP viabilizem a Internet e ofereçam

importantes serviços, existem algumas deficiências, como por exemplo, a questão da

segurança.

Atualmente muitos dos problemas de segurança na transmissão de dados pela

Internet estão relacionados ao fato de que o protocolo na sua forma atual (IPv4) não foi

projetado para ser seguro, sendo sujeito a vários ataques. Como conseqüência, vários

serviços da Internet baseados no IP, como o Telnet, o FTP e SMTP também não são

seguros, uma vez que utilizam mensagens que são transportadas pelo IP em texto aberto

e, assim sendo, são vulneráveis.

Além do problema de segurança, existe um outro problema em relação à versão

atual do IP. Com o campo de endereços dos pacotes limitados em 4 bytes (32 bits),

espera-se que a Internet fique sem novos endereços dentro de poucos anos, o que poderá

ter conseqüências extremamente sérias.

4.2.7.5 Ipv6

Tentando resolver as limitações do IPv4, desenvolveu-se uma nova versão do IP,

o IPv6 (ou IPSec). Neste novo protocolo um pré-requisito é a segurança. O IPSec

oferece serviços de autenticação de usuários e garantia de confidencialidade e de

integridade dos dados através de criptografia. O IPSec resolve também a questão dos

endereços IP, uma vez que o novo tamanho do campo de endereços passa para 16

octetos (128 bits), o que permitirá a expansão da Internet sem problemas.

Devido à ampla base instalada de hosts e roteadores compatíveis com o IPv4, o

IPv6 está sendo desenvolvido de forma que seja possível uma migração gradual para o

novo protocolo. O novo endereço IP conta com 16 octetos.

4.2.8 Protocolos utilizados na WWW x WAP

A pilha de protocolos WAP é similar à utilizada atualmente na Internet, com a

diferença de ser otimizada ao máximo para tentar superar os obstáculos que as redes e

dispositivos sem fio oferecem.

Os protocolos da pilha WAP cobrem o nível de aplicação (WML e WMLScript) e

o nível de transporte (WSP e WTP, WTLS e WDP). A pilha de protocolos WAP consiste

de cinco camadas, que possuem correspondência com os protocolos utilizados na

Internet, conforme a figura abaixo. Na pilha de protocolos WAP a aplicação é isolada

das operadoras, isso torna possível que as aplicações sejam executadas,

independentemente do serviço de transporte utilizado.

Figura6 – Comparação entre arquiteturas WWW e WAP

Existem algumas modificações propostas para WAP com relação à pilha de

protocolos da Internet:

• Os textos de cabeçalho do HTTP são traduzidos em código binários o que

reduz a quantidade de dados que devem ser transmitidos via interface aérea.

• Para restabelecimento de sessão um protocolo é definido para permitir que as

sessões possam ser suspensas e retomadas sem o overhead de estabelecimento inicial.

Isto permite suspender uma sessão enquanto se espera um recurso de rede, minimizando

a utilização da bateria.

• O WAP possui um Protocolo de Transação sem fio (WTP) que disponibiliza

um serviço de datagrama confiável, com muitas características úteis do protocolo TCP

tradicional, mas sem o comportamento que o torna inadequado nas redes sem fio.

O TCP, por exemplo, faz a transmissão de uma grande quantidade de informação

para cada transação de solicitação/resposta, incluindo informações necessárias ao

controle de entrega de pacote fora de ordem. No WAP só existe uma rota possível entre

o WAP proxy e o dispositivo portátil, não existindo a necessidade de controle. O WTP

faz a eliminação da informação desnecessária e reduz a quantidade de informação para

cada transação de solicitação/resposta. Isto exemplifica a otimização que o WTP

promove. A solução WTP do WAP também menciona que não é necessária uma pilha

TCP no telefone, tolerando a redução de processamento e memória no dispositivo

portátil.

As melhorias incorporadas na pilha de protocolos WAP significaram uma

economia na largura de banda das redes sem fio. A figura abaixo apresenta uma

comparação entre o número de pacotes necessários em um processo utilizando um

browser convencional HTTP e um WAP browser. O protocolo WAP utiliza menos da

metade do número de pacotes necessários para disponibilizar um conteúdo com

protocolos HTTP/TCP/IP. Esta melhoria é essencial para utilizar melhor a largura de

banda que é limitada nas redes sem fio.

Figura7 – Conservação da largura de banda na pilha WAP

4.2.9 Funcionamento WWW x WAP

Quando se oferece serviços de Internet para uma rede sem fio são apresentados

novos desafios para todos os envolvidos nessa atividade. O mercado é diferente e os

consumidores têm novas necessidades e expectativas. A rede sem fio tem menor largura

de banda e algumas dificuldades de comunicação. Os dispositivos utilizados também

são diferentes e limitados.

Nos dias atuais Internet é amplamente utilizada. As pessoas à utilizam para

encontrar informação de vários tipos. Ainda que as aplicações e os serviços sejam

diferentes, o processo é o mesmo. Na Internet convencional são encontrados clientes e

servidores. Entre outras atividades, estes servidores, fazem à hospedagem de páginas

estáticas (HTML) ou geram páginas resultantes de aplicações dinâmicas construídas no

momento em que são solicitadas. O cenário de transmissão de dados da Internet

convencional é mostrado na figura abaixo.

Figura8 - Modelo de comunicação WWW

Seqüência de eventos envolvidos na transmissão de dados durante um acesso à

Internet convencional:

1. O usuário inicializa o browser e especifica um endereço (URL).

2. O browser analisa o endereço e envia uma solicitação para o servidor

utilizando o protocolo HTTP.

3. O servidor analisa a solicitação. Se for uma página comum, estática, ela será

localizada; se for uma aplicação dinâmica (por exemplo, uma consulta a um banco de

dados) o programa correspondente será disparado e uma página de resposta será gerada

(isto poderá ocorrer no próprio servidor do provedor ou em qualquer outro da rede).

4. O servidor colocará um cabeçalho HTTP na página resposta e enviará de volta

ao browser.

5. O browser analisará e exibirá o resultado na tela do micro.

A comunicação entre clientes e servidores no caso da pilha WAP, é basicamente

constituída de conversão de "pedidos". O WAP gateway pode ser visto como um

"conversor de solicitações". O cenário de transmissão de dados para a Internet usando

WAP é mostrado na figura abaixo.

Figura9 - Modelo de comunicação WAP

Seqüência de eventos envolvidos em uma transmissão de dados durante um

acesso à Internet via WAP:

1. O usuário utiliza um aparelho WAP para solicitar o endereço (escolhendo um

item no menu, por exemplo).

2. O WAP browser analisa e envia a solicitação WAP gateway. Neste trecho da

transmissão será utilizado WML e não HTML.

3. O WAP gateway analisa e "converte" o protocolo WML em HTML.

4. A solicitação será então enviada a um Servidor Web comum, presente na rede.

5. O servidor do destino envia a resposta (com protocolo HTTP) ao WAP

gateway.

6. O servidor WAP analisa o que recebeu, valida o código WML, faz as

conversões de protocolo necessárias e envia o resultado ao dispositivo WAP.

7. O WAP browser analisa e exibe o resultado em sua tela.

4.2.10 Segurança WWW x WAP

Uma questão sempre importante é a segurança, especialmente quando se utiliza

WAP para aplicações e serviços, como por exemplo, acesso a dados bancários ou

mesmo transações comerciais. Os usuários precisam sentir que os serviços disponíveis

são seguros. A especificação WAP garante que um protocolo de segurança estará

disponível para essas transações.

A solicitação é segura desde o dispositivo WAP até o gateway. No entanto, nas

camadas superiores às camadas TLS-SSL na pilha TCP/IP e WTLS na pilha WAP a

informação não é segura, ver figura abaixo.

Figura10 – Modelo de segurança

4.2.11 Arquitetura WAP 2.0

O WAP 2.0 é a evolução da pilha de protocolos WAP. Ele traz um conjunto de

melhorias e especificações que fazem aumentar o processamento dos dispositivos

móveis e proporciona uma qualidade maior no acesso à Internet, corrigindo alguns

problemas existentes na versão anterior.

A seguir são apresentadas melhorias propostas para WAP 2.0 [WAP, 2002]:

• Suporte aos protocolos de comunicação padrão da Internet como TCP e HTTP,

permitindo que dispositivos sem fio utilizem diretamente essa tecnologia, sem a

necessidade do WAP proxy.

• Compatibilidade com as versões anteriores de WAP.

• Suporte a tecnologias de comunicação como GPRS.

• Provê um ambiente de aplicação rico, com capacidade de prestação de serviços

para telefonia móvel digital, pagers, PDA’s e outros dispositivos sem fio com

interoperabilidade.

• Minimiza o uso de energia de bateria durante o processamento e otimiza os

recursos de rede.

A organização da arquitetura da pilha de protocolos WAP 2.0 é baseada na pilha

de protocolos usada na Internet, incluindo TCP, TLS e HTTP. E o novo ambiente de

aplicação WAP suporta a linguagem WML2 que é baseada em XHTML, sucessora do

HTML.

Figura11 – Modelo de comunicação WAP

O WAP 2.0 não requer um WAP proxy, uma vez que a comunicação entre o

cliente e o servidor é realizada através do uso do protocolo HTTP, como mostrado na

figura acima. Entretanto, o WAP proxy pode oferecer melhorias nos serviços móveis e

otimizar o processo de comunicação, como privacidade, segurança e localização de

unidades. É importante ressaltar que para ser possível oferecer a funcionalidade de push

– capacidade de armazenamento temporário de dados para um posterior processamento,

o WAP proxy se torna necessário, ver figura abaixo.

Figura12– Modelo opcional, usando WAP Proxy

4.2.12 Pilha de Protocolos

A pilha de protocolos WAP 2.0 é similar à versão anterior, com a introdução de

capacidades para suporte direto aos protocolos de Internet. Os protocolos existentes na

versão anterior continuam existindo na pilha WAP 2.0, porém com modificações para

que estes melhor utilizem as características das redes sem fio, que possuem baixa taxa

de transmissão e latência relativamente alta.

1. Wireless Session Protocol (WSP): Incorpora características e funcionalidades

de HTTP. Oferece uma interface de comunicação orientada à conexão ou sem conexão.

2. Wireless Transaction Protocol (WTP): Capacita a camada superior para

retransmissões e reconhecimentos (acks) quando for o caso. Suporta negociações

explícitas para estabelecimento de conexões.

3. Wireless Transport Layer Security (WTLS): Oferece privacidade, integridade

de dados e autenticação durante uma comunicação. Garante uma interface de serviços

de transporte segura. Oferece funcionalidades similares às do protocolo TLS e incorpora

características adicionais como suporte a datagramas, handshake otimizado e

atualização dinâmica de chaves de sessão.

4. Wireless Datagram Protocol (WDP): Oferece um serviço de comunicação em

datagramas totalmente transparente para o usuário.

A figura abaixo apresenta como o WAP Gateway faz interconexão das redes com

e sem fio, permitindo que dispositivos WAP tenham acesso à Internet.

Figura13 – Pilha WAP

A principal característica do WAP 2.0 foi à inserção dos protocolos de Internet

no ambiente WAP. Esta inclusão foi devido à necessidade de aumentar a velocidade de

transmissão das redes sem fio, como acontece nas gerações 2.5G e 3G, onde os

dispositivos móveis suportam diretamente IP.

Protocolos inseridos na pilha WAP 2.0:

1. Wireless Profiled HTTP (WP-HTTP): É uma versão de HTTP para ambientes

sem fio, completamente interoperável com HTTP 1.1. O modelo básico de interação

entre o dispositivo WAP e o WAPproxy/WAPserver é o modelo de transação

requisição/resposta do HTTP.

2. Transport Layer Security (TLS): Oferece segurança para transações através de

cifragem, certificados, algoritmos de sinalização e uso de sessões. Define um método de

tunelamento para suporte de segurança fim-a-fim em nível de transporte.

3. Wireless Profiled TCP (WP-TCP): Suporta conexões orientada a serviços.

Otimizado para ambientes sem fio e é completamente interoperável com TCP padrão.

A figura abaixo mostra a interconexão dos protocolos no dispositivo WAP com

um Web Server, utilizando um WAP proxy. Nesse modelo, o túnel TLS é habilitado no

WAP proxy, permitindo segurança fim-a-fim para transações HTTP.

Figura14 – Pilha de protocolos WAP 2.0

Como WAP 2.0 suporta ambas as pilhas de protocolos (WAP 1.1 e WAP 2.0)

espera-se que as pilhas operem independentemente. Para isso acontecer o dispositivo

WAP deve possuir as duas pilhas de protocolo funcionando em conjunto, ver figura

abaixo.

Figura15 – Pilha dupla WAP (opcional)

4.2.13 Serviços adicionais

Na pilha WAP 2.0 os micro-browsers são aperfeiçoados, expandindo a

capacidade dos dispositivos móveis, que passam a oferecer um conjunto muito maior de

serviços e aplicações. A seguir são apresentados alguns desses melhoramentos:

WAP Push: Possibilita enviar mensagens (ou empilhar) para os dispositivos

envolvidos na comunicação, através de uma aplicação baseada em servidor push proxy.

A funcionalidade de empilhar é principalmente relevante para aplicações em tempo real.

Esta funcionalidade provê ainda um controle sobre o tempo de vida de mensagens

empilhadas e capacidade de store and forward.

User Agent Profile (UAProf): Oferece um mecanismo que faz a descrição das

capacidades e preferências dos usuários quanto a aplicações que estes solicitam do

servidor. Tal mecanismo permite que servidores adaptem seus conteúdos de acordo com

o perfil dos seus usuários. Este serviço permite reconhecer a importância da privacidade

para o usuário, através de informações enviadas e controladas pelo mesmo.

Wireless Telephony Application (WTA): Fornece um conjunto de aplicações

avançadas em telefonia digital em conjunto com ambientes que suportam aplicações de

dados.

External Funtionality Iterface (EFI): Especifica a interface entre WAE e as

entidades que executam fora das capacidades definidas em WAE. É análogo a um plug-

in que estende a capacidade dos browsers ou de outras aplicações. Este módulo pode ser

usado para definir interfaces especificas e necessárias para o acesso de dispositivos

externos como smart cards, GPS, etc.

Persistent Storage Interface (PSI): Conjunto padrão de serviços usado para

organização, acesso, armazenamento e envio de dados através de dispositivos sem fio.

Data Sincronization: Usa SyncML language (solução proposta por SyncML para

sincronização de dados). SyncML é suportado por WSP e HTTP.

Multimedia Messaging Service (MMS): Oferece recursos que permitem o uso de

vários tipos de conteúdos. Dependendo do modelo de serviços, MMS permite uma

abordagem de entrega rápida (como o SMS) ou uma abordagem store and forward

(como E-mail) ou ambas as abordagens em conjunto.

Pictogram: Este serviço permite o uso de pequenas imagens como. Suporta

conceitos que permitem comunicação em pequenos volumes de espaço, fazendo

com que tais imagens possam ser usadas de forma rápida e eficiente.

4.2.14 Linguagens para WAP

Existem linguagens de programação especificas para WAP, semelhantes às

linguagens para Internet. O WAP Fórum produziu duas linguagens que permitem a

criação de interfaces de navegação WAP [FOR, 1999].

A linguagem principal é a WML, baseada em XML, é composta por um

subconjunto de funcionalidades do HTML. O WML é utilizado para criação do

conteúdo de sites WAP, e permite a navegação entre os documentos, organizados em

Cards.

Para incrementar a criação de páginas em WML foi especificado o WMLScript.

Esta linguagem possui as mesmas características presentes nas linguagens de script

utilizadas nos navegadores convencionais, tais como Javascript e VBScript. Ela permite,

por exemplo, que o dispositivo realize validações de entrada.

A utilização de páginas estáticas para o controle/apresentação de informações ao

usuário mostra-se impraticável, quando existe a necessidade de constantes atualizações

em algumas aplicações. Para resolver esta questão são utilizadas linguagens como ASP,

PHP e CGI, onde é possível criar páginas com conteúdo dinâmico de acordo com as

condições apresentadas pelo usuário. Tais linguagens podem ser utilizadas para

construção de páginas que são interpretadas pelo provedor, de acordo com a requisição

do browser cliente.

4.2.14.1 Wireless Markup Language – WML

A linguagem de programação WML é utilizada para a criação do conteúdo dos

sites WAP. Trata-se de uma linguagem de marcação baseado na família XML, que

herdou as características do HDML e HTML.

A WML foi projetada para fazer bom uso da faixa estreita de transmissão de

dados disponível no ambiente de redes sem fio, assim como do pequeno display dos

terminais móveis. Como parte deste contexto, criaram-se os conceitos de deck e card.

Um simples documento WML, é conhecido como um deck (baralho),

organizado em cards (cartas) representando uma aplicação ou um serviço.

4.2.14.2 WML Script

A especificação WAP define também uma linguagem de script chamada

WMLScript, semelhante ao JavaScript. WMLScript pode ser usado para criar funções

que podem ser invocadas por nomes, aceitam parâmetros e retornam valores. Com

WMLScript um card pode, por exemplo, executar funções que verifiquem se todos os

campos de entrada estão preenchidos.

Com a utilização do WMLScript, seleções do usuário (ou entradas) podem ser

manipuladas e encaminhadas a cards já carregados, eliminando a excessiva transação

entre clientes e servidores remotos.

4.3 PHP

O PHP é um script Web cujo código PHP é executado no servidor, sendo

enviado para o cliente apenas o código HTML, cHTML ou ainda WML, dependendo do

como está a sintaxe em PHP. 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.

A sintaxe do PHP é baseada nas linguagens C, Java e Perl, facilitando o

desenvolvimento para pessoas familiarizadas com tais linguagens. Uma dos pontos

fortes do PHP é o suporte a um grande número de bancos de dados, como Informix,

Microsoft SQL Server, MySQL, Oracle, Sybase, PostgreSQL e vários outros. Além

disso, pode ser utilizado tanto em Windows como em Unix (portabilidade) e possui

código aberto.

4.4 Banco de Dados MySQL

O MySQL é um sistema gerenciador de banco de dados (SGBD) criado em 1996

pela empresa MySQL AB. Este banco foi criado para preencher uma lacuna existente no

mercado dos SGBD da época, no qual já existiam vários concorrentes que embora de

qualidade, envolviam custos bastante elevados. Nestas condições criou-se um SGBD

que além de um menor custo de implantação ainda possuía características como

velocidade e suporte a multi-tarefas e multiusuários.

Atualmente o MySQL já conta com uma gama de mais de 8 milhões de usuários

espalhados pelo mundo [MySQLSite, 2007]. Para adquirir o MySQL o usuário deve

escolher entre uma das formas de sua Licença Dupla. Isto significa que ou pode-se usar

MySQL como um produto Open Source/Free Software sob os termos da [GNU General

, 2007] ou podem comprar uma licença comercial padrão da MySQL AB.

4.4.1 Características do MySQL

A seguir são descritas algumas características do MySQL agrupadas nos

seguintes itens:

● Tipos de Coluna: Aceita diversos tipos de campos: tipos inteiros de 1, 2, 3, 4

e 8 bytes com e sem sinal, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB,

DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET e ENUM. Registros de

tamanhos fixos ou variáveis;

● Comandos e Funções: Completo suporte a operadores e funções nas partes

SELECT e WHERE das consultas. Suporte pleno às cláusulas SQL GROUP BY e

ORDER BY. Suporte para funções de agrupamento (COUNT(),

COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() e MIN()). Suporte para

LEFT OUTER JOIN e RIGHT OUTER JOIN com as síntaxes SQL e ODBC.

Alias em tabelas e colunas são disponíveis como definidos no padrão SQL92.

DELETE, INSERT, REPLACE, e UPDATE retornam o número de linhas que

foram alteradas (afetadas). É possível retornar o número de linhas com padrão

coincidentes configurando um parâmetro quando estiver conectando ao servidor.

Nomes de funções não conflitam com nomes de tabelas ou colunas. Podem-se

misturar tabelas de bancos de dados diferentes na mesma pesquisa;

● Segurança: Um sistema de privilégios e senhas que é muito flexível, seguro

e que permite verificação baseada em estações/máquinas. Senhas são seguras

porque todo o tráfico de senhas é criptografado quando você se conecta ao

servidor;

● Escalabilidade e limites: Lida com bancos de dados enormes. Usamos o

servidor MySQL com bancos de dados que contém 50.000.000 registros e

sabemos de usuários que usam o Servidor MySQL com 60.000 tabelas e

aproximadamente 5.000.000.000 de linhas. São permitidos até 32 índices por

tabela. Cada índice pode ser composto de 1 a 16 colunas ou partes de colunas. O

tamanho máximo do índice é de 500 bytes (isto pode ser alterado na compilação

do MySQL). Um índice pode usar o prefixo de campo com um tipo CHAR ou

VARCHAR;

● Conectividade: Os clientes podem se conectar ao servidor MySQL usando

sockets TCP/IP, em qualquer plataforma. No sistema Windows na família NT

(NT, 2000 ou XP), os clientes podem se conectar usando named pipes. No

sistema Unix, os clientes podem se conectar usando arquivos sockets. A interface

Connector/ODBC fornece ao MySQL suporte a programas clientes que usam

conexão ODBC;

● Localização: O servidor pode apresentar mensagem de erros aos clientes em

várias línguas. Suporte total para vários conjuntos de caracteres, que incluem

ISO-8859-1 (Latin1), big5 e ujis. Todos os dados são armazenados no conjunto

de caracteres escolhido. Todas as comparações em colunas de seqüências caso-

insensitivo. A ordenação é feita de acordo com o conjunto de caracteres

escolhido O Servidor MySQL suporta diversos conjuntos de caracteres que

podem ser especificados em tempo de compilação ou execução;

● Clientes e Ferramentas: O servidor MySQL foi construído com suporte para

instruções SQL que verificam, otimizam e reparam tabelas. Estas instruções

estão disponíveis a partir da linha de comando por meio do cliente myisamcheck,

O MySQL inclui também o myisamchk, um utilitário muito rápido para realizar

estas operações em tabelas MyISAM. Todos os programas MySQL podem ser

chamados com as opções --help ou -? para obter ajuda on-line.

4.5 O Servidor Web 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. Segundo a Netcraft, o Apache é mais usado que

todos os outros servidores web do mundo juntos.

O Apache tem como base o servidor web NCSA 1.3, que foi desenvolvido por

Rob McCool. Quando Rob deixou o NCSA, o desenvolvimento foi interrompido, assim

muitos desenvolvedores buscaram personalizar sua própria versão do NCSA ou

adicionar mais características para atender às suas necessidades. Neste momento

começa a história do Apache com Brian Behlendorf e Cliff Skolnick abrindo uma lista

de discussão para interessados no desenvolvimento, conseguindo espaço em um

servidor doado pela HotWired e trocando patches, corrigindo problemas, adicionando

recursos e discutindo idéias com outros desenvolvedores e hackers interessados neste

projeto.

A primeira versão oficial do Apache foi a 0.6.2, lançada em abril de 1995 (neste

período a NCSA retomava o desenvolvimento de seu servidor web, tendo como

desenvolvedores Brandon Long e Beth Frank, que também se tornaram membros

especiais do grupo Apache, compartilhando idéias sobre seus projetos).

Nas versões 2.x do Apache, a escalabilidade do servidor foi ampliada suportando

as plataformas Win32 (não obtendo o mesmo desempenho que em plataformas UNI,

mas sendo melhorado gradativamente).

4.5.1 Características do Apache

Abaixo estão algumas características que fazem desse servidor web o preferido

entre os administradores de sistemas:

• suporte a scripts CGI usando linguagens como PHP, Perl, ASP, Shell

Script, etc;

• Módulos DSO permitem adicionar/remover funcionalidades e recursos

sem necessidade de recompilação do programa;

• 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 2

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.

5. Descrição do PALM para Implementação e testes

O PDA HP/IPAQ HX 2595b utilizado para testar o aplicativo desenvolvido

possui as seguintes características [HPSite, 2007]:

Sistema Operacional Microsoft® Windows Mobile™ versão 5 Processador Processador Intel® PXA Xscale270 de

520MHzTela Tela TFT 3,5" transflectiva e resolução

de 240 x 320Memória 192 MB (128MB de memória ROM e

64MB SDRAM). Até 80MB iPaq File

StoreConexão Wireless Wireless LAN integrado de 802.11b e

tecnologia BluetoothÁudio Microfone, alto-falante e conector de

fone de ouvido estéreo de 3,5 mm

integradosBateria Bateria removível/recarregável de 1440

mAh de íon de lítioExpansão Slot Compact Flash Tipo II (CF)e Secure

Digital (SDIO)integrado: suporta

memórias do tipo SD/MMC de 1 e 4 bitsDimensões Unidade: 119,4 x 76,6 x 16,3 mm Peso:

164,4 g

6. Fotos da execução do sistema no PDA citado no item 5

7. Conclusões

Este trabalho teve como objetivo desenvolver uma ferramenta de apoio a

utilização do PSP para dispositivos móveis. A aplicação desenvolvida se mostrou com

um desempenho e eficiência similar a versão desktop do sistema.

É importante ressaltar que neste trabalho foi desenvolvido apenas os níveis 0 e

níveis 0.1, num total de 7 níveis. Podendo ser atualizado posteriormente para atender

todos os níveis.

A utilização da tecnologia WAP, facilitou o desenvolvimento por ser flexível e

ser um padrão aberto, o que permitiu a utilização de ferramentas livres. Assim como a

linguagem PHP por possuir uma sintaxe baseada nas linguagens C, Java e Perl, o que

facilita o desenvolvimento para pessoas familiarizadas com tais linguagens.

O resultado do trabalho se mostrou satisfatório, pois o sistema atendeu a todas as

expectativas dos desenvolvedores por possuir telas dinâmicas e características que

tentam amenizar as dificuldades encontradas na computação móvel.

8. Dificuldades da pesquisa

O ambiente de desenvolvimento de aplicativos baseados em mobilidade está em

estágio avançado. Várias ferramentas cases e suites de desenvolvimento como é o caso

de J2ME, Delphi e visual studio possuem funcionalidades totalmente adaptadas ao

novo ambiente de programação, que facilitam a vida do analista/programador como por

exemplo preocupações referentes a usabilidade do sistema devido aos baixos recursos

do visor/tela. Outros recursos interessantes dessas ferramentas são o simuladores, que

possibilitam ao programador fazer testes do aplicativo no momento da construção antes

de coloca-lo em execução pra o usuário final.

Entretanto, para o desenvolvimento do m-PSP, nosso grupo passou por algumas

dificuldades. A principal dela foi o aprendizado de uma nova ferramenta, no nosso caso

um dos suites de desenvolvimento para ambientes móveis (J2ME ou visual studio).

Nenhum integrante do grupo possuia conhecimento das ferramentas e de acordo com

nossa análise os estudos a respeito das ferramentas teriam uma curva de aprendizado

considerável o que atrapalharia a produtividade de construção do sistema.

Dessa forma, como o desenvolvimento WEB é algo comum para comunidade de

computação, resolvemos optar por desenvolver um aplicativo que se enquadra-se no

ambiente móvel, mas com características de aplicativos baseados na WEB, ou seja, o

aplicativo estaria residente e em execução em um servidor WEB e poderia ser acessado

facilmente através de um browser de internet no PDA.

9. Referências Bibliográficas

[ApacheSite, 2007] Apache Site, www.apache.org, Acesso em 15 de janeiro de 2007.

[BEL, 2001] BELL MOBILITY INC., http://www.bellmobility.com, dezembro, 2001.

[BUC, 2001] BUCHANAN, G., FARRANT, S., JONES, M., THIMBLELY, H.,Improving Mobile Internet Usability, Proc. of ACM 1-581113-348-0/0/01/0005, pp.673-680, 2001.

[FOR, 1999] FORUM, Wireless Application Protocol, Official wireless applicationprotocol: the complete standard with searchable cd-rom. New York, John Wiley &Sons, 1999.

[GNU General, 2007] GNU General Public License. http://www.fsf.org/licenses/, Acesso em 16 de janeiro de 2007

[HPSite, 2007] Site Oficial HP, www.hp,com, Acesso em 16 de janeiro de 2007.

[Humphrey, 1995] Humphrey, W. Managing the software process. Massachussets: Addison-Wesley, 1989. 512 p.

[Humphrey, 1997] Humphrey, W. The personal software process (PSP). Pittsburgh: Software Engineering Institute, Carnegie Mellon University. 1997. 40 p.

[Humphrey, 2000] Humphrey, W. The team software process (TSP). Pittsburgh: Software Engineering Institute, Carnegie Mellon University. Technical Report (CMU/SEI-2000-TR-023 – ESC-TR-2000-023), Nov 2000. 36 p.

[MySQLSite, 2007] MySQLSite, http://www.mysql.com, Acesso em 15 de janeiro de 2007.

[RIS, 2001] RISCHPATER, R., Desenvolvendo Wireless para WEB: Como Enfrentar os Desafios dos Projetos para a Web Sem Fio, Makron Books, São Paulo, 2001.

[WAP, 2002] WAPFORUM, http://www.wapforum.org, outubro, 2002.