pontifÍcia universidade catÓlica do rio …fwalker/monografiadaniel.docx  · web viewtrabalho de...

74
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA CURSO DE SISTEMAS DE INFORMAÇÃO DANIEL VIANNA DA SILVA TAXINET Porto Alegre

Upload: vuongkhanh

Post on 13-May-2018

217 views

Category:

Documents


3 download

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

Walker, 06/11/14,
Não gostaste da minha sugestão para o subtítulo?

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.

Walker, 06/11/14,
Não esquece!!!

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.

.

Fernanda, 11/06/14,
Rever...

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, é

Walker, 06/11/14,
Acho que aqui fica só uma indicação e a URL vai lá nas Referências...

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

Walker, 06/11/14,
Precisa colocar referências...

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.

Walker, 06/11/14,
Referência???

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?

Walker, 06/11/14,
Atenção!

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.

Walker, 06/11/14,
Muito repetitivo: adaptações, adaptações e adaptar-se na mesma frase...

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).

Daniel Vianna da Silva, 06/11/14,
Adicionei
Walker, 06/11/14,
Acho melhor unificar em uma tabela única...

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

Walker, 06/11/14,
Acho que fica melhor em uma tabela unificada, pois podemos comparar...

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).

Walker, 06/11/14,
Não entendi...
Walker, 06/11/14,
Referências???

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.

Daniel Vianna da Silva, 06/11/14,
Adicionei
Walker, 06/11/14,
Confere se é assim que deve ser feita a referência...

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.

Walker, 06/11/14,
Poderia ter uma ilustração com um diagrama de estados, para ficar mais claro...

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);

Walker, 06/11/14,
Só isso?
Walker, 06/11/14,
Atenção para formatação!

50

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.

Walker, 06/11/14,
Acho que não precisa de uma seção especial, separada para isso...
Walker, 06/11/14,
Objetivos foram atingidos?

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.

Walker, 06/11/14,
Confere, mas eu acho que tem que ser em ordem alfabética...

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.

55

ANEXOS

ANEXO A - Demonstrativo de freqüência diária ago./set. 2001

ANEXO B - Demonstrativo de freqüência diária jan./dez. 2002

Walker, 06/11/14,
Se não tiver, não precisa...