marcos paulo silva dos santos · 2014-02-12 · realizar pesquisas, visualização de mapas e...

46
1 Marcos Paulo Silva dos Santos Aplicativo Web Integrado ao Google Maps para o Setor Imobiliário Assis, SP 2011

Upload: others

Post on 15-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

1

Marcos Paulo Silva dos Santos

Aplicativo Web Integrado ao Google Maps para o Setor Imobiliário

Assis, SP

2011

Page 2: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

2

Aplicativo Web Integrado ao Google Maps para o Setor Imobiliário

Marcos Paulo Silva dos Santos

Trabalho de conclusão de Curso apresentado ao Instituto Municipal de Ensino Superior de Assis, como requisito do Curso de Tecnologia em Processamento de Dados.

Orientadora: Profa. Dra. Marisa Atsuko Nitto Área de Concentração: Informática

Assis, SP

2011

Page 3: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

3

FICHA CATALOGRAFICA

SANTOS, Marcos Paulo Silva

Aplicativo Web Integrado ao Google Maps para o Setor Imobiliário/ Marcos Paulo Silva dos

Santos.

Fundação Educacional do Município de Assis FEMA Assis, 2011.

46p.

Orientadora: Prof.ª Dr.ª Marisa Atsuko Nitto.

Trabalho de Conclusão de Curso Instituto Municipal de Ensino – IMESA.

CDD: 001.61

Biblioteca da FEMA

Page 4: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

4

Aplicativo Web Integrado ao Google Maps para o Setor Imobiliário

Marcos Paulo Silva dos Santos

Trabalho de conclusão de Curso apresentado ao Instituto Municipal de Ensino Superior de Assis, como requisito do Curso Tecnologia em Processamento de Dados, analisado pela seguinte comissão examinadora:

Orientadora: Profa. Dra. Marisa Atsuko Nitto

Analisador : Prof. Dr. Luiz Carlos Begosso

Assis, SP

2011

Page 5: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

5

DEDICATÓRIA

Dedico este trabalho primeiramente ao

Senhor Deus, que através do seu

infinito amor me guardou, me deu

forças e sabedoria todos os dias desta

jornada. Com honra, dedico também a

minha família que com muita paciência e

amor sempre me deu suporte e me orientou

a seguir pelo caminho da retidão de caráter.

Page 6: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

6

AGRADECIMENTOS

Agradeço primeiramente a Deus, que me deu forças e sabedoria para concluir essa

etapa da minha vida;

A professora, Marisa Atsuko Nitto, pela orientação, paciência e pelo constante

estimulo transmitido desde a formulação da ideia até a conclusão deste trabalho;

A Fundação Educacional do Município de Assis por ter-me possibilitado a realização

deste trabalho;

Aos meus professores: Alex, Almir, Begosso, Célio, Claudiner, Dani, Domingos,

Douglas, Fernando, Guto, João Calos, Leonor, Manfio, Marisa, Osmar, Picollo,

Sarah, Talo, Valverde que me deram todos conhecimentos de informática;

Aos amigos do Curso, que não poderia esquecer Bruno Mezenga, Wellington Pauda

e Leonardo Brancalhão que estiveram comigo dividindo as lutar e também as vitorias

a cada etapa concluída, dos quais levo comigo lições de vida e boas lembranças;

Ao grande amigo e irmão Paulo Rogério pelo incentivo, apoio, força e ajudas dadas

nos momentos de dificuldade;

E a todos aqueles que, direta ou indiretamente, colaboraram para que este trabalho

consiga atingir aos objetivos propostos.

Page 7: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

7

RESUMO

Neste projeto será desenvolvido um aplicativo web integrado ao Google Maps para o

setor imobiliário. No aplicativo serão utilizadas as tecnologias Java e a API do

Google Maps, que é uma interface de desenvolvimento baseadas no próprio Google

Maps, onde ajuda a integrar mapas e geo-codificação aos sites. Para possibilitar que

as aplicações com conteúdo geo-referenciado sejam facilmente apresentadas em

qualquer navegador o aplicativo será desenvolvido em JSF (Java Server Faces).

Palavra Chaves: Aplicativo Web; Java; Google Maps.

Page 8: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

8

ABSTRACT

This project will develop a web application integrated with Google Maps for real estate.

Application will be used in Java technologies and the Google Maps API, which

is adevelopment interface based on Google Maps itself, which helps integrate maps andgeo-

coding their sites. To enable applications with geo-referenced content to be

easily displayed in anybrowser, the application will be developed in JSF (Java Server Faces).

Keywords: Web Application; Java; Google Maps.

Page 9: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

9

LISTA DE FIGURAS

Figura 1 - Localização da FEMA no Google Maps ................................................... 10

Figura 2 – Visão Geral do Sistema ............................................................................ 23

Figura 3 - Diagrama de Casos de Uso ...................................................................... 24

Figura 4 – Diagrama de Classe – Pacote beans ....................................................... 29

Figura 5 – Diagrama de Classe – Pacote DAO ........................................................ 31

Figura 6 – Diagrama de Sequencia – Manter Proprietário ....................................... 32

Figura 7 – Diagrama de Sequencia – Manter Inquilino ............................................. 33

Figura 8 – Diagrama de Sequencia – Manter Imóvel ................................................ 34

