pontifÍcia universidade catÓlica do rio …fwalker/monografiadaniel.docx · web viewtrabalho de...
TRANSCRIPT
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SULFACULDADE DE INFORMÁTICA
CURSO DE SISTEMAS DE INFORMAÇÃO
DANIEL VIANNA DA SILVA
TAXINET
Porto Alegre
2014
DANIEL VIANNA DA SILVA
TAXINET
Trabalho de conclusão de curso de graduação apresentado à Faculdade de Informática da Pontifícia Universidade Católica do Rio Grande do Sul, como requisito parcial para obtenção do grau de Bacharel em Sistemas de Informação.
Orientadora: Profa. Me. Fernanda Denardin Walker
Porto Alegre
2014
Dedico este trabalho a todos que
estiveram presente durante o período de
seu desenvolvimento. Amigos, minha
família, e em especial minha mãe e meu
pai que estão sempre presentes dando
suporte e força para as minhas
realizações.
RESUMO
Este trabalho descreve uma proposta para o desenvolvimento de um
aplicativo móvel, implementado para a plataforma Windows Phone 8. Este aplicativo
formará a rede TaxiNet que visa facilitar a solicitação de corridas de taxi utilizando
dispositivos móveis. O aplicativo implementado será utilizados por motoristas de táxi,
por usuários do serviço e pelos administradores da rede. O sistema, denominado
TaxiNet, possibilitará que usuários comuns do serviço solicitem através de seu
smartphone uma corrida de táxi, visualizem a fila de motoristas disponíveis na
região em que o usuário está localizado, e façam uma solicitação de corrida. As
solicitações poderão ser encaminhadas para o primeiro taxista da fila ou caso na fila
tenha algum motorista que seja seu amigo na rede, pode solicitar a corrida
diretamente a ele.
Palavras-chave: separadas entre si por ponto e também finalizadas por ponto.
ABSTRACT
The present paper describes a proposal for the development of three mobile
applications that will be implemented on the Windows Phone 8 platform. These
applications form a network to facilitate the solicitation of taxi rides using mobile
devices. The implemented applications will be used by taxi drivers, service users and
the network administrators. The system, which is called TaxiNet, will enable service
users to request a taxi through their smart phones, to view the queue of drivers
available in the region in which the user is located, and also make a taxi ride request.
Requests may be directed to the first taxi driver in the queue or if you have any driver
who is your friend on the network, the ride may be requested directly to him.
.
LISTA DE SIGLAS
ABNT – Associação Brasileira de Normas Técnicas
A-GPS
GIS
GPS
HTTP
ISACA
LBS
PDA
PPS
SPS
TI
URL
SUMÁRIO
1 Introdução...............................................................................................................81.1 objetivo geral.......................................................................................................10
1.2 objetivoS específicoS...........................................................................................10
2 trabalhos relacionados.........................................................................................113.1 Easy taxi..............................................................................................................11
3.2 99taxis.................................................................................................................12
4 computação móvel...............................................................................................145 Serviços baseados na localização......................................................................166 geofence services.................................................................................................236.1 papéis e arquitetura para gfs...............................................................................27
7 taxinet....................................................................................................................307.1 especificação.......................................................................................................30
7.1.1 O aplicativo móvel..........................................................................................317.2 Arquitetura...........................................................................................................33
7.3 diagramas de casos de uso.................................................................................35
7.4 diagramas de classes de análise.........................................................................38
7.5 Implementação....................................................................................................47
7.5.1 Tecnologias utilizadas....................................................................................478 Conclusão.............................................................................................................488.1 conhecimento adquirido durante o trabalho.........................................................48
8.2 dificuldades encontradas e limitações.................................................................48
8.3 trabalhos futuros..................................................................................................49
REFERÊNCIAS.........................................................................................................50ANEXOS....................................................................................................................52ANEXO A.................................................................................................................. 52ANEXO B.................................................................................................................. 52
8
1 INTRODUÇÃO
Com a evolução da internet nos dispositivos móveis através da tecnologia
3G/4G e a convergência com os sistemas baseados na localização, as redes de
contatos, que já são comuns em ambientes web, a cada dia vem fazendo mais parte
do nosso cotidiano. Como exemplo, podemos citar as redes sociais como Facebook
(http://www.facebook.com) e LinkedIn (http://www.linkedin.com), que estão
presentes em aplicativos móveis e possibilitam ao usuário compartilhar sua
localização atual aos amigos.
Como as redes de contatos estão cada vez mais inseridas na vida das
pessoas, é importante que estas redes auxiliem no desenvolvimento de atividades
diárias. Nesse sentido, neste trabalho, propomos desenvolvemos uma nova rede,
que visa facilitar o pedido de táxi para os usuários que necessitam do serviço. A
rede em questão é denominada TaxiNet. A mesma tem como objetivo tornar o
contato com o motorista de táxi mais informal e, assim, tornar mais ágil a utilização
deste serviço. Atualmente, a solicitação de um táxi pode ser difícil, tornando então
importante o contato direto com o motorista. Além disso, nossa proposta também
possibilita ao usuário fazer uma avaliação do motorista depois de realizada a corrida.
Após a confirmação do término da corrida pelo motorista, o usuário receberá
automaticamente um alerta no aplicativo para classificação da corrida como “boa” ou
“ruim”.
Quando nos propomos tornar mais informal o método utilizado para conseguir
um táxi, falamos em uma forma de relacionamento, que fora conquistada a partir de
uma corrida já realizada ou uma amizade antiga. Assim, é permitido ao taxista
manter uma rede de contatos, que o torna capaz de ampliar a carteira de clientes e
também organizar seu próprio negócio, sem necessitar de agências ou cooperativas
para intermediar suas corridas.
Nos últimos anos, ocorreu um importante avanço tecnológico na comunicação
móvel com a implantação de infraestruturas de comunicação sem fio. E, no âmbito
dos dispositivos, os avanços nas tecnologias dos laptops, palmtops, tablets e
celulares geraram um novo paradigma de computação. As pessoas agora têm a
oportunidade de acessar informações em qualquer lugar e a qualquer momento.
ANesse contexto, a computação móvel, também chamada de computação ubíqua, é
9
um dos campos de pesquisas emergentes para modelos de computação do século
21 (BAROLLI; HSU; SHIBATA, 2008).
Com o objetivo de propor um novo método de contato entre os prestadores do
serviço de táxi e os utilizadores deste, neste trabalho será desenvolvido o protótipo
de um aplicativo móvel destinado a diferentes perfis de usuários. Um perfil
contemplará as necessidades dos usuários do serviço, outro as dos motoristas de
táxi e outro para os administradores da rede. Com o protótipo do aplicativo, o
usuário administrador poderá realizar o gerenciamento dos usuários da rede e o
gerenciamento das regiões demarcadas. O usuário motorista poderá informar seu
estado atual, se livre ou ocupado, e também poderá ver um histórico das suas
transações com o cliente. O usuário cliente poderá visualizar a fila de táxis da região
em que este está localizado, poderá visualizar a sua lista de amigos, enviar uma
solicitação para um ou mais motoristas disponíveis na fila.
Para cada região coberta pelo sistema, teremos uma lista de táxis livres por
ordem de entrada na região. O taxista só entra na fila caso esteja livre.
A implementação deste tipo de aplicação demanda estudos acerca das
alternativas para minimizar os custos de largura de banda dos dispositivos móveis e
a complexidade no gerenciamento das filas, baseando-se em dados
geograficamente referenciados. Para o sucesso da nossa rede, que depende da
mobilidade, utilizaremos o GPS (Global Positioning System) e tecnologias e
frameworks que trabalham integrados com os dispositivos e auxiliarão no
desenvolvimento do aplicativo.
Na seção 2, mostramos alguns trabalhos relacionados a estes objetivos. Na
seção 3, abordamos a computação móvel. Os serviços baseados em localização são
abordados na seção 4. Na seção 5 falamos sobre geofences services. A modelagem
do aplicativo aonde estão definidos diagramas de casos de uso e diagramas de
análise compõem a seção 6. A especificação das funcionalidades e tecnologias
utilizadas para a implementação do aplicativo estão na seção 7. A conclusão,
juntamente com as lições aprendidas, dificuldades encontradas e trabalhos futuros
são abordados na seção 8.
10
1.1 OBJETIVO GERAL
O objetivo geral deste trabalho é desenvolver uma solução para aproximar o
motorista de táxi dos usuários do serviço e também facilitar o pedido de um táxi para
o usuário do serviço. Um aplicativo móvel foi desenvolvido em conjunto com uma
camada de serviços que formaram a rede TaxiNet, utilizando as tecnologias móveis.
1.2 OBJETIVOS ESPECÍFICOS
Tendo em vista alcançar o objetivo geral definido, foram identificados os
seguintes objetivos específicos:
Estudar a computação móvel e fazer um relacionamento entre as
tecnologias e os estudos realizados na década passada com as
tecnologias consolidadas e utilizadas nos dias de hoje;.
Eestudar serviços baseados na localização e como estes serviços são
utilizados atualmente nos aplicativos móveis;.
Eestudar Geofences Services, que é o conceito base para o
desenvolvimento desta aplicação. Isto envolve a demarcação virtual de
uma área e a monitoração dos objetos móveis que entram e saem
desta área;.
Eestudar trabalhos relacionados com a aplicação desenvolvida,
verificando como estes aplicativos funcionam e por quem são
desenvolvidos;.
Eespecificar o aplicativo TaxiNet;.
Ddefinir e modelar a arquitetura para o desenvolvimento da solução;.
Aanalisar e implementar os requisitos especificados para o protótipo do
aplicativo e da rede;.
Ttestar e corrigir as não conformidades identificadas.
Como vemos, os objetivos específicos nos remetem a desafios que se iniciam
na pesquisa, na definição da modelagem de uma arquitetura distribuída e de
tecnologias que serão utilizadas para a formação desta rede e que culminarão no
desenvolvimento da mesma e do aplicativo móvel para Windows Phone 8.
Para atender tais objetivos, este trabalho encontra-se assim organizado:
11
Na seção 2, mostramos alguns trabalhos relacionados a estes
objetivos;.
Nna seção 3, abordamos a computação móvel;.
Oos serviços baseados em localização são abordados na seção 4;.
Nna seção 5 falamos sobre geofences services;.
Aa modelagem do aplicativo aonde estão definidos diagramas de
casos de uso e diagramas de análise compõem a seção 6;.
Aa especificação das funcionalidades e tecnologias utilizadas para a
implementação do aplicativo estão na seção 7;.
Aa conclusão, juntamente com as lições aprendidas, dificuldades
encontradas e trabalhos futuros são abordados na seção 8.
12
2 TRABALHOS RELACIONADOS
Durante a pesquisa sobre os temas abordados neste trabalho, encontramos
alguns projetos que se relacionam com o trabalho proposto. Estes enfocam mais
diretamente nas características das aplicações do que o detalhamento técnico de
cada sistema. Mas conseguimos perceber que alguns aplicativos estão em um
estado avançado de maturidade, com funcionalidades que oferecem ao usuário
inclusive o pagamento da corrida pelo próprio dispositivo móvel.
32.1 EASY TAXI
Aplicativo de serviço mobile que permite a conexão entre taxistas e
passageiros, possibilitando a realização de uma corrida em apenas alguns toques.
Fundada em abril de 2012 no Rio de Janeiro, Brasil, a Easy Taxi tornou-se a
pioneira no serviço de táxi online na América Latina. Easy Taxi está disponível para
smartphone com sistema operacional Android, iOS, Blackberry e Windows Phone.
Figura 81: Easy Taxi
Fonte: http://www.easytaxi.com.br
13
O aplicativo de táxi localiza automaticamente o veículo para você. Basta
confirmar a sua localização e o usuário pode acompanhar em tempo real o trajeto do
veículo designado para a corrida. O aplicativo também permite que você veja a
identidade do taxista e do veículo. Atualmente conta com mais de 120 mil taxistas
cadastrados em todo o mundo. O aplicativo Easy Taxi para o taxista está disponível
para smartphones com sistema operacional Android.
Usuários de várias cidades podem se beneficiar do cartão de crédito no
aplicativo, permitindoe que o pagamento seja gerado pelo smartphone do motorista
e confirmado no aparelho do passageiro.
32.2 99TAXIS
Aplicativo para pedir táxis pelo celular fundado em 2012 por três conhecidos
geeks da internet brasileira, Paulo Veras (CEO), Ariel Lambrecht (diretor de produto)
e Renato Freitas (diretor de tecnologia) e está presente em mais de 300 cidades. O
aplicativo está disponível para Android, Windows Phone ou iOS.
O passageiro faz o pedido do táxi e os 5 táxis livres mais próximos recebem
essa chamada. Dos que aceitarem, ganha a corrida o que estiver mais próximo do
local do pedido. Assim, o aplicativo espera economizar o tempo do passageiro e o
do taxista também, e, com isso, assim tentar garantir que ele chegará o mais rápido
possível até o passageiro.
Na tela inicial do aplicativo aparece sua localização atual e os táxis livres nos
arredores. Basta apertar para PEDIR O TÁXI e selecionar a opção de pagamento
(dinheiro, cartão de crédito e débito e pagamento pelo próprio aplicativo através do
PayPal). Quando confirmada a corrida as informações do taxista: nome, modelo e
placa do carro, telefone ficarão disponíveis para o passageiro.
Não está disponível no site a quantidade aproximada de taxistas que utilizam
o aplicativo, mas o aplicativo está disponível para os taxistas que possuem um
celular com Android 2.3 ou superior com internet e GPS.
14
Figura 82: 99Taxis
Fonte: http://www.99taxis.com.br
Na tela inicial do aplicativo aparece sua localização atual e os táxis livres nos
arredores. Basta apertar para PEDIR O TÁXI e selecionar a opção de pagamento
(dinheiro, cartão de crédito e débito e pagamento pelo próprio aplicativo através do
PayPal). Quando confirmada a corrida as informações do taxista: nome, modelo e
placa do carro, telefone ficarão disponíveis para o passageiro.
Não está disponível no site a quantidade aproximada de taxistas que utilizam
o aplicativo, mas o aplicativo está disponível para os taxistas que possuem um
celular com Android 2.3 ou superior com internet e GPS.
Ficaram só esses? Achaste que os outros não valiam a pena manter?
15
4 3 COMPUTAÇÃO MÓVEL
Nesta seção, apresentaremos a computação móvel, veremos o avanço
tecnológico que ocorreu na última década na telefonia e nos dispositivos móveis.
Avanço este que possibilitou que a computação móvel atingisse condições
suficientes para suportar o desenvolvimento de aplicações para estes dispositivos,
levando em consideração as necessidades de negócios ou de perfis de usuários.
A crescente adoção de dispositivos móveis como smartphones e tablets está
mudando a forma como os negócios são conduzidos. As novas tecnologias móveis
exercem uma significativa influência nas pessoas, organizações e na sociedade em
geral. A computação móvel refere-se a portabilidade da computação, ou seja, o
processo dos serviços de comunicação tornarem-se móveis. Assim, habilita a
geração de conteúdos personalizados e de acordo com a localização para os
usuários (FISCHER; SMOLNIK, 2013).
Segundo Mateus e Loureiro (2004, p. 2), computação móvel é um paradigma
que surgiu com o avanço nas tecnologias de dispositivos portáteis e com o
desenvolvimento tecnológico de fabricação de circuitos integrados que ocorreu,
principalmente, durante a última década. Com este avanço, tem sido possível a
fabricação de dispositivos computacionais que possuem um novo paradigma: o da
mobilidade. Desenvolvimento tecnológico este que vemos crescendo a cada dia que
passa, com os computadores pessoais, PDAs (Personal Digital Assistants), laptops,
palmtops, e nos dias de hoje, tablets e smartphones. Estes útlimos, que são os
dispositivos utilizados no desenvolvimento deste trabalho, eles oferecem interfaces
de fácil uso e oportunidade para o usuário final realizar o download de novas
funcionalidades em aplicativos disponibilizados no ecossistema de aplicativos
móveis. Os principais atores presentes neste mercado são Apple com seu iOS,
Google com Android e Microsoft com Windows Phone. Este novo cenário abre uma
grande oportunidade para propagar, distribuir e vender seu software, música, vídeos
e outras mídias facilmente (ANDERSSON; JOHANSSON, 2012).
Podemos considerar que este novo paradigma computacional tem como
objetivo prover ao usuário acesso permanente a uma rede fixa ou móvel
independente de sua posição física. A computação móvel é a capacidade de
acessar informações, aplicações e serviços a qualquer lugar e momento (MATEUS;
16
LOUREIRO, 2004, p.3). Nesse sentido, na computação móvel todos dispositivos que
têm a capacidade de se comunicar com uma rede fixa, podem se comunicar com
outros dispositivos que possuem a mesma capacidade. Existem muitas
adversidades que devem ser consideradas neste novo paradigma computacional
como, por exemplo, o fato de os dispositivos móveis serem menores, com um poder
de processamento menor e pouca capacidade de energia. Adaptações devem ser
realizadas para o sucesso das aplicações móveis, adaptações estas que incluem
identificar o tipo de dispositivo que está acessando e, então, adaptar-se de acordo
com as características deste dispositivo e do tipo de conexão utilizada.
. No projeto de protocolos e algoritmos distribuídos para as redes de
dispositivos móveis deve ser considerada uma topologia dinâmica, visto que a carga
do sistema e a noção de localização muda. Como a conectividade dos dispositivos
não pode ser sempre garantida, a heterogeneidade também se torna uma constante
que deve ser considerada na computação móvel. Além disso, os problemas de
segurança e autenticação são mais uma preocupação, visto que na comunicação
sem fio é mais fácil realizar interceptações de mensagens. Outro ponto importante é
com relação à facilidade de localização do dispositivo quando conectado a uma rede
fixa, o que nem sempre é desejável. A variação na condição de comunicação ocorre
uma vez que as redes sem fio oferecem uma largura de banda menor e são menos
confiáveis que as redes fixas.
Produtos para comunicação sem fio oferecem uma largura de banda bastante
inferior às oferecidas por uma rede fixa. O problema é crítico pelo fato da largura de
banda ser dividida entre os usuários de uma célula, fazendo com que a largura
efetiva por usuário seja menor ainda. Outro fator agravado no projeto de um
software para computação móvel é que o ruído e a atenuação que ocorrem na rede
sem fio afetam a taxa de erro na comunicação, que é de uma ordem de grandeza de
cinco a dez vezes maior que na rede fixa (MATEUS; LOUREIRO, 2004).
Tendo em vista que os dispositivos móveis utilizam baterias, observamos que
este ainda é um fator que deve orientar o desenvolvimento de aplicativos para estes
equipamentos. Infelizmente, a tecnologia de construção de baterias não tem
acompanhado o crescimento das outras áreas da computação.
17
5 4 SERVIÇOS BASEADOS NA LOCALIZAÇÃO
Segundo B. Pejic, A. Pejic e Z. Covic (2010, p. 319) com a chegada do
acesso móvel à internet, serviços baseados na localização tornaram-se muito
populares na Web, para compartilhar a sua localização nas redes sociais, para guiar
direções ou para achar um ponto de interesse próximo. Existem dois principais
métodos para se detectar a localização. Os prós e os contras de cada tecnologia de
localização são mostrados a seguir nas tabelas 1, 2, 3 e 4.
Os serviços baseados em localização são serviços de Tecnologia da
Informação (TI) que provém informações que são criadas, compiladas, selecionadas
ou filtradas levando em consideração a localização atual do usuário, de outras
pessoas ou dispositivo móvel. De acordo com uma pesquisa realizada pelo ISACA
(Information System Audit and Control Association), uma associação global sem fins
lucrativos de segurança de informação, 58% das pessoas que possuem dispositivos
smarts utilizam serviços baseados em localização. Do ponto de vista das empresas,
os benefícios de negócios dos serviços baseados em localização são facilmente
notados. Por este fato, muitas empresas já estão reconhecendom o valor dos dados
de geo-localização, usando-os para analisar as preferências dos clientes (PIETRO;
MANDATI, VERDE, 2013).
Tabela 1: Geolocalização por IP
Prós Contras
Amplamente disponível
Acurácia em nível de país/cidade
Detecção ocorre no server-side -
Fonte: Pejic, Pejic e Covic (2010, p. 319).
Tabela 2: GPS (Triangulação)
Prós Contras
Busca precisão e depois pega uma
correção
Não funciona em lugares fechados
Preciso em área rural Dificuldade com cânions
- Tempo grande até primeira correção
Fonte: Pejic, Pejic e Covic (2010, p. 319).
18
Tabela 3: Wi-Fi (Triangulação)
Prós Contras
Preciso Não funciona bem em áreas rurais
Funciona em lugares fechados e áreas
urbanas-
Aproveita Wi-Fi existente -
Rápido para primeira correção -
Fonte: Pejic, Pejic e Covic (2010, p. 319).
Tabela 4: Torres de Celuar (Triangulação)
Prós Contras
Funciona aonde tem cobertura Muito impreciso
Rápido para primeira correção -
Aproveita rede de celular existente -
- -
Fonte: Pejic, Pejic e Covic (2010, p. 319).
Tecnologia Prós Contras
A tecnologia de GPS (Global Positioning System) utiliza quatro satélites para
obter-se a localização de um dispositivo. Conhecendo as coordenadas dos satélites
num em um sistema de referência apropriado, é possível calcular as coordenadas da
antena do usuário no mesmo sistema de referência dos satélites (MONICO, 2000).
Nos dias de hoje, existem serviços de localização que determinam a localização
aproximada de um dispositivo. Como as tecnologias de comunicação sem fio estão
cada vez mais aprimoradas e as taxas de erro cada vez menores, a margem de erro
pode chegar a apenas 10 metros.
No GPS existem dois tipos de serviços: SPS (Standard Positioning Service) e
PPS (Precise Positioning Service). O SPS é um serviço de posicionamento e tempo
padrão que está disponível a todos os usuários do globo, sem cobrança de qualquer
taxa. O PPS proporciona resultados mais precisos, entretanto, é restrito ao uso
militar e a usuários autorizados (MONICO, 2000). A partir de coordenadas
geográficas podemos identificar a posição de determinado dispositivo móvel., pPara
isso, hoje em dia, utilizamos serviços baseados em localização, que habilitam a rede
da operadora com a informação da localização do dispositivo. Esta localização pode,
então, ser utilizada para serviços personalizados, taisl como o serviço de gestão e
19
localização de táxis, que se refere ao protótipo que iremos desenvolver neste
projeto.
Um dos serviços disponíveis é o A-GPS, conhecido como GPS assistido, ele
utiliza aparelhos equipados com chips que permitem a localização do dispositivo
móvel, com base nos sinais recebidos por satélites. Podemos visualizar na Figura 3
o funcionamento do A-GPS.
Figura 3: A-GPS
Fonte: Google Image
Os serviços baseados em localização (Location-Based Services – LBS) são a
convergência de tecnologias atuais como: sistemas de comunicação móvel,
tecnologias de localização, dispositivos móveis com internet, sistemas de informação
geográfica (GIS), servidores da aplicação e servidores com bancos de dados
espaciais.
O principal objetivo destes serviços é obter informações que determinem a
localização de dispositivos móveis, para, com o fator de localização, agregar valor a
outros serviços. Segundo Virrantaus (2001, citado por STEINIGER; NEUN;
EDWARDES) os serviços baseados na localização são serviços de informação
acessíveis aos dispositivos móveis, através de uma rede de telefonia móvel,
utilizando da capacidade de localização deste dispositivo.
Já Por outro lado, os sistemas de informação geográfica, são sistemas
capazes de integração, armazenamento, edição, análise, distribuição e disposição
da informação geograficamente referenciada. Em um sentido mais genérico, é uma
ferramenta que permite ao usuário criar consultas, analisar as informações, editar
20
estas informações e apresentar os resultados de todas estas operações. As
aplicações móveis quando trabalham com serviços de localização estendem as
capacidades de um sistema de informação geográfico. Estas aplicações de
localização trabalham com terminais inteligentes e trazem uma nova ideia de acesso
à informação a qualquer momento e em qualquer lugar. Estas aplicações também
são chamadas de sistemas de informação geográfica móvel.
O serviço de informação geográfica móvel é um sistema que provê o serviço
onde e quando for preciso. Ele define um modelo interativo entre o usuário e o
mundo atual, que pode fornecer informações diferentes e dinâmicas individualmente,
em diferentes lugares e momentos. Serviços de informação geográfica móvel não é
são um GIS convencional modificado para operar em computadores pequenos, mas
uma nova arquitetura utilizando um novo paradigma, que estende informações da
internet e as funções do serviço de GIS para dispositivos móveis. Podendo assim,
através do serviço, prover informações geográficas aos usuários e, ao mesmo
tempo, criar um novo canal de negócio onde milhares de aplicativos e serviços
podem ainda ser desenvolvidos (ERICK; FERNANDO, 2009).
Usuários movimentam-se livremente nos sistemas móveis, sua localização
muda e o valor correspondente ao atributo de localização pode variar. LBSs, são o
núcleo dos sistemas de informação móveis. Estes sistemas reconhecem a
localização de um usuário em particular como uma informação importante.
Segundo Lee, Zhu e Hu (2005, p. 81) o avanço tecnológico nos dispositivos
móveis e na comunicação de redes sem fio serviram de combustível para a
proliferação dos serviços baseados em localização. Em troca, a demanda de
aplicações com um grande número de usuários coloca novos desafios para os
serviços baseados em localização.
Hoje em dia, uma descrição simples informando que “estou em Nova Iorque”,
por exemplo, através de coordenadas como longitude a latitude não são suficientes
para LBSs sofisticadas. Pois existem restrições na movimentação, como estradas
nos ambientes abertos e escadas em ambientes fechados, que devem ser
consideradas.
Atualmente, os dispositivos móveis não são tão limitados com relação a
processamento e memória, quanto largura de banda e bateria. Mas, por exemplo,
jogar mais cálculos computacionais para o cliente pode reduzir o consumo de banda,
porém pode aumentar a carga de processamento e de uso de memória. Devido ao
21
avanço dos dispositivos móveis, as aplicações móveis devem fazer suposições
razoáveis sobre o cliente que está acessando a aplicação e serem capazes de
adaptarem-se à realidade deste cliente.
LBSs devem ser capazes de lidar com um grande número de usuários e
devem ser capazes de processar um grande número de requisições
simultaneamente. Por isso, quando se trata de um grande número de requisições
para uma determinada localidade, um agendamento eficaz das requisições para os
servidores do LBS, irá diretamente melhorar a performance e a experiência do
usuário na aplicação.
Lee, Zhu e Hu (2005, p. 83), também afirmam que a posição geográfica é um
elemento importante nos LBSs e que um modelo de localização nos permite
descrever o espaço físico e as propriedades dos objetos que contém neleestão
contidos nele. Os modelos de localização podem ser classificados em modelo
geométrico ou modelo simbólico.
O modelo geométrico representa o espaço físico como um espaço Euclidiano
e os objetos nele como formas geométricas. Já o modelo simbólico tem como
principal objetivo capturar a semântica e os relacionamentos das entidades no
espaço físico em forma de grafo. Com as coordenadas de cada objeto definidas no
espaço Euclidiano, operações como cálculo de distância e do menor caminho são
suportadas. A maior parte dos modelos existentes são desenvolvidosé desenvolvida
para aplicações baseadas no contexto para ambientes abertos (outdoor) e não são
apropriados para ambientes fechados (indoor) pelas seguintes razões:
Os ambientes fechados são muito variados. Cada ambiente tem sua própria
forma de descrever uma localização. Por exemplo, um quarto pode ser
descrito como “ao lado do elevador do terceiro andar do prédio acadêmico,”
que incorpora uma série de semânticas sobre o espaço.
Um maior número de entidades de tipos variados precisam ser
modeladosprecisa ser modelado em um ambiente fechado porque pode ser
necessário que estas entidades descrevam o contexto do ambiente.
A próxima geração de LBSs se concentra na consciência de contexto. E as
coordenadas e modelos de grafos não são capazes de capturar a semântica
do contexto do usuário.
Em geral, para o processamento de consultas, os serviços baseados em
localização (LBSs) assumem a comunicação em redes sem fio, visando aà
22
realização destas consultas. Wireless suporta dois métodos de disseminação de
dados básicos:.
Que pode ser em broadcasts periódicos, aonde dados em intervalos
regulares são disseminados na faixa de frequência acessível pelos
clientes.
Ou, então esta disseminação pode ser sob demanda,. Qquando um
dispositivo móvel estabelece uma conexão point-to-point com um servidor,
envia requisições e recebe seus resultados., aAs consultas no LBS se
preocupam principalmente com os objetos ao redor da posição atual do
dispositivo cliente. Em sistemas não baseados na localização, as
respostas às consultas podem ser guardadas no cliente e reusadas, se as
mesmas forem feitas novamente. Já em sistemas baseados na
localização, onde usuários estão frequentemente se movimentando e os
resultados das consultas são válidos somente para aquela localização em
particular, novas consultas devem ser enviadas ao servidor sempre que
houver uma atualização na localização, o que aumenta significantemente
a transferência de dados na rede e o processamento do servidor.
Para mitigar minimizar este aumento no processamento do servidor e a
transferência de dados na rede, pode ser utilizado o conceito de região de validade.
A região de validade de uma consulta indica a área geográfica dentro da qual a
consulta permanece válida, esta indicação de validade é retornada para o
requisitante juntamente com o resultado da consulta. Então, o dispositivo móvel
cliente é então capaz de determinar se uma nova consulta deve ser realizada, pela
verificação se este se encontra ainda na região de validade. A utilização da região
de validade reduz significativamente o número de novas consultas emitidas ao
servidor.
A região de validade depende do tipo das consultas, métodos para a
determinação da região de validade como os k vizinhos mais próximos, NN e kNN
(do inglês k nearest neighbors) e janelas de consultas têm sido desenvolvidos. A
Figura 4 ilustra a região de validade para consultas NN, que são o mesmo que as
células de Voronoi. O esquema de representação para região de validade deveria
ser o menor possível para reduzir o custo de tráfego na rede, desde que capture
precisamente a forma da região de validade. Também deve facilitar a verificação da
validade que é desempenhada no cliente, normalmente com uma capacidade
23
computacional limitada. A melhor forma de representar uma região de validade é
identificar os objetos de influência da consulta q como, pelo menos um ponto de
dados, que contribui para a região de validade V(q). O conjunto de influências é o
conjunto mínimo de objetos que determinam a região de validade.
Figura 24: Um exemplo de consulta do vizinho mais próximo.
Fonte: Mobile Information Systems
Na Figura 4 vemos também que os objetos de influência da consulta, que são
aqueles cuja perpendicular bisector (mediatriz) com o objeto o constitui as arestas
das células de Voronoi. Então, o servidor retorna o resultado da consulta para o
cliente juntamente com os objetos de influência. A verificação de validade no lado do
cliente é realizada examinando se a nova localização do usuário é dentro do plano
formado com relação a cada ponto de influência, que é equivalente a verificar se o
resultado do foco da consulta se encontra na célula de Voronoi (LEE; SHU; HU,
2005).
24
6 5 GEOFENCE SERVICES
Conforme Fabrice e Kristen (2009, p. 353), Geofence (cerca geográfica) é
uma tecnologia utilizada para monitorar objetos localizados por GPS (veículos,
pessoas, containers, etc), onde as coordenadas geográficas dos objetos
monitorados são enviadas automaticamente e regularmente a um centro de controle,
via rede de telefonia móvel. Em paralelo a este monitoramento, um conjunto de
coordenadas é utilizado para demarcação de fronteiras da geofence. Esta tecnologia
permite determinar se o objeto monitorado se encontra dentro ou fora da área
geográfica demarcada. Também permite determinar a distância do objeto
monitorado desta geofence (FABRICE; KRISTEN, 2009).
A Geofence relaciona uma área demarcada a um objeto com condições pré-
definidas e parâmetros para a realização de ações e uma ou mais geofences que
definem suas fronteiras. Condições essas que também definem restrições de tempo,
de espaço e outras restrições de acordo com o contexto. Quando todas as
condições forem satisfatórias, podem, por exemplo, relatar a entrada, a passada, ou
saída de um objeto da área geográfica (ULRICH; AXEL; PETER, 2010).
Segundo Brown e Harmon (2014, p. 3301) geofence é uma zona geográfica
virtual ao redor de um negócio, área comercial ou qualquer outra área geográfica
categorizada, criada para disparar uma mensagem de marketing móvel a um
consumidor com o dispositivo móvel habilitado, quando identifica a entrada ou a
movimentação do dispositivo dentro da área criada. Sistemas de informações
geográgicasgeográficas (GIS) são fundamentais para os serviços baseados em
localização, por serem responsáveis por controlar o tempo e as coordenadas da
geofence e dos consumidores habilitados.
25
Figura 5: O sistema detecta um veículo saindo da área demarcada.
Fonte: ITST 2009 9th: Geofencing for Fleet & Freight Management
Na Figura 5, a área geográfica definida está em verde, veículos podem
mover-se dentro desta área, mas o sistema detecta o veículo saindo da área, como,
por exemplo, o carro vermelho que aparece na figura.
Esta tecnologia pode ser aplicada em diversas áreas relacionadas ao
monitoramento de pessoa e ativos móveis. Soluções vêm sendo desenvolvidas
principalmente para as áreas de transporte, defesa civil e segurança. No setor de
transporte e logística, gerenciamento de frotas de veículos profissionais privados e
públicos, para defesa civil e segurança usa-se geofence para prover melhores e
mais flexíveis serviços para os clientes.
Sistemas de monitoramento e rastreamento são principalmente compostos de
quatro segmentos interligados:
segmento espacial - com sinais GPS;
segmento de telecomunicações - como rede de telefonia móvel ou
comunicação por satélite para áreas remotas;
segmento de aplicação - disponível em uma rede virtual privada;
segmento de usuário - que deve compreender tanto o usuário do objeto
monitorado, quanto o usuário do centro de controle.
Varias técnicas de geofence vêm sendo desenvolvidas, dentre elas podemos
citar: área geograficamente cercada, proximidade com um ponto de interesse e
adesão de rotas.
Uma das técnicas, geofence, denominada área geograficamente cercada,
provê o monitoramento automático de objetos móveis que movimentam-sese
26
movimentam em torno ou dentro desta área cercada. Alarmes podem ser gerados
quando estes objetos entram ou saem das fronteiras estabelecidas para a área
demarcada. O tamanho da área pode variar de dezenas de metros a vários
quilômetros. A forma pode ser de uma simples figura geométrica, como um
retângulo ou um quadrado ou, então, uma forma mais complexa, como um polígono
(Figura 6).
Figura 6: Geofence ativa (perímetro preto) ao redor de uma área.
Fonte: ITST 2009 9th: Geofencing for Fleet & Freight Management
Coordenadas dos pontos característicos da forma são necessários para
definir o perímetro da região que está sendo cercada. Estas coordenadas são
fornecidas aos algoritmos responsáveis pela geração dos alertas quando os objetos
monitorados ultrapassam as fronteiras da área demarcada.
Outra técnica bastante utilizada é a de proximidade com um ponto de
interesse (POI). Esta técnica detecta a proximidade do objeto monitorado em relação
ao ponto de interesse. Na prática, a área cercada será um círculo e o ponto de
interesse é localizado no centro. Esta técnica é a mais simples forma de se
implementar geofence, por que irá precisar de apenas dois parâmetros, as
coordenadas do ponto de interesse e o valor do raio. Neste caso, os algoritmos
calculam a distancia em relação ao ponto de interesse e, de acordo com o raio
definido para o ponto de interesse, o objeto será considerado respectivamente
dentro ou fora da área demarcada.
27
Figura 7: Detecção da proximidade com o raio de um POI.
Fonte: ITST 2009 9th: Geofencing for Fleet & Freight Management
Na figura 7, um caminhão está a caminho da fábrica, que representa o ponto
de interesse. A detecção ocorre quando o caminhão atravessa o círculo e assim é
identificado a uma menor distância do ponto de interesse.
A técnica de adesão de rotas relaciona o monitoramento de um objeto móvel
a uma jornada que deve ser seguida, de um ponto de partida até seu destino final. A
tecnologia de geofence tornou isto possível por garantir que o objeto monitorado não
desvie da rota definida para ele.
Na prática, a rota é criada com um conjunto de coordenadas, que são
gravadas em uma aplicação antes da partida do objeto monitorado. Um conjunto de
áreas cercadas circulares são aplicadasé aplicado durante o percurso, uma depois
da outra, como podemos ver na figura 8.
Figura 8: Controle de aderência de rota.
Fonte: ITST 2009 9th: Geofencing for Fleet & Freight Management
Se o objeto monitorado desvia da rota, ele pode cruzar uma das fronteiras das
áreas cercadas, e, dependendo da tolerância de desvio aceita, um alarme pode
então ser acionado para o centro de controle, informando que o objeto monitorado
saiu da rota previamente definida.
Para o caso de usar o conceito de geofences para LBSs, precisamos
desenvolver antes o serviço de geofence. Um GFS (GeoFence Services) tem uma
28
descrição do serviço e se refere a um ou mais geofences. Para uma eficiente
distribuição de geofences, a descrição do GFS contém uma informação adicional
descrevendo um subconjunto regional de geofences próximas à região ativa do
usuário. Um GFS pode ser executado por uma parte arbitrária que está em um
dispositivo móvel, em um servidor ou também em um web browser. O owner
(proprietário) e as categorias são metadados adicionais que também descrevem o
serviço de geofence.
Um GFS oferece três características básicas para a aplicação em uma dada
geofence e localização atual de um objeto móvel:
[1.] a geofence pode ser atribuída para o dispositivo móvel;.
[2.] entrando ou saindo a área geográfica é detectada automaticamente;.
1.[3.] a ação desejada é executada automaticamente quando todas as
condições relacionadas à ação forem verdadeiras.
GFSs podem ser usadas de diferentes formas. O serviço pode ser utilizado
como trigger (gatilho) para notificações diretamente para um dispositivo móvel, para
guiar informações de monitoramento para um servidor central ou para agregar valor
a outros LBSs. O conceito também permite o intercâmbio inter-organizacional e a
combinação de geofences de diferentes fontes (ULRICH; AXEL; PETER, 2010).
65.1 PAPÉIS E ARQUITETURA PARA GFS
É importante identificar os atores participantes no modelo de papéis. Um
papel representa um determinado campo de atividade ou um conjunto de funções
adotadas por um ator. Um ponto de referência é um proxy abstrato para um fluxo de
informação, protocolos e transações. De forma que estas são organizadas entre os
papéis, os pontos de referência que interconectam e precisam ser fixadas na
modelagem de fases subsequentes. O modelo de papéis representado na figura 9
segue a idéiaideia de comércio de serviço do Modelo de Referência para Processos
Distribuídos Abertos (RM-ODP). Este comércio de serviço é um tipo intermediário
entre os provedores do serviço (exporters) e clientes (importers). Fazendo uma
analogia com o comércio, os papéis chave da plataforma de geofence são
denotados como GF Exporter, GF trader e GF importer. Eles são acompanhados por
29
outros papéis que oferecem serviços suplementares, como por exemplo, um
provedor de conteúdo.
Figura 9: Modelo de papéis para GFSs
Fonte: COMPSAC, 2010 IEEE 34th
O papel mais importante no modelo é o GF trader, que torna real o mercado
de geofence e que provê facilidades, cobrindo o ciclo de vida por inteiro, de um
único geofence ou de um conjunto deles. Para manter o a plataforma geofence
disponível, ele oferece um conjunto de serviços definindo, gerenciando e
contabilizando GFSs, que inclui também a fixação de parâmetros como região
geográfica, ações, donos e categorias. Estes serviços são disponíveis pelo ponto de
referência E2T como podemos ver na figura 9. São acessados pelo GF exporter,
que, por exemplo, pode ser uma pequena companhia, utilizando geofence com
propósito de publicidade. Na outra mão o GF trader é acessado pelo GF importer
que é o ator a ser geograficamente monitorado e que usa o negociante para
procurar e assinar GFSs e gerenciar estas assinaturas. O ponto de referência I2T
também cobre a passagem de geofences a um importer que assinou para que o
dispositivo móvel seja monitorado.
Além disso, o GF trader provê um ponto de referência aberto URL2T, para
oferecer links simbólicos para os GFSs. Como sugere o nome, o ponto de referência
entrega uma URL, que é associada com um GFS. Seguida esta URL, um importer
pode assinar um GFS de forma conveniente.
A idéiaideia básica da arquitetura de uma plataforma geofence parte da
definição de um padrão de formato de dados para o GFS e este relacionando
geofences e especificando as funções necessárias para operar o GFS desde a
30
criação até a execução. Um ciclo de vida normal do serviço é mostrado a seguir de
acordo com os papéis introduzidos:
1. Exporter: Especificar GFS (descrição do serviço)
2. Exporter: Exportar GFS para o trader (upload)
3. Importer: Procurar por serviços
4. Importer: Assinar serviços
5. Importer: Iniciar serviço
6. Importer: Busca geofences próximas
7. Importer: Executar ação (ex. mostrar website)
8. Importer: Executar Region Update (atualização de região)
Após encontrar e importar um GFS, o formato GFS padronizado deve ser
analisado e transformado em diversas tarefas. Uma tarefa que seria
permanentemente é, verificar se o alvo disparou eventos com base na localização
deste. Caso algum evento tenha sido disparado, as condições para a execução de
ações devem ser avaliadas e, quando todas as condições forem satisfeitas, a ação
definida deve ser realizada. O que pode resultar em uma solicitação HTTP para um
provedor de conteúdo ou talvez na atualização da região ativa, enviando uma
solicitação de acordo ao GF Server. Um conjunto de ações especificados no formato
GFS tem de ser implementadoas no cliente. Ações essas que podem incluir até
mesmo a vibração e o toque de ringtones ou alarmes de notificações ao usuário
(ULRICH; AXEL; PETER, 2010).
31
7 6 TAXINET
A rede intermediará a prestação de serviço entre motoristas de táxi e os
passageiros usuários deste serviço, estabelecendo uma forma de contato rápido e
fácil para a realização de um chamado de táxi. Os usuários da rede poderão
adicionar outros usuários como amigos, tanto usuários passageiros quanto usuários
motoristas e, se no momento da realização de um pedido de táxi pelo passageiro, e
na lista de motoristas disponíveis da região conter houver algum motorista amigo,
este aparece destacado na lista, que é ordenada por proximidade com o usuário
cliente.
A rede proposta é denominada TaxiNet e nela teremos funcionalidades
específicas para cada tipo de usuário: usuário cliente, usuário motorista e usuário
administrador da rede. Funcionalidades estas que serão descritas, especificadas e
modeladas a seguir.
76.1 ESPECIFICAÇÃO
A rede TaxiNet na sua concepção, possui um aplicativo móvel responsável
por interagir com a rede, de acordo com o perfil do usuário. E Além disso, temos
uma camada de serviços que é responsável por esta iteração do aplicativo com a
rede. O usuário administrador da rede, quando logado conectado, poderá cadastrar
e configurar novas regiões na rede, assim como atualizar uma região ou
configurações já existentes. Também poderá alterar as configurações da rede. Já
Por outro lado, o usuário cliente quando logado conectado na rede poderá visualizar
os motoristas disponíveis na região em que está localizado, realizar um chamado,
finalizar um chamado realizado, adicionar amigos ou atualizar seu perfil. O usuário
motorista, quando for acionado por um chamado terá a opção de aceitar ou recusar
o chamado e, a partir do aceite do chamado, o motorista fica encarregado de indicar
o iniício da corrida, quando buscar o passageiro e finalizar a mesma, quando
entregar o passageiro em seu destino. Conforme os casos de uso descritos na
seção 6.3.
32
76.1.1 O aplicativo móvel
Esta aplicação foi desenvolvida com o Microsoft Visual Studio 2013., pPara
simulação e testes foram utilizados dois smartphones: um com a versão do
Windows Phone 8 e outro com a versão do Windows Phone 8.1.
Este aplicativo móvel será responsável por toda a iteração com a rede, seja
interação esta realizada por um usuário administrador, cliente ou motorista.
Ao iniciar o aplicativo, o usuário deverá realizar o login, informando seu nome
de usuário e senha da rede. Caso não tenha um usuário ainda, deve então se
cadastrar. O usuário administrador da rede é um usuário especial e não existe uma
tela de cadastro para este tipo de usuário.
Depois de um usuário cliente efetua o login na rede, ele é encaminhado para
a página principal, e no panorama da região pode visualizar o nome da região em
que ele está localizado. Região esta que é identificada de acordo com as
informações retiradas do GPS do dispositivo móvel. Ainda, no panorama da região,
o usuário cliente tem acesso a à lista de motoristas disponíveis na região, esta lista é
ordenada por proximidade com o cliente e, caso haja algum motorista que faça parte
da rede de contatos do usuário, este aparecerá em destaque na lista.
Um chamado ocorre no momento em que o usuário cliente seleciona um
motorista na lista de disponíveis da região.
Aparece, então, o mapa com a localização do cliente, com a localização do
cliente em destaque no mapa, então clicando em cima da localização no mapa deve
ser realizada a confirmação do endereço de origem pelo usuário. Logo que o é
confirmado o endereço, o chamado é enviado ao servidor e o serviço verifica então a
disponibilidade do motorista envolvido no chamado e faz notificações para os
dispositivos dos motoristas.
Todo o dispositivo que estiver rodando com um usuário do tipo cliente no
aplicativo TaxiNet, caso o usuário tenha algum chamado em andamento, estará, de
acordo com o intervalo de tempo especificado nas configurações da rede,
verificando qual o estado atual do chamado.
33
O usuário motorista quando efetua o login na rede é encaminhado para a
página principal no panorama de chamados e caso não tenha nenhum chamado
pendente ou em andamento, fica aguardando um novo chamado.
Todo o dispositivo que estiver rodando com um usuário do tipo motorista,
estará, de acordo com o intervalo de tempo especificado nas configurações da rede,
verificando se existe um chamado em atendimento, se sim busca então o estado
deste chamado em atendimento, se não busca a existência de algum chamado para
este usuário motorista na rede.
Na existência de um novo chamado para o motorista, então este novo
chamado é pode ser visualizado no dispositivo do usuário com as informações do
perfil do usuário solicitante do chamado e as informações do chamado para, então,
aceitar ou recusar este chamado.
Um chamado na rede possui um estado que é alterado durante o seu ciclo de
vida. Os estados dos chamados são:
• Pendente: Para o usuário cliente, caso o motorista não responda o
chamado no intervalo de tempo determinado na configuração da rede, o estado do
chamado é alterado para Motorista indisponível. Caso contrário continua
aguardando resposta do chamado. Para o usuário motorista, caso o motorista não
responda o chamado no intervalo de tempo estipulado na configuração da rede, o
status do motorista é alterado para ocupado e o estado do chamado é alterado para
Motorista indisponível. Caso contrário, continuará mostrando a opção para aceitar ou
recusar o chamado.
• Motorista indisponível: O usuário cliente deve ser direcionado aà lista
de motoristas da região. O usuário motorista deverá ficar com o status de ocupado.
• Aceito: Chamado aceito pelo motorista. O usuário motorista deverá ser
direcionado a tela para confirmação de iníicio da corrida que, quando confirmada, o
estado então é alterado para Em andamento. Neste momento, o usuário cliente é
informado do aceite do chamado pelo motorista.
• Recusado: O usuário cliente deve ser direcionado a à lista de
motoristas da região. O usuário motorista deverá ficar com o status de ocupado.
• Em andamento: O usuário cliente recebe uma mensagem que o
motorista chegou. E, para o usuário motorista, aparece a opção de finalizar a
corrida, que muda o status do chamado então para atendido.
34
• Atendido: o chamado foi finalizado pelo motorista. O usuário cliente
recebe uma mensagem para confirmação da corrida. O motorista fica disponível
aguardando novo chamado.
O usuário motorista quando logado conectado, ainda porderá, no panorama
do seu perfil, poderá realizar a manutenção do seu carro, inserindo caso seja ou
então editarndo as informações do carro, como: ano, modelo, fabricante, número de
portas, quantidade de lugares e um campo de texto para outras observações.
Quando logados conectados, os usuários poderão alterar os dados do seu
perfil como nome, e-mail, telefone e informar sua data de nascimento, até mesmo
incluir uma foto para o seu perfil.
Ambos os usuários, quando logados conectados, poderão visualizar sua lista
de amigos online, e adicionar um novo amigo. E pPara que isto ocorra, o usuário é
encaminhado para a tela de solicitação de amizade, aonde informa o nome do
usuário na rede do amigo no qual quer se conectar, ao confirmar a solicitação de
amizade, a mesma é enviada para a rede e o usuário quem recebeu a solicitação
poderá ver a solicitação na sua lista de solicitações de amizade pendentes. A lista
pode ser acessada a partir da notificação de que existem solicitações pendentes no
panorama de amigos do usuário logado. Clicando sobre uma solicitação pendente o
usuário será perguntado se ele aceita a solicitação de amizade ou não. Se aceita,
então, é formalizada na rede, a amizade entre os usuários.
76.2 ARQUITETURA
A implementação da rede e do aplicativo móvel consiste da disponibilização
de serviços na internet e um aplicativo móvel para smartphones, com o sistema
operacional Windows Phone. Estes serviços e o aplicativo são compõem uma
solução do Microsoft Visual Studio com 6 seis projetos, incluindo o projeto para o
app. A solução é composta dos seguintes projetos: TaxiNet.PhoneApplication,
TaxiNet.Services.Task, TaxiNet.Services.Entity, TaxiNet.Business,
TaxiNet.Repository.MSSQL e TaxiNet.Entity que podemos ver a seguir no diagrama
da figura 10.
35
Figura 10: Diagrama de componentes
Fonte: Autoria própria
[1.] TaxiNet.PhoneApplication: projeto Windows Phone responsável pela
camada de UI (User Interface) que interage diretamente com o projeto
Services Task Service e com o projeto Entity portável.
[2.] TaxiNet.Services.Task: projeto WCF (Windows Comunication
Foundation) responsável por orquestrar as funcionalidades da rede.
Interage com o projeto Entity portável e com o projeto Services Entity
,Service além de ser utilizado pelo projeto Phone Application.
[3.] TaxiNet.Services.Entity: projeto que se relaciona com Entity portável e
o Services Task Service, além de encapsular outros dois projetos
Business e Repository.
[4.] TaxiNet.Business: projeto que representa a camada que contém
regras de negócio, trabalha diretamente com o projeto Repository e
Entity portável e é utilizado pelo projeto Services Entity Service.
[5.] TaxiNet.Repository.MSSQL: projeto que contém a camada de acesso
a ao banco de dados, utilizando Entity Framework para acesso ao
banco de dados SQL Server. Trabalha com o projeto Entity portável e
Business.
36
[6.] TaxiNet.Entity: projeto portável com os objetos de negóocio utilizados
em todos os outros projetos da solução.
76.3 DIAGRAMAS DE CASOS DE USO
Estes diagramas representam a interação de um ator (usuário da rede) com a
rede, mostrando as funcionalidades da mesma no através do ponto de vista do ator.
Nas figuras 11, 12 e 13 podemos ver os diagramas para os usuários:
administrador da rede, cliente e motorista respectivamente, aonde é são mostrado
apresentados todos os casos de uso previstos para os atores que serão comentados
a seguir:
UC01, UC05 e UC12 – Logar na rede: Estes casos de uso são
necessáriosdevem serem executados para que os usuários possam ter acesso aà
rede e suas respectivas funcionalidades.
UC02 – Manter regiões: Este caso de uso é utilizado apenas pelo ator
Administrador e representa o cadastro e manutenção de regiões da rede.
UC03 – Configurar região: Este caso de uso é utilizado apenas pelo ator
Administrador e representa a configuração da região que deve ser realizada a partir
da execução do UC02. Nela definimos o raio que define a região.
Figura 11: Casos de uso do administrador da rede
37
Fonte: Autoria própria
UC04 – Configurar rede: Este caso de uso é executado apenas pelo ator
Administrador e representa as configurações da rede. A partir deste definimos é
definido o raio de alcance para busca de regiões pelos dispositivos conectados na
rede.
UC06 – Chamar motorista: Este caso de uso é executado apenas pelo ator
Cliente e representa o iniício do ciclo de vida de um chamado para a corrida de táxi.
É Para isso, é apresentadoapresentada para o usuário cliente uma lista com os
usuários motoristas disponíveis na região, ordenada por proximidade dos motoristas
ao usuário cliente. Após a escolha do motorista, de acordo com a necessidade do
usuário cliente, a localização do usuário cliente é mostrada no dispositivo para
confirmação do endereço de origem do chamado. A partir da confirmação do
chamado, é enviadao para a rede a solicitação do novo chamado e deixa-o com o
status de “Pendente” para o usuário motorista escolhido.
UC07 – Finalizar chamado: Este caso de uso é executado apenas pelo ator
Cliente e representa o fim do ciclo de vida do chamado. Nele, o usuário cliente
confirma o fim da corrida sinalizada pelo usuário motorista.
UC08 e UC17 – Adicionar amigo: Este caso de uso é executado pelos
atores Cliente e Motorista. Ele representa o envio da solicitação de amizade para um
outro usuário. Estaá solicitação é realizada a partir do nome de usuário dos amigos
na rede.
UC09 e UC18 – Visualizar solicitações de amizade: Este caso de uso é
executado pelos atores Cliente e Motorista. A partir da execução dele, os atores
podem visualizar as solicitações de amizades pendentes para o seu perfil.
UC10 e UC19 – Responder solicitação de amizade: Este caso de uso é
executado pelos atores Cliente e Motorista. E a partir da execução deste, os atores
podem confirmar ou não uma solicitação de amizade.
38
Figura 12: Casos de uso do usuário motorista
Fonte: Autoria própria
UC11 e UC21 – Atualizar perfil: Este caso de uso pode ser executado pelos
atores Cliente e Motorista. E a partir da execução deste, poderá ser alterado os
dados do perfil do usuário, além de permitir e também incluir a inclusão de uma foto
ao perfil do usuário., Foto esta que poderá ser escolhida a partir das fotos
disponíveis no dispositivo do usuário.
UC13 – Atender chamado: Este caso de uso pode ser executado apenas por
um ator Motorista. A partir da execução deste, é apresentado no dispositivo do
usuário motorista a identificação do cliente e a opção para aceitar ou recusar o
chamado UC14.
UC14 – Aceitar ou Recusar o chamado: Este caso de uso pode ser
executado apenas pelo ator Motorista. A partir do aceite ou da recusa do chamado,
é enviada para rede uma atualização deste chamado para a rede informando um
novo status para o chamado de “Aceito” ou “Recusado”.
UC15 – Iniciar corrida: Este caso de uso é executado apenas pelo ator
Motorista. E, a partir da execução do UC14, eocorre a alteração do status do
chamado para “Aceito”, no dispositivo do usuário motorista aparece a opção para
39
iniciar a corrida. Que qQuando a corrida é iniciada, também atualiza o status do
chamado na rede para “Em atendimento”.
Figura 13: Casos de uso do usuário motorista.
Fonte: Autoria própria
UC16 – Finalizar corrida: Este caso de uso é executado apenas pelo ator
Motorista. A partir da execução do UC15, a parece a opção para finalizar a corrida
no dispositivo do usuário motorista. Que qQuando finalização da corrida é
confirmada pelo usuário, é enviada para rede uma atualização do status do
chamado para “Atendido”.
UC20 – Manter carros: Este caso de uso é executado apenas pelo ator
Motorista. A partir dele o usuário motorista pode realizar a manutenção do carro
cadastrado para o motorista na rede.
76.4 DIAGRAMAS DE CLASSES DE ANÁLISE
Esta seçãoe diagrama tem como objetivo descrever a estrutura e a relação
das classes da rede, descrevendo quais são as interfaces com os usuários, as
40
classes que controlam a execução das tarefas e as classes de persistência. Na
sequênciaPara isso, seguem os diagramas de classes de análise para cada caso de
uso apresentado na seção anterior.
Na fFigura 14, o diagrama de classes de análise dos UC01, UC05 e UC12 -
Logar na rede, nos mostra uma interface para inserção dos dados para validação do
login e 10dez possíveis classes de controle, que realizam o processamento de
regras de negócio entre as camadas da arquitetura da rede, intermediando a
persistência dos dados de acordo com o tipo de usuário que está realizando o login
na rede.
Figura 14: Diagrama de classes de análise para UCs: 01, 05 e 12.
Fonte: Autoria própria
Na figura 14, o diagrama de classes de análise dos UC01, UC05 e UC12 -
Logar na rede, nos mostra uma interface para inserção dos dados para validação do
login e 10 possíveis classes de controle que realizam o processamento de regras de
negócio entre as camadas da arquitetura da rede intermediando a persistência dos
dados de acordo com o tipo de usuário que está realizando o login na rede.
41
O administrador da rede tem o dever de realizar a manutenção das regiões da
rede, ou seja, adicionar uma nova região, atualizar ou até mesmo remover uma
região da rede. Logo a seguir nNa fFigura 15, podemos notar que o UC02 – Manter
regiões, partindo da interface, possuií seis classes de controle, que intermediam a
persistência da região e sua localização.
Figura 15: Diagrama de classes de análise para o UC02.
Fonte: Autoria própria
Além de realizar a manutenção das regiões da rede, o administrador também
tem a responsabilidade de realizar a configuração da região cadastrada na rede. No
UC03 – Configurar região, para que a configuração da região seja concretizada
temos, a partir da interface de configuração, mais quatro classes de controle que são
encarregadas de processar e realizar a persistência dos dados de configuração,
como vemos na fFigura 16.
42
Figura 16: Diagrama de classes de análise para o UC03.
Fonte: Autoria própria
A configuração da rede também é de responsabilidade do administrador e é
realizada a partir de uma interface de configuração da rede, conforme apresentado
na Figura 17..
Figura 17: Diagrama de classes de análise para o UC04.
Fonte: Autoria própria
A Figura 18 apresenta os casos de uso UC06 e UC07, onde, Oo cliente, no
ciclo de vida de um chamado, é encarregado de iniciar o chamado, escolhendo o
motorista, a partir de uma interface, aonde é possível visualizar os motoristas
disponíveis da região.
43
No final da corrida, o cliente é responsável por confirmar o atendimento da
corrida finalizada pelo motorista, assim confirmando a finalização do chamado.
Como podemos ver na Figura 18, o UC06 – Chamar motorista e o UC07 – Finalizar
chamado, trabalham com quatro classes de controle para que as persistências no
chamado sejam realizadas.
Figura 18: Diagrama de classes de análise para o UC06 e UC07.
Fonte: Autoria própria
Também no final da corrida é responsável por confirmar o atendimento da
corrida finalizada pelo motorista, assim confirmando a finalização do chamado.
Como podemos ver na figura 18, o UC06 – Chamar motorista e o UC07 – Finalizar
chamado, trabalham com quatro classes de controle para que as persistências no
chamado sejam realizadas.
Tanto o cliente quanto o motorista podem adicionar novos amigos a sua rede
de contatos. para istoConforme apresentado no UC08 e o UC17 – Adicionar amigo.
Na fFigura 19, podemos ver o iníicio do ciclo de vida de uma solicitação de
amizade e que, para adicionar um amigo, a partir da interface da páagina principal, o
usuário ainda passa pela interface de solicitação de nova amizade, para que, então,
as quatro classes de controle realizem a persistência desta nova solicitação de
amizade.
44
Continuando o ciclo de vida de uma solicitação de amizade, temos os casos
de uso UC09 e UC18 - Visualizar solicitações de amizade.
Figura 19: Diagrama de classes de análise para o UC08 e UC17.
Fonte: Autoria própria
Na figura 19 podemos ver o inicio do ciclo de vida de uma solicitação de
amizade e que para adicionar um amigo a partir da interface da pagina principal o
usuário ainda passa pela interface de solicitação de nova amizade para que então
as quatro classes de controle realizem a persistência desta nova solicitação de
amizade.
Continuando o ciclo de vida de uma solicitação de amizade, temos os casos
de uso UC09 e UC18 - Visualizar solicitações de amizade.
Continuando o ciclo de vida de uma solicitação de amizade, temos os casos
de uso UC09 e UC18 - Visualizar solicitações de amizade.
Na Figura 20, podemos visualizar que, a partir da interface que mostra uma
lista com as solicitações de amizade pendentes, temos quatro classes de controle,
que se encarregam de retornar as solicitações pendentes persistidas: o UC09 para
um ator cliente e o UC18 para um ator motorista.
45
Figura 20: Diagrama de classes de análise para o UC09 e UC18.
Fonte: Autoria própria
Na figura 20 podemos visualizar que a partir da interface que mostra uma lista
com as solicitações de amizade pendentes, temos quatro classes de controle que se
encarregam se retornar as solicitações pendentes persistidas, o UC09 para um ator
cliente e o UC18 para um ator motorista.
Para finalizar o ciclo de vida de uma solicitação de amizade, podemos ver na
fFigura 21, que representa o UC10 e o UC19 – Responder solicitações de amizade,
um para o ator cliente e outro para o ator motorista.
46
Figura 21: Diagrama de classes de análise para o UC10 e UC19.
Fonte: Autoria própria
A resposta das solicitações de amizade é a realizada a partir de uma interface
que mostra a solicitações de amizade pendente e a opção para aceitar ou recusar a
solicitação. Então, temos mais sete classes de controle que se encarregam de
persistir a confirmação da amizade e a nova amizade formada na rede.
Os atores cliente e motorista também tem a opção de atualizarem seus perfis
de usuário quando logados conectados na rede, através do UC11 e o UC21 –
Atualizar perfil, respectivamente. Na fFigura 22, podemos ver que, para atualizar o
perfil, o usuário também passa por quatro classes de controle, de acordo com o tipo
de usuário, até que as atualizações do perfil sejam persistidas.
47
Figura 22: Diagrama de classes de análise para o UC11 e UC21.
Fonte: Autoria própria
Retornando para o ciclo de vida do chamado, agora no ponto de vista do ator
motorista. O chamado que tem seu ciclo iniciado pelo ator cliente passa a ter seu
chamado atendido conforme o UC13 – Atender chamado, quando na interface da
paágina principal aparece o novo chamado iniciado pelo cliente. Então temos o
UC14 – Aceitar ou recusar chamado, que, quando executado, é envia para a rede
48
uma atualização de status do chamado. O motorista também é encarregado de,
quando pegar o passageiro (cliente), indicar o “iniciar a corrida” conforme UC15 –
Iniciar corrida. E, quando chegar ao destino do passageiro, também deve indicar o
fim da corrida, conforme o UC16 – Finalizar corrida. Todos os casos de uso do
motorista que são referentes ao ciclo de vida do chamado, são apresentados
podemos ver na fFigura 23., queOs mesmos são iniciados se iniciam a partir da
interface da páagina principal e podem envolver até sete classes de controle,
enquanto até que o chamado e a corrida, se for o caso, sejam persistidos.
Figura 23: Diagrama de classes de análise para o UC13, UC14, UC15 e UC16.
Fonte: Autoria própria
O motorista ainda tem a responsabilidade de manter as informações do carro
em o qual dirige. A partir do UC20 – Manter carros, o motorista insere e atualiza os
dados dos carros que está habilitado. Na fFigura 24, podemos ver que, a partir da
interface da página principal, o motorista tem acesso aà interface de manutenção
49
dos carros, e, então, podemos perceber que para a realização da persistência do
carro ainda existem quatro classes de controle.
Figura 24: Diagrama de classes de análise para o UC20.
Fonte: Autoria própria
76.5 IMPLEMENTAÇÃO
Estae capítulo seção apresenta informações referentes a à implementação
dosa serviços e do aplicativo móvel que compõem a rede.
76.5.1 Tecnologias utilizadas
As seguintes tecnologias foram utilizadas para a realização deste trabalho:
Sistema Operacional Windows 8;
Smartphone com Windows Phone 8;
Microsoft Visual Studio Professional 2013;
Microsoft SQL Server 2014;
Microsoft .Net Framework 4.0;
Windows Communication Foundation 4.5
Internet Information Services 8 (IIS8);
51
8 7 CONCLUSÃO
Com o desenvolvimento deste trabalho, tivemos a oportunidade de propor e
desenvolver uma solução para quem utiliza táxi poder, de forma rápida, fácil e
cômoda escolher o motorista para a realização da corrida, de acordo com sua
necessidade. Assim, quando o usuário cliente precisa de um carro grande ou, com
bagageiro, já identifica estas informações no momento da escolha do motorista para
realização do chamado. Também o usuário cliente, caso tenha interesse em fazer a
corrida com algum motorista que seja seu amigo na rede e este estiver disponível na
região, este aparecerá em destaque para o usuário cliente.
Complementar...
87.1 CONHECIMENTO ADQUIRIDO DURANTE O TRABALHO
Com o desenvolvimento do trabalho foi possível perceber a importância da
UML na modelagem de sistemas. E o desenvolvimento realizado para as camadas
de serviços nos deram um maior aprofundamento sobre a arquitetura SOA. EPor
fim, o desenvolvimento com a plataforma Windows Phone 8 me acrescentou novos
conhecimentos, tais como: de como trabalhar com tecnologia A-GPS e utilizar
mapas.
87.2 DIFICULDADES ENCONTRADAS E LIMITAÇÕES
A maior dificuldade encontrada durante a execução do trabalho foi definir e
validar a arquitetura para implementação da rede. A integração do aplicativo móvel
com os serviços desenvolvidos em WCF (Windows Communication Foundation)
foi um grande aprendizado e também não deixou de ser uma grande dificuldade.
A grande limitação foi a falta de recursos para o desenvolvimento do
trabalho. A arquitetura definida acabou tornando o desenvolvimento simples, porém
trabalhoso, pois que demandou muito esforço de parte do autor. e o trabalho foi
realizado com um único integrante.
52
87.3 TRABALHOS FUTUROS
Em continuação a este trabalho ainda pode ser acrescentador o
acompanhamento do motorista até a chegada ao endereço de origem da corrida
para busca do passageiro. Também podem ser analisadas implementada “push
notifications”, para que a rede lance notificações nos dispositivos dos usuários a
partir do aplicativo.
Outro passo, daí seria a criação de aplicativos em outras tecnologias móveis
como Android e IOS, utilizando a camada de serviço já existente dna rede.
53
REFERÊNCIAS
MONICO, João Francisco. Posicionamento pelo NAVSTAR-GPS: descrição, fundamentos e aplicações. São Paulo: UNESP 2000.
MATEUS, Geraldo Robson.; LOUREIRO, Antonio Alfredo Ferreira. Introdução à computação móvel. 1. ed. Rio de Janeiro: DCC/IM, COPPE/UFRJ, 1998.
LITCHFIELD, Steve. Assisted GPS and the future of smartphones. All About Symbian 2007. Disponível em:< http://www.allaboutsymbian.com/features/item/The_future_of_GPS-equipped_smartphones.php>. Acesso em: 20 mar. 2012.
LOPES, F. Elias; NOGUEIRA, G. Jaime; NACIF, G. Thiego. Sistemas Baseados em Localização em um Mundo Sem-fio com J2ME e API Location. Simpósio Brasileiro de Sistemas de Informação, Curitiba, Nov. 2006.
BAROLLI, Leonard; HSU, Hui-Huang; SHIBATA, Yoshitaka. Mobile systems and applications. Móbile Information Systems, Amsterdam, v. 4, n. 2, p. 77-79, Abr. 2008.
LEE, Dik Lun; SHU, Manli; HU Haibo. When location-based services meet databases. Mobile Information Systems, Amsterdam, v. 1, n. 2, p. 81-90, Jul. 2005.
ERICK, Lopes-Ornelas; FERNANDO, Farfán-Olvera. Integration of geospatial information for mobile and services devices. In: Geoinformatics 2009 17th International Conference, Washington, 2009 p. 1-5.
FABRICE, Reclus; KRISTEN, Drouard. Geofencing for fleet & freight management. In: Intelligent Transport Systems Telecommunications, (ITST), 2009 9th International Conference, Lille, 2009 p. 353-356.
ULRICH, Bareth; AXEL, Kupper; PETER, Ruppel. geoXmart – A Marketplace for Geofence-Based Móbile Services. In: Computer Software and Applications Conference (COMPSAC), 2010 IEEE 34th Annual, Izmir, 2010 p. 101-106.
ANSERSSON, Karl; JOHANSSON, Dan. Mobile e-Services Using HTML5. In: Local Computer Networks Workshops (LCN Workshops), 2012 IEEE 37th Conference, 2012 p. 814-819.
FISCHER, Nikolaus; SMOLNIK, Stefan. The Impact of Mobile Computing on Individuals, Organizations, and Society - Synthesis of Existing Literature and Directions for Future Research. In: System Sciences (HICSS), 2013 46th Hawaii International Conference, 2013 p. 1082-1091.
DI PIETRO, Roberto; MANDATI, Roberto; VERDE, Nino Vicenzo. Track me if you can: Transparent obfuscation for Location based Services. In: World of Wireless, Mobile and Multimedia Networks, 2013 IEEE 14th International Symposium and Workshops, 2013 p.1-9.
54
PEJIC, Bojan; PEJIC, Aleksandar; COVIC, Zlatko. Uses of W3C's Geolocation API. In: Computational Intelligence and Informatics (CINTI), 2010 11th International Symposium, 2010 p. 319-322.
BROWN, Robert L.; HARMON, Robert R. Viral geofencing: An exploration of emerging big-data driven direct digital marketing services. In: Management of Engineering & Technology (PICMET), Portland International Conference,2014 p. 3300-3308.