Upload
vuongkhue
View
214
Download
0
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 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
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.