Figura 9 – Diagrama de Atividades ........................................................................... 35

Figura 10 – Tela de Login – Primeiro contato do do usuario com o Aplicativo ......... 36

Figura 11 – Tela Principal do Aplicativo Desktop ...................................................... 37

Figura 12 – Interface de Cadastro de Imóveis........................................................... 38

Figura 13 – Interface de Cadastro de Imagens ......................................................... 39

Figura 14 – Interface deVenda de Imóveis ................................................................ 40

Figura 15 – Página inicial Aplicação Web ................................................................. 41

Figura 16 – Página com mapeamanto dos imóveis ................................................... 42

Figura 17 – Página com um marcador dinâmico ....................................................... 43

Page 10: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

10

LISTA DE TABELAS

Tabela 1 – Caso de Uso: Manter Inquilino ................................................................ 22

Tabela 2 – Caso de Uso: Manter Proprietário ........................................................... 23

Tabela 3 – Caso de Uso: Manter Imóvel ................................................................... 24

Page 11: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

11

SUMÁRIO

1. INTRODUÇÃO ..................................................................................................... 10

1. 1 Objetivos ......................................................................................................... 11

1.1.1 Objetivo Geral ........................................................................................... 12

1.1.2 Objetivos Específicos ............................................................................... 12

1.2 Justificativa. ..................................................................................................... 12

1.3 Motivação ........................................................................................................ 13

1.4 Estruturas do trabalho ...................................................................................... 13

2. FUNDAMENTAÇÃO TEÓRICA BÁSICA ............................................................... 14

2.1 Linguagem Java ............................................................................................. 14

2.1.1 Características .............................................................................................. 14

2.1.2 Vantagens ..................................................................................................... 15

2.1.3 Java Web ...................................................................................................... 15

2.2 Apache ............................................................................................................. 17

2.3 API Google Maps ............................................................................................. 17

2.4 Banco de Dados HSQLDB ............................................................................... 19

3. DESENVOLVIMENTO DO APLICATIVO .............................................................. 20

3.1 Descrição do Problema ................................................................................... 20

3.2 Modelagem do Problema ................................................................................. 20

3.3 Especificação ................................................................................................... 21

3.3.1 Diagrama de Casos de Uso ...................................................................... 22

3.3.2 Especificação dos Casos de Uso.............................................................. 22

3.3.3 Diagrama de Classes ................................................................................ 25

3.3.4 Diagrama de Sequência ........................................................................... 28

3.3.5 Diagrama de Atividades ............................................................................ 31

3.4 Implementação ................................................................................................ 32

4. CONCLUSÃO ........................................................................................................ 33

5. REFÊRENCIAS BIBLIOGRÁFICAS ...................................................................... 34

Page 12: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

12

1. Introdução

Grandes empresas como Google vêm disponibilizando Interfaces de Programação

de Aplicativos (API - Application Programming Interface) de comunicação com suas

ferramentas web. Desta forma, proporcionam aos desenvolvedores, o uso da grande

capacidade de processamento e a enorme fonte de informação proveniente dos

seus serviços. São exemplos as atuais API do Google Maps e a API do Orkut para

desenvolvimento de aplicações. As APIs têm se tornado cada vez mais difundidas

na internet, especialmente por softwares livres que disponibilizam aos seus usuários

há possibilidades para que estes criem plugins, ou seja, ferramentas que

complementam a funcionalidade inicial do software.

O Google Maps é um serviço gratuito fornecido pela empresa Google, usado para

realizar pesquisas, visualização de mapas e imagens de satélite da Terra e

possibilita a produção de um mapa personalizado completo, sendo possível marcar

locais, adicionar vídeos, fotos e compartilhar todo este conteúdo na rede mundial de

computadores (GOOGLE MAPS, 2010 e LIU, 2010).

A figura 1 mostra a localização da FEMA (Fundação Educacional do Município de

Assis) no Google Maps.

Figura 1- Localização da FEMA no Google Maps.

Page 13: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

13

Neste projeto será abordado o problema de integração entre um aplicativo desktop e

um aplicativo web, interagindo com o Google Maps API. Será apresentado um

estudo de caso entre integração de duas aplicações focada no setor imobiliário que

utiliza os serviços baseados em localização. A integração das tecnologias será

adaptado de (SOBRAL e NITTO, 2010 e SOBRAL, 2010). Eles têm se tornado uma

das funcionalidades mais interessantes no contexto de serviços disponíveis para

aplicação web. A integração com o Google Maps permite a visualização dos imóveis

que a imobiliária tem a oferecer aos seus clientes e suas respectivas localizações no

mapa por meio do componente Overlay. Além da localização dos imóveis, terá um

marcador dinâmico onde o usuário poderá visualizar as fotos do imóvel (cômodos,

fachada, planta do imóvel, etc). A linguagem que será utilizada para a

implementação do aplicativo é Java (DEITEL, 2003; POTTS e FRIEDEL JR, 2004;

LEMAY e PERKINS, 1996).

1.1 Objetivos

Este projeto tem como objetivo principal desenvolver um aplicativo para o setor

imobiliário utilizando as tecnologias Java para Web integrada com o Google Maps

API. As tecnologias envolvidas para o desenvolvimento do aplicativo são Servlets,

JSP (Java Server Pages), JSF, servidor de aplicação Apache Tomcat, XML, AJAX e

a Google Maps API para manipulação de dados espaciais. Serão desenvolvidas

duas aplicações: uma web e outra desktop. No aplicativo serão incluídos os markers

dinâmicos que são mais complexos para serem implementados. Os markers são

figuras que marcam um determinado ponto no mapa e serão utilizados para localizar

os imóveis cadastrados.

Page 14: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

14

1.1.1 Objetivo Geral

Desenvolver aplicações desktop e web em Java integrado com a tecnologia Google

Maps API que seja capaz de disponibilizar a localização dos imóveis cadastrados em

um banco de dados, e permitir que o usuário possa ver o imóvel citado virtualmente

conhecendo todas as medidas e espaços que o imóvel lhe oferece.

1.1.2 Objetivos Específicos

Adquirir conhecimento sobre as tecnologias XML, JSP, JSF, Servlets e servidor

Appach Tomcat;

Adquirir conhecimento sobre Google Maps API do Java;

Adquirir conhecimento em programação web;

Modelagem e desenvolvimento do aplicativo web;

Implementação dos algoritmos dos markers dinâmicos;

Implementação dos algoritmos de inclusão de imagens;

Criação de um banco de dados;

Implementação da integração de tecnologias;

Validar e testar o modelo de comunicação entre as tecnologias;

Divulgação de resultados parciais e finais.

1.2 Justificativa

O desenvolvimento deste projeto se justifica, tendo em vista, que nos dias atuais, o

usuário final precisa realizar determinada ação que pode ser facilitada se utilizadas

aplicações que estejam enquadradas no contexto de serviços baseados em

localização, como guias para rotas, descoberta de serviços disponíveis em

determinada localidade (como farmácias, restaurantes, pizzarias e outros). Estes

tipos de serviços estão sendo timidamente explorados, mas mostra uma demanda

grande no mercado de negócios.

Page 15: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

15

Outro fator importante é que a API do Google Maps está sendo cada vez mais

utilizada e aprimorada pela Google, fazendo com que o conteúdo dos sites seja mais

dinâmico e de fácil acesso com a utilização de mapas. Este aprimoramento pode ser

observado pelo lançamento recente do Google Street View (Google Visto da Rua)

que é um recurso do Google Maps e do Google Earth que disponibiliza vistas

panorâmicas de 360° na horizontal e 290° na vertical e permite que os usuários ou

utilizadores vejam partes de algumas regiões do mundo ao nível do chão ou solo.

1.3 Motivação

A principal motivação para o desenvolvimento deste trabalho foi o desafio em

adquirir conhecimento sobre tecnologia web e a utilização da API Google Maps. O

interesse por esta tecnologia são as vantagens que ela oferece, por exemplo, a

possibilidade de reutilização de código em larga escala, utilizando os objetos, e

aproveitamento do poder computacional, que está distribuído em redes de

computadores de todo o mundo. Neste ambiente, todo aplicativo desenvolvido tem a

capacidade de ser executado e utilizado em múltiplas plataformas de hardware e

software, com total transparência para o usuário.

1.4 Estruturas do Trabalho

O trabalho está organizado em cinco capítulos conforme descrito a seguir.

1. Introdução;

2. Fundamentação Teórica Básica;

3. Desenvolvimento do Aplicativo;

4. Conclusão;

5. Referência Bibliográfica.

Page 16: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

16

2. Fundamentação Teórica Básica

Neste capítulo, será feita uma fundamentação teórica dos conceitos básicos que

foram utilizados para o desenvolvimento e modelagem do projeto. Estes conceitos

se referem às linguagens e as ferramentas necessárias para o desenvolvimento do

aplicativo.

2.1 Linguagem Java

Java é uma linguagem de programação orientada a objeto desenvolvida na década

de 90, pelo programador James Gosling, da empresa Sun Microsystems.

Diferentemente das linguagens convencionais, que são compiladas para código

nativo, a linguagem Java é compilada para um bytecode que é executado por uma

máquina virtual.

2.1.1 Características

A linguagem Java foi projetada tendo em vista os seguintes objetivos(DEITEL;

DEITEL, 2005):

Orientação a Objeto: baseado no modelo de Smalltalk e Simula67;

Portabilidade: independência de plataforma;

Recursos de Rede: possui extensa biblioteca de rotinas que facilitam a

cooperação com protocolos TCP/IP, como HTTP e FTP;

Segurança: pode executar programas via rede com restrições de execução;

Sintaxe: similar a Linguagem C/C++;

Facilidades de Internacionalização: suporta nativamente caracteres

Unicode;

Simplicidade: na especificação, tanto da linguagem como do "ambiente" de

execução (JVM);

Distribuída: com um vasto conjunto de bibliotecas (ou APIs) e facilidades

para criação de programas distribuídos e multitarefas (múltiplas linhas de

execução num mesmo programa);

Page 17: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

17

Desalocação de Memória Automática: feita por processo de coletor de lixo

(garbage collector);

Carga Dinâmica de Código: programas em Java são formados por uma

coleção de classes armazenadas independentemente e que podem ser

carregadas no momento de utilização.

2.2.2 Vantagens

A linguagem Java funciona em qualquer sistema operacional, em qualquer

arquitetura, ao contrário dos seus principais concorrentes;

Não está limitada somente ao ambiente Windows;

Java (JDK, EJB, JSP, etc) é uma arquitetura aberta, extensível, com várias

implementações, o que a torna independente do fornecedor;

É uma linguagem descomprometida, aceita inclusive nos meios universitários

como uma boa linguagem para a aprendizagem, o que facilita o recrutamento

de técnicos.

2.2.3 Java Web

Aplicações Web estão cada vez mais presentes e seu desenvolvimento representa

boa parte da produção de organizações desenvolvedoras de software bem como de

mídia em geral. O rápido crescimento das aplicações Web, tanto em seu escopo

quanto na extensão de seu uso, tem afetado todos os aspectos de nossas vidas

(GINIGE; MURUGESAN, 2000). Por representar uma evolução do software

convencional, algumas preocupações adicionais motivaram as pesquisas

relacionadas à engenharia de aplicações Web (Web Engineering), mantendo o

objetivo de aplicar princípios de engenharia para desenvolver aplicações Web de

qualidade (PRESSMAN, 2002). Com isso, a tecnologia Java ganhou espaço, pois foi

projetada para se mover através de redes de dispositivos heterogêneos, como a

Internet. Agora as aplicações podem ser executadas dentro dos Browsers nos

Applets Java e tudo seria disponibilizado pela Internet instantaneamente. Foi o

Page 18: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

18

estático HTML dos Browsers que promoveu a rápida disseminação da dinâmica

tecnologia Java.

O modelo de programação utilizando na tecnologia Java recebe a denominação na

literatura de Java Web, pois é voltado para aplicações Web. Servlets e Java Server

Pages (JSP) são os programas Java que executam em um servidor Web, e

respondem a requisições feitas por clientes através de navegadores. Servlets é uma

API Java utilizada para o desenvolvimento de aplicações web e utilizada para

processar requisições de clientes recebidas através do modelo solicitação resposta

(KURNIAWAN, 2002). A tecnologia JSP é parte da família de tecnologias Java.

Páginas JSP são compiladas em servlets e podem chamar componentes JavaBeans

(beans) ou componentes Enterprise JavaBeans (EJB) para a realização do

processamento no servidor (BONFIN JUNIOR, 2002 e GIGAFLOPS, 2010).

O Enterprise JavaBeans (EJB) são objetos distribuídos que apresentam uma

estrutura bem definida, isto é, implementam interfaces específicas e que executam

no lado do servidor. A vantagem na utilização dos EJBs é que a aplicação irá se

beneficiar de serviços como transações, segurança, tolerância a falhas, clustering,

distribuição, controle de sessão entre outros (ARMSTRONG et al., 2005).

A plataforma Java fornece suporte em diferentes camadas da aplicação, da interface

com o usuário á comunicação com o banco de dados, do tratamento de solicitações

e respostas aos usuários aos mecanismos de funcionamento do componente que

distribui a aplicação pela web.

A necessidade que as empresas tinham em armazenar grandes quantidades de

informação sobre temas diversos surgiu o XML que provém de uma linguagem que a

IBM inventou por volta dos anos 70 chamada General Markup Language (GML). O

XML é uma tecnologia que tem ao seu redor outras tecnologias que a

complementam e a faz muito maior e com possibilidades muito mais amplas. O XML

é importante no mundo globalizado atual, pois pode compartilhar as informações de

uma maneira segura, fácil e confiável.

Ao redor do XML está um mundo de tecnologias, facilidade no trabalho com os

dados e um avanço na hora de tratar a informação. Enfim o XML não é só uma

Page 19: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

19

linguagem e uma sintaxe, e sim várias linguagens com várias sintaxes (FURTADO

JUNIOR, 2010).

2.2 Apache

O servidor Apache (ou servidor HTTP apache) é o mais bem sucedido servidor web

livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National

Center for Supercomputing Applications).

Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilização do

Apache representa 47.2% dos servidores ativos no mundo. Em setembro de 2009

Apache serviu mais de 54,48% de todos os sites e mais de 66% dos milhões de

sites mais movimentados (APACHE TOMCAT, 2010).

É a principal tecnologia da Apache Software Foundation, responsável por mais de

uma dezena de projetos envolvendo tecnologias de transmissão via web,

processamento de dados e execução de aplicativos distribuídos, além do servidor

Tomcat.

O servidor é compatível com o protocolo HTTP versão 1.1, onde suas

funcionalidades são mantidas através de uma estrutura de módulos, permitindo

inclusive que o usuário escreva seus próprios módulos – utilizando a API do

software.

2.3 API Google Maps

O Google Maps é um serviço gratuito fornecido pela empresa Google, usado para

realizar pesquisas, visualização de mapas e imagens de satélite da Terra. O Google

Maps possibilita a produção de um mapa personalizado completo, sendo possível

marcar locais, adicionar vídeos, fotos e compartilhar todo este conteúdo na rede

mundial de computadores (GOOGLE MAPS, 2010 e LIU, 2010). Quando o Google

Maps foi lançado, em fevereiro de 2005, ainda em sua versão beta, tornou-se

rapidamente uma referência em serviços de mapas na Internet. Com uma interface

rica e intuitiva, a aplicação permitia acesso a uma enorme base de dados contendo

Page 20: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

20

inúmeras imagens de satélite, mapas de cidades, bairros, ruas e avenidas dos

Estados Unidos. Com o tempo, novas localidades foram sendo adicionadas no

sistema até que em meados de maio de 2007, a Google finalmente disponibilizou

consultas de endereços no Brasil, sendo que, em outubro de 2007, uma versão

estendida para o público brasileiro foi oferecida, com a possibilidade de se localizar

restaurantes, hotéis, traçar rotas, dentre outras utilidades (AZEVEDO, 2010).

A API do Google Maps é uma interface de desenvolvimento para aplicações

baseadas no próprio Google Maps, permitindo criar aplicativos inovadores de

mapeamento para a plataforma da Web. Essa API ajuda a integrar mapas e geo-

codificação aos sites, possibilitando que as aplicações com conteúdo geo-

referenciado sejam facilmente apresentadas em qualquer navegador (GOOGLE

DEVELOPER GUIDE, 2010).

Alguns dos recursos disponíveis são: zoom, pan, visualizar imagens de satélites de

diversos locais do planeta, incluir marcadores de locais, realizar overlay de arquivos

KML (Keyhole Markup Language), pesquisarem por locais, traçar rotas, buscar

endereços, inserir linhas, polígonos e outros. Uma observação importante é que todo

este procedimento se dá dentro da "filosofia" AJAX, o que significa dizer que o

usuário não tem que se preocupar com os detalhes (SOUZA NETO, 2009). O AJAX

surgiu em fevereiro de 2005, como sendo um conceito de navegação e atualização

de páginas Web. Antes do surgimento do AJAX, exigia-se que para cada solicitação

em uma página Web, a página inteira fosse atualizada no navegador, ou seja,

independentemente da atualização ser apenas de uma pequena parte da página,

toda a página era recebido pelo servidor, redesenhada e retornada para o

navegador, o que gerava mais tráfego de informações do que era necessário e

consequentemente, tornando o processo mais lento. Sendo assim, com a utilização

do AJAX pode-se trafegar apenas os dados que realmente foram atualizados em

uma página Web, ganhando-se em qualidade e rapidez de processamento. AJAX

também pode ser utilizado em conjunto com qualquer tecnologia Java para Web

(LIMEIRA, 2006).

Page 21: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

21

2.4 Banco de Dados HSQLDB

O HSQLDB (Hypersonic SQL Database) que é um projeto de banco de dados livre,

escrito em Java, que permite a manipulação de banco de dados em uma arquitetura

cliente-servidor, ou standalone. Uma grande vantagem de utilização do HSQLDB é a

possibilidade de agregar o banco de dados ao pacote de nossas aplicações. O

banco é multiplataforma e ocupa um pequeno espaço em disco. Outra característica

do banco é a possibilidade de manipular o banco de dados em disco, memória ou

em formato texto. Essa tecnologia é flexível e muito útil na construção de aplicações

que manipulam banco de dados (SEVERO, 2008). No núcleo do pacote estão o

RDBMS (Relational Database Management System) e o driver JDBC (Java

Database Connectivity) que disponibilizam as principais funcionalidades do banco,

que são: o gerenciador de banco de dados relacional e o driver para conexão

através de aplicações Java. Além disso, o pacote contém um conjunto de

componentes e ferramentas para execução do SGBD (Sistema de Gerenciamento

de Bando de Dados).

Page 22: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

22

3. Desenvolvimento do Aplicativo

Neste capítulo será apresentada a descrição do aplicativo e também a modelagem e

sua especificação.

3.1 Descrição do Problema

Neste projeto, serão desenvolvidos dois aplicativos utilizando as tecnologias Java,

sendo um web e o outro desktop, para o setor imobiliário. Este aplicativo tem duas

funcionalidades, na parte desktop será controlada a parte dos cadastros de clientes

e imóveis, e por fim a parte desktop será integrada com a web, com o objetivo de

visualizar e localizar os imóveis cadastrados em um mapa através da API Google

Maps. Será disponibilizada também a opção de visualizar no mapa outros tipos de

serviços disponíveis naquela localidade (como farmácias, restaurantes, pizzarias e

outros).

3.2 Modelagem do Problema

A modelagem é de suma importância, pois ela serve para dar uma idéia geral do

problema que será abordado. A figura 2 mostra a modelagem do problema, e ela foi

dividida em cinco módulos para facilitar o desenvolvimento de cada parte que

constitui o aplicativo.

Page 23: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

23

Figura 2 – Visão Geral do Sistema.

Módulo 1: Criação do Banco de Dados.

Módulo 2: Desenvolvimento do aplicativo desktop e interface do usuário.

Módulo 3: Desenvolvimento do aplicativo web com a API Google Maps.

Módulo 4: Comunicação XML.

Módulo 5: Integração dos aplicativos.

3.3 Especificação

No desenvolvimento do projeto para o setor imobiliário foi utilizada uma metodologia

orientada a objetos. Tal especificação está representada em diagramas elaborados

com o uso da ferramenta ArgoUML, inteiramente escrita em Java e uma das

principais ferramentas open source de modelagem UML (Unified Modeling

Language) que inclui suporte para a maioria dos diagramas UML 1.4 padrão. Na

Page 24: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

24

especificação foram incluídos os diagramas de casos de uso, diagrama de classes,

os diagramas de sequência e os diagramas de atividade.

3.3.1 Diagrama de Casos de Uso

O Diagrama de Casos de Uso é uma técnica de modelagem usada para descrever o

que um sistema deve fazer definindo seus requisitos funcionais. A figura 3 mostra o

diagrama de caso de uso.

Figura 3 - Diagrama de Casos de Uso.

Page 25: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

25

3.3.2 Especificação dos Casos de Uso

A tabela 1 mostra a especificação do diagrama de caso de uso manter Inquilino.

Caso de Uso: Manter Inquilino

Finalidade/Objetivo: É a funcionalidade responsável de incluir, alterar,

remover e procurar inquilinos no sistema.

Atores: Usuário

Pré-condições: O usuário devera estar autenticado (“logado”) no

sistema.

Evento Inicial: O usuário devera especificar o objetivo (incluir,

alterar, remover ou procurar) ao escolher a opção

inquilino no menu principal do sistema.

Fluxo Principal: 1. O sistema solicita os dados do inquilino;

2. O usuário informa os dados necessários e

confirma a operação;

3. O sistema valida os dados;

4. O caso de Uso é encerrado.

Tabela 1 – Caso de Uso: Manter Inquilino.

Page 26: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

26

A tabela 2 mostra a especificação do diagrama de caso de uso manter Proprietário.

Caso de Uso: Manter Proprietário

Finalidade/Objetivo: É a funcionalidade responsável de incluir, alterar,

remover e procurar proprietários no sistema.

Atores: Usuário

Pré-condições: O usuário devera estar autenticado (“logado”) no

sistema.

Evento Inicial: O usuário devera especificar o objetivo (incluir,

alterar, remover ou procurar) ao escolher a opção

inquilino no menu principal do sistema.

Fluxo Principal: 1. O sistema solicita os dados do proprietário;

2. O usuário informa os dados necessários e

confirma a operação;

3. O sistema valida os dados;

4. O caso de Uso é encerrado.

Tabela 2 – Caso de Uso: Manter Proprietário.

Page 27: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

27

A tabela 3 mostra a especificação do diagrama de caso de uso manter Imóvel.

Caso de Uso: Manter Imóvel

Finalidade/Objetivo: É a funcionalidade responsável de incluir, alterar,

remover e procurar imóveis no sistema.

Atores: Usuário

Pré-condições: O usuário devera estar autenticado (“logado”) no

sistema.

Evento Inicial: O usuário devera especificar o objetivo (incluir,

alterar, remover ou procurar) ao escolher a opção

inquilino no menu principal do sistema.

Fluxo Principal: 1. O sistema solicita os dados do imóvel;

2. O usuário informa os dados necessários e

confirma a operação;

3. O usuário escolhe a opção de incluir um novo

imóvel: (A1), (A2);

4. O sistema valida os dados;

5. O caso de Uso é encerrado.

Fluxo Alternativo: A1. Não Localizar o imóvel.

a. O usuário deseja realizar outra finalidade a não

ser a de incluir um novo imóvel;

b. O sistema segui para o passo 4 do fluxo

principal.

A2. Não Inserir Fotografias.

a. O usuário não tem fotografias do imóvel para

inserir;

b. O sistema segui para o passo quatro do fluxo

principal

Tabela 3 – Caso de Uso: Manter Imóvel.

Page 28: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

28

3.3.3 Diagrama de Classes

O Diagrama de Classes descreve a estrutura estática do sistema em termos de

classes e relacionamentos entre elas, onde estas representam os objetos que são

gerenciados pela aplicação. As classes utilizadas no desenvolvimento deste

aplicativo foram separadas em pacotes, sendo eles:

A figura 4 mostra o diagrama de classes do pacote beans.

Beans

Proprietario: classe responsável por instanciar os clientes do aplicativo;

Imovel: classe responsável por instanciar os imóveis do aplicativo;

Imagem: classe responsável por instanciar a imagem do imóvel do aplicativo;

TipoImovel: classe responsável por instanciar os tipos dos imóveis;

Cidade: classe responsável por instanciar as cidades;

Estado: classe responsável por instanciar os estados;

Cliente: classe responsável por instanciar os clientes do aplicativo;

Fiador: classe responsável por instanciar os fiadores do aplicativo;

Corretor: classe responsável por instanciar o corretor do aplicativo;

Aluguel: classe responsável por instanciar o aluguel de imóvel do aplicativo;

Reserva: classe responsável por instanciar a reserva de imóvel do aplicativo;

Venda: classe responsável por instanciar a venda de imóvel do aplicativo.

Page 29: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

29

Figura 4 – Diagrama de Classe – Pacote beans.

Page 30: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

30

A figura 5 mostra o diagrama de classes do pacote DAO.

DAO

DAO: classe genérica responsável pela comunicação entre beans e banco de

dados;

ProprietarioDAO: classe responsável em armazenar os clientes no banco

dedados;

ImovelDAO: classe responsável em armazenar os imóveis no banco de

dados;

ImovelDAO: classe responsável em armazenar os imagens no banco de

dados;

TipoImovelDAO: classe responsável em armazenar os tipos de imóveis no

banco de dados;

ClienteDAO: classe responsável em armazenar os clientes no banco de

dados;

ClienteDAO: classe responsável em armazenar os fiadores no banco de

dados;

CorretorDAO: classe responsável em armazenar os corretor no banco de

dados;

AluguelDAO: classe responsável em armazenar os alugueis no banco de

dados;

VendaDAO: classe responsável em armazenar as vendas no banco de

dados;

ReservaDAO: classe responsável em armazenar as reservas no banco de

dados.

Page 31: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

31

Figura 5 – Diagrama de Classe – Pacote Dao.

3.3.4 Diagrama de Sequência

Os diagramas de sequência representam a sequência das ações ocorridas em um

conjunto de classes, demonstrando como ocorre a troca de mensagens entre elas.

Para cada caso de uso especificado, há um diagrama de sequência, conforme

detalhamento apresentado.

3.3.4.1 Diagrama de Sequência - Manter Proprietário

Este diagrama de sequência representado na figura 6 mostra as ações que podem

ser executadas neste caso de uso, tais como: inserir, pesquisar, alterar e excluir

proprietário.

Page 32: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

32

Figura 6 – Diagrama de Sequencia – Manter Proprietário.

Page 33: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

33

3.3.4.2 Diagrama de Sequência - Manter Inquilino

Este diagrama de sequência representado na figura 7 mostra as ações que podem

ser executadas neste caso de uso, tais como: inserir, pesquisar, alterar e excluir

inquilino.

Figura 7– Diagrama de Sequencia – Manter Inquilino.

Page 34: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

34

3.3.4.3 Manter Imóvel

O diagrama de sequência que está representado na figura 8 mostra as ações que

podem ser executadas neste caso de uso, tais como: inserir, pesquisar, alterar e

excluir imóveis.

Figura 8 – Diagrama de Sequencia – Manter Imóvel.

Page 35: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

35

3.3.5 Diagrama de Atividades

O diagrama de atividades visa representar o controle de fluxo das informações entre

as atividades de um sistema. Na figura 9, é apresentado o diagrama de atividades

do aplicativo.

Figura 9 – Diagrama de Atividade

Page 36: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

36

3.4 Implementação do Aplicativo

Nesta seção, serão apresentadas as implementações dos aplicativos desktop e web

para o setor imobiliário integrado com a API Google Maps. Para a implementação

dos aplicativos foi utilizada a tecnologia Java com banco de dados HSQLDB.

3.4.1 Aplicação Desktop

A aplicação desktop foi criada para parte toda de cadastro, movimentações e

relatórios do aplicativo.

Figura 10 – Tela de Login - Primeiro contato do usuário com o Aplicativo.

Page 37: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

37

Após efetuar o login, o usuário tem acesso a interface de Menu Principal do

Aplicativo Desktop. Onde o usuário pode realizar cadastros, vendas, locações e

reserva dos imóveis cadastrados.

Figura 11 – Tela Principal do Aplicativo Desktop.

Page 38: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

38

A figura 12 mostra a interface de cadastro de Imóvel, acessível quando um usuário

deseja incluir, buscar alterar ou excluir um imóvel.

Figura 12 – Interface de Cadastro de Imóvel

Para inclusão de um imóvel basta clicar no botão “Novo” onde tem um ícone em

forma de “+”, para que o sistema limpe os campos do cadastro. Alguns desses

campos são obrigatórios, depois de preenchê-los corretamente, para confirmar a

inclusão o usuário deve clicar no botão “Salvar” com ícone em forma de um

disquete.

Para excluir ou alterar um imóvel, o usuário primeiro deve selecionar o imóvel

desejado, clicando no botão “Buscar” com ícone em forma de uma lupa. Após a

escolha do mesmo, serão carregadas todas as informações nos campos

correspondentes, agora basta escolher entre alterar dados ou exclui-los através dos

botões “Salvar” e “Excluir”.

Page 39: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

39

Como mostra na figura 12, existe um botão chamado “Imagens” onde podemos

visualizar imagens do imóvel cadastrado. O usuário pode incluir, alterar e excluir

essas imagens. A figura 13 mostra a tela imagens.

Figura 13 – Interface de Cadastro de Imagens.

Page 40: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

40

A figura 14 mostra a interface de venda de imóveis.

Figura 14 – Interface de Venda de Imóveis.

Page 41: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

41

3.4.2 Aplicação Web

Nesta seção, será apresentada a implementação do aplicativo web, onde o cliente

pode visualizar todos os imóveis cadastrados na imobiliária. A figura 15 mostra a

pagina de boas vindas ao visitante do aplicativo.

Figura 15 – Página Inicial da Aplicação Web

O usuário tem três opções para navegação na aplicação: home, imóvel e contato.

Home: Acesso a página inicial da aplicação;

Imóvel: Nesta opção temos dois sub menu:

o Todos: Mapear todos os imóveis cadastrados na API;

o Buscar: Procurar um determinado imóvel, se encontrado visualizar no

mapa;

Contato: Alguns contatos, dados da imobiliária.

Page 42: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

42

3.4.3 Integração da aplicação web ao Google Maps

Para a utilização da API do Google Maps é necessário fazer o download da mesma

que se encontra no site da Google Code. Esta API é um arquivo do tipo “.jar” que

deve ser importado para o pacote de bibliotecas, fazendo com que ele seja integrado

em seu projeto web. Para cada imóvel cadastrado é gerado dinamicamente um

marcador no mapa contendo o código do imóvel, sendo capaz de localizar

geograficamente o local exato do imóvel desejado.

As aplicações web e desktop utilizam o mesmo banco de dados, para que todos os

imóveis já cadastros possam ser mapeados. A figura 16 mostra alguns imóveis

cadastrados com marcadores na Google Maps API.

Figura 16 – Página com mapeamento dos imóveis.

Para gerar uma lista de todos os imóveis, o usuário deve selecionar o menu Imóvel e

em seguida Todos. Nesta lista constam as informações de todos os imóveis

cadastrados, onde cada um deles representa um marcador.

Page 43: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

43

A figura 17 mostra um exemplo de um marker dinâmico, onde mostra a fachada de

um imóvel cadastrado no banco de dados.

Figura 17 – Página com um marcador dinâmico.

Page 44: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

44

4. Conclusão

Este projeto foi motivado pelo crescente interesse na utilização de aplicação web

com integrações com mapas, tanto nacionalmente como internacionalmente. O

grande desafio no desenvolvimento deste projeto está no fato de adquirir

conhecimento em aplicações web com a API Google Maps, utilizando as tecnologias

Java, bem como aprender técnicas e métodos para realizar a integração entre as

aplicações.

Outros fatores importantes são as pesquisas realizadas para o aprendizado das

tecnologias utilizadas, tendo assim um amplo conhecimento para o desenvolvimento

de aplicativo como o proposto no projeto.

A experiência obtida no desenvolvimento deste projeto é de suma importância para

realizar outros trabalhos futuros, pois será utilizado como base para

desenvolvimento de aplicações para dispositivos móveis utilizando este tipo de

tecnologia, principalmente com a utilização da API Google Maps.

Page 45: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

45

5. Referências Bibliográficas APACHE TOMCAT.: Website oficial Apache Tomcat. Disponível em: <http://tomcat.apache.org/>. Acesso junho de 2011. ARMSTRONG, E; BALL, J; BODOFF S.: The J2EE Tutorial. Sun Microsystems, 2005. AZEVEDO, C.: Imasters: Por Uma Internet Mais Criativa e Dinâmica, Disponível em: <http://imasters.uol.com.br/artigo/7832/programacao/google _maps_api/>. Acesso em outubro de 2010. BONFIN JUNIOR, F.: JSP – Java Server Pages – A tecnologia Java na Internet. 2ed. São Paulo: Editora Érica, 2002. DEITEL, H.M., Java como programar, trad. Carlos Arthur Lang Lisbôa, 4ed. Bookman, Porto Alegre, 2003 FURTADO JUNIOR, M. B.: Tutorial XML - Extensible Markup Language. Universidade Federal do Rio de Janeiro, Disponível em: <http://www.gta.ufrj.br/grad/00_1/miguel/index.html>. Acesso em maio de 2011. GIGAFLOPS.: Java Server Pages. Disponível em: <http://gigaflops.tripod.com/ page/lp/jsp/jsp.html >. Acesso em abril 2011. GINIGE, A., MURUGESAN, S., Web Engineering: an Introduction, IEEE Multimedia, Vol. 8, Issue: 1, 2001 GOOGLE DEVELOPER GUIDE.: Google Maps Java API Data, Disponível em: <http://code.google.com/intl/ptBR/apis/maps/documentation/mapsdata/developers _guide_java.html>. Acesso em maio 2011. GOOGLE MAPS. Disponível em: <http://maps.google.com.br/maps?ct=reset>. Acesso em maio 2011. KURNIAWAN, B., Java para a Web com Servlets, JSP, EJB, 1a edição, 2002. LEMAY, L. e PERKINS, C.L., Teach Yourself Java in 21 Days, Sams.net Publishing, 1996. LIMERIA, J. L. S.. Utilização de AJAX no desenvolvimento de sistemas Web. Porto Alegre: 2006.

Page 46: Marcos Paulo Silva dos Santos · 2014-02-12 · realizar pesquisas, visualização de mapas e imagens de satélite da Terra e possibilita a produção de um mapa personalizado completo,

46

LIU, S.: Getting Started with the Google Data Java Client Library, 2007, Disponível em: <http://code.google.com/intl/pt-BR/apis/gdata/articles/java_ client_lib.html>. Acesso em maio 2011. POTTS, A. e FRIEDEL JR, D. Java programming language handbook, CH., Coriolis Group Books, 2004. PRESSMAN, R. Engenharia de Software, Rio de Janeiro, McGraw Hill, 2002. SEVERO, C. E. P.: HSQLDB: um banco de dados livre escrito em Java, Grupo de usuários Java, 2008. SOBRAL, C.Y., Tecnologias Java para Desenvolvimento Web Utilizando a API Google Maps, Trabalho de Conclusão de Curso, Fema-Imesa, 2010 SOBRAL, C.Y. e NITTO,M.A., Tecnologias Java para Desenvolvimento Web Utilizando a API Google Maps, III Fórum de Ciências e Tecnologia, FEMA, 2010. SOUZA NETO, W. P.: Usando Api do Google Maps para criar um mapa interativo, Universidade Federal de Viçosa, 2009.