Download INMO: A Web Architecture For Real Estate Search Systems

Document related concepts
no text concepts found
Transcript
INMO: A Web Architecture For Real Estate
Search Systems
L. Martínez, J. Contreras, Member, IEEE, R. Mendoza and P. Torres
Abstract— This paper describes the development of a real
estate electronic marketplace based on platform J2EE. A novel
real estate search method based on Google Maps APIs is
included. We explain the approach we propose on a prototypical
implementation exhibiting the described functionality.
Keywords— software architecture, information systems, J2EE,
real estate, geo localization, marketplace, Google Maps.
E
I. INTRODUCCIÓN
L SECTOR inmobiliario, es un excelente escenario en el
desarrollo de soluciones informáticas que apunten a una
innovación en los procesos inmobiliarios a través de
plataformas y aplicaciones dinámicas que generen crecimiento
al sector y promoción de sus servicios. Se ha comprobado, que
las operaciones inmobiliarias de alguna manera se originan
por medio de Internet, facilitando al cliente, una comunicación
directa con el vendedor. Para conseguirlo, el diseño
estructural, arquitectura e implementación de la aplicación
debe estar bien pensado y ejecutado [1]-[4].
INMO es una propuesta arquitectónica para el
modelamiento de aplicaciones del sector inmobiliario, bajo
una arquitectura cliente servidor, desarrollada en plataforma
Java Enterprise Edition, bajo las tecnologías: JSF (Java Server
Faces), JPA (Java Persistence API), ORM (Object-Relational
Mapping Hibernate), y Spring Framework integrado al CMS
Content Management System Drupal.
INMO como aplicación web es un Marketplace
Inmobiliario que integra un sin número de agencias
inmobiliarias en un mismo sitio. Estos entornos virtuales
facilitan procesos de negocio entre empresas y la relación
entre compradores y vendedores [5], [6]. También, es un
CRM (Customer Relationship Management) que ayuda a las
relaciones entre agentes de ventas y clientes creando una
relación directa de mercadeo, además de las diferentes
estadísticas que ayuda a los gestores de venta [7],[8].
La arquitectura también integra herramientas para la
búsqueda de inmuebles como el API Street View y Google
Maps con el fin de disponer de una vista en 3D de la zona, al
L. Martínez, Corporación Universitaria Rafael Núñez, Cartagena,
Colombia, [email protected].
J. Contreras, Corporación Universitaria Rafael Núñez, Cartagena,
Colombia, [email protected].
R. Mendoza, Fundación Universitaria Tecnológico Comfenalco,
Cartagena, Colombia, [email protected].
P. Torres, Fundación Universitaria Tecnológico Comfenalco, Cartagena,
Colombia, [email protected].
igual que incluir servicios de ayuda para los clientes y recibir
alertas personalizadas según las preferencias del usuario.
II. MARCO TEÓRICO
A. Arquitectura J2EE
J2EE es una plataforma abierta de desarrollo empresarial
que define un estándar para el desarrollo y despliegue de
aplicaciones empresariales multicapa con n-niveles, basadas
en servidor, distribuidas y en componentes. La plataforma
J2EE conforma un conjunto de especificaciones que proveen
de servicios y componentes en todos los niveles de una
arquitectura para la creación de aplicaciones clientes y para
desarrollar grandes aplicaciones distribuidas de servidor [9][12].
Una aplicación J2EE está formada por un conjunto de
componentes que se ensamblan y despliegan en contenedores
o piezas de software que ofrecen acceso a los servicios de los
componentes desplegados dentro del contenedor. A su vez los
contenedores forman parte de los servidores de aplicaciones,
que implementan los servicios que ofrecen los contenedores a
los componentes.
B. API Google Map y Street View
Google Maps es un servicio de mapas al que se accede
desde un navegador web y dependiendo de la ubicación
geográfica, se pueden ver mapas básicos o personalizados e
información sobre negocios locales, como ubicación, datos de
contacto, indicaciones sobre cómo llegar hasta ellos, etc. En
estos mapas se pueden ver al instante las áreas adyacentes sin
tener que esperar a que se carguen Imágenes por satélite con
datos de mapa superpuestos [13], [14].
Por su parte, Street View, es un complemento de los mapas
de Google, que permite hacer recorridos virtuales de 360
grados por las calles de una ciudad. La aplicación de
georeferenciación, fue lanzada en 2007 con el propósito de
complementar las plataformas Google Maps y Google Earth y
permitirles a los navegadores ver y recorrer las panorámicas
de espacios públicos y atractivos turísticos. Street View, como
parte de Google Maps, permite ver durante un
desplazamiento, las indicaciones de sentido de las vías, giros,
nombres y números de las calles para ir de un lugar a otro de
manera guiada [15].
III. DESCRIPCIÓN DE LA ARQUITECTURA
Arquitectura es un concepto indispensable entre las
aplicaciones hoy en día y se refiere a la combinación e
integración de múltiples ambientes y plataformas. Los
sistemas de información pueden moldearse según el estilo de
arquitectura de niveles de abstracción o capas.
INMO es una aplicación web desarrollada en lenguaje Java
en una arquitectura N - Capas, donde los clientes se conectan
a la aplicación a través de una conexión HTTP o HTTPS. Para
la comunicación entre objetos se utiliza el Framework Spring
en su versión 3.0 para la inyección de dependencia, lo cual
permite desacoplar las clases, componentes u objetos.
La comunicación de la aplicación se desarrolla por medio
de mensajes entre objetos, y como su arquitectura es N-Capas,
su comunicación al nivel más bajo es de tipo RMI (Java
Remote Method Invocation), el cual forma parte del entorno
estándar de ejecución de Java y proporciona un mecanismo
simple para la comunicación de servidores en aplicaciones
distribuidas.
INMO presenta un modelo de capas separadas, lo que la
hace extensible y fácil de mantener. Cada capa tiene una
función muy específica y a través de APIs existirá una
comunicación entre la presentación, la lógica de negocio y el
acceso a datos. Este estilo se organiza de forma jerárquica,
donde cada capa ofrece servicios a la capa superior y la capa
inferior a los usuarios finales. El modelo básico de la
arquitectura propuesta se puede observar en la Fig. 1, en
donde la comunicación entre la parte cliente y servidor en este
caso se puede considerar como contenedores de servicios.
La Capa de presentación representa la interfaz de usuario
que maneja el cliente a través de un navegador web, donde un
archivo JSP (Java Server Pages) muestra la información en el
navegador del cliente. En esta capa se utilizan Prime Faces
para controlar que componentes de la página actual se
actualizarán y cuáles no; JSF con el fin de simplificar el
desarrollo de las interfaces de usuario en la aplicación y
Managed Beans para manejar los datos y su instanciación y
hacerlo disponible en las páginas JSP, además de removerlo
cuando su scope haya salido de contexto.
Figura 1. Arquitectura INMO.
En el modelo de negocio encontramos el componente de
búsqueda inmobiliaria que muestra el estado de cada uno de
los inmuebles y localización geográfica, de acuerdo a distintos
tipos de búsqueda: mapas, nombre de inmuebles, rango,
inmobiliarias, código, zona, tipo de negocio, etc.
Consultar Por tipo de
inmueble
Consultar Por rango
precio
Consultar Por
inmobiliaria
Consultar Por tipo de
negocio
Consultar Por
cantidad de
habitaciones
Consultar Por zona
Usuario (Clientes )
Consultar Por ciudad
Consultar Por código
Búsqueda por mapa
Consultar Por
departamento
Cionsultar por mapa
Por su parte, la Capa de Negocio, contiene los
componentes de negocio reutilizables y reúne todos los
aspectos del software que automatizan o apoyan los procesos
que llevan a cabo los usuarios y está compuesta por un
conjunto de servicios web y objetos de negocio utilizando el
Framework de aplicaciones Spring 3.0. El framework separa
el acceso a datos de los aspectos relacionados con las
transacciones, con el fin de permitir objetos en la capa de
negocio reutilizables que no dependan de ninguna estrategia
de acceso a datos.
Figura 2. Caso de Uso de componente de Búsqueda.
Este componente de búsqueda se conecta con el API de
Google a través de un Web Service consumiendo los recursos
de la aplicación y mostrando detalles del inmueble,
principalmente información del entorno en el que está
ubicado, información sobre qué hay y qué se ve alrededor,
paisaje y vistas de la calle, volumen de tráfico, tiendas que hay
alrededor, estado del barrio, información sobre cómo se ve la
vivienda desde la calle, el estado de la fachada y de las aceras,
la altura del edificio y vista de la entrada desde la calle.
Arquitectura”. Dentro de las capas servidor y cliente se
realizaron pruebas unitarias a las clases generadas. Para esto
se utilizó la herramienta que automatiza este tipo de pruebas
para el lenguaje de programación Java denominada JUnit.
Figura 3. Información general del inmueble solicitado en la búsqueda.
Con el framework JUnit se realizaron las pruebas unitarias
al código a través de la ejecución de clases Java para verificar
si el funcionamiento de cada una de los métodos de las clases
que componen el proyecto se comporta como se espera. Se
definieron los casos de prueba principalmente para la
búsqueda de inmuebles y se compararon los resultados.
Después de realizarles las pruebas, se observa que se
cumplieron con las especificaciones, por lo tanto JUnit
devuelve el método de la clase lo que indica que el
procedimiento fue exitoso. A su vez, se hicieron pruebas de
integración de los distintos componentes. Esta prueba fue
fundamental para un despliegue de la aplicación exitoso, como
se muestra en la Fig. 5 y 6.
Figura 4. Ubicación geográfica utilizando la API de Google maps.
En la Capa de Acceso a Datos se utiliza tanto JPA como
DAO. Aquí los datos compartidos entre los componentes web
y las invocaciones de persistencia de la aplicación se
mantienen en una base de datos MySQL, utilizando JPA para
accederla. Con DAO (Objetos de Acceso a Datos) se busca
aislar a la aplicación de la tecnología de persistencia Java
subyacente (API de Persistencia Java), la cual podría ser
JDBC, JDO, Enterprise JavaBeans, Hibernate, o cualquier otra
tecnología de persistencia. Usando Objetos de Acceso de
Datos significa que la tecnología subyacente puede ser
actualizada o cambiada sin cambiar otras partes de la
aplicación.
Figura 5. Modulo administrativo Ingreso de Inmuebles.
Por último, la capa de integración está enfocada en permitir
la integración entre una implementación del aplicativo y
cualquier otro sistema de la organización. Esta incluye el
servicio de mensajería como mecanismo de comunicación
utilizando Java Message Service (JMS) y Simple Object
Access Protocol (SOAP).
La aplicación, se despliega bajo un servidor de aplicaciones
Glasfish, en el cual se configura un pool de conexiones para el
manejo de concurrencia. Este servidor de aplicaciones tiene
una manera peculiar de tratar los recursos JDBC: Tiene un
pool de conexiones, y después un JDBC Resources. Lo
anterior, debido a que un pool de conexiones puede tener
varios JDBC Resources.
Figura 6. Simulador de credito inmobiliario.
Por último, se hicieron pruebas de integración alfa y beta
realizadas por los usuarios expertos, con el fin de comprobar
si el producto está listo para ser implantado para el uso
operativo en el entorno del usuario.
V. CONCLUSIONES
IV. RESULTADOS
Para validar la arquitectura propuesta, se procedió a la
implementación de un software, que utiliza las herramientas,
tecnologías e infraestructura descrita en III, “Descripción de la
El sector inmobiliario depende en gran medida que posibles
clientes reciban la información que necesitan en el momento
indicado y de la forma más adecuada para captar su atención.
J2EE puede ser la mejor opción al escoger una tecnología
sobre la cual desarrollar aplicaciones empresariales ya que
posee un alto grado de estructuración además de ofrecer
aplicaciones robustas, escalables, flexibles y portables. Con
este conjunto de tecnologías se construyó el portal
inmobiliario, sistema que cuenta con un componente de
búsqueda de inmuebles, con la capacidad de generar y mostrar
resultados precisos y contextualizados de la información
contenida en el sitio.
La principal ventaja del aplicativo INMO en comparación
con una página web de búsqueda de inmuebles, es que es un
CRM en el cual el agente tiene una comunicación directa con
los clientes de manera integrada. Además permite guardar los
resultados de las búsquedas de los clientes, con el fin de que
las inmobiliarias y los agentes organicen sus bases datos de
posibles clientes potenciales tomando como referencia los
intereses de estos.
Por otra parte, permite posicionamiento de inmuebles
basados en algoritmos de puntuación, cuenta con conexión
con Google Street View, de igual manera se debe tener en
cuenta que en el aplicativo pueden existir diferentes
inmobiliaria en un solo esquema y siempre se respeta la
integridad de cada una, complementando todo lo anterior, la
carga de imágenes mediante comprensión lo cual permite
rapidez a la hora de subirlas, sumándole a todas estas la
ventaja de un simulador de crédito, que permite a los clientes
tener como referencias cuales serían los diferentes valores de
las cuotas para créditos hipotecarios.
Por su parte, el portal administrativo fue implementado a
través de plataforma Java, el cual integra herramientas como
Street View y Google Maps con el fin de disponer de una vista
en 3D de la zona, al igual que incluir servicios de ayuda para
los clientes y recibir alertas personalizadas según las
preferencias del usuario.
Este portal administrativo también cuenta con un completo
módulo de administración de inmuebles, inmobiliarias,
clientes, agentes, entre otros datos que pueden ser gestionados
de forma dinámica.
A continuación se muestra una comparación entre el
sistema INMO y dos de los sistemas de software para el sector
inmobiliario más importantes del mundo: Zillow
(http://www.zillow.com/) y Trulia (http://www.trulia.com/).
TABLA I. COMPARACIÓN CON OTROS SOFTWARE DEL SECTOR INMOBILIARIO.
CRITERIO
Búsqueda
Mapas
Vista de
Calle
CRM
Multimedia
Modelo
negocio
INMO
Si
ZILLOW
Si
TRULIA
Si
la
Si
Si
Si
Si
Imagen
Si
Imagen
de
Si
Imagen y
video
Realtor
Business
Solutions
Si
Publicidad
Publicidad
No
Si
Si
Si
Si
Si
Si
Si
Simuladores de
crédito
Información
demográfica
Responsive
Design
Si analizamos la tabla anterior, podemos concluir que la
plataforma INMO se encuentra en un buen nivel
arquitectónico teniendo en cuenta los sitios web inmobiliarios
con los cuales fue comparado.
Como trabajo futuro, se plantea el desarrollo en entorno
móvil nativo, dado que por ser una arquitectura n-capas y
además de estar su capa de presentación en JSF
implementando el framework Primefaces es de fácil
escalabilidad al ambiente móvil, ya que Prime Faces permite
el desarrollo tanto en ambientes móviles como web.
Actualmente ofrece una plantilla en Drupal basada en HTML5
Responsive Design.
VI. AGRADECIMIENTOS
El grupo de investigadores agradece al Departamento
Administrativo de Ciencia, Tecnología e Innovación de
Colombia, COLCIENCIAS, por la financiación de este
proyecto mediante el contrato No. 0099 – 2012.
REFERENCIAS
[1]
[2]
[3]
[4]
[5]
V. Urbanavičienė. A. Kaklauskas, E. K. Zavadskas, and M. Seniut, “The
Web–Based Real Estate Multiple Criteria Negotiation Decision Support
System: A New Generation of Decision Support Systems”, International
Journal of Strategic Property Management, vol. 13, pp. 267-286. 2009.
V. Urbanavičienė. A. Kaklauskas, E. K. Zavadskas, and M. Seniut, “The
Web–Based Real Estate Multiple Criteria Negotiation Decision Support
System: A New Generation of Decision Support Systems”, International
Journal of Strategic Property Management, vol. 13, pp. 267-286. 2009.
B. Resch and B. Zimmer, User Experience Design in Professional MapBased Geo-Portals. International Journal of Geo-Information, vol. 2, pp.
1015-1037. 2013.
M. Wang and A. Xu. Architecture and Implement for the Real Estate
Surveying Business System. Advances in information Sciences and
Service Sciences(AISS), vol 5, no. 2, pp. 678-684. 2013.
J. Guo, L. Xu, Z. Gong, Ch-P. Che and S. Chaudhry, “Semantic
Inference on Heterogeneous E-Marketplace Activities”. IEEE Trans. on
Systems, Man, and Cybernetics. vol. 42, no. 2, pp. 316-330. 2012.
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
S.Hariharaputhiran, “Challenges and Opportunities of E-Commerce”,
International Journal of Marketing, Financial Services & Management
Research, vol. 1, no. 3, pp. 98-1o8, 2012.
F. Maroofi, B. M. Aliabadi, H. Fakhri and Hadikolivand. Effective
Factors on CRM Development. Asian Journal of Business Management,
vol. 5, no. 1, pp. 52-59. 2013
D. Das and P. Kundu. Applications of Dynamic Program Analysis in a
CRM Process: A Futuristic Concept. International Journal of Scientific
and Research Publications, vol. 2, no. 4, pp. 1-13. 2012.
R. Udayakumar, .K.P. Thooyamani and V. Khanaa. A Comparison of
J2EE and .NET as Platforms for Developing E-Government
Applications. International Journal of Engineering Research and
Development, vol 7, no. 1, pp. 116-121. 2013.
H. Li-Xia, Z. Feng-Qing, J. Shu-Hong and M. Chao-Hua, “Design and
Analysis of the Third-party Logisitics Management System Based on
J2EE”, Advanced Engineering Forum, vol. 6, pp. 491-495. 2012.
O. Morariu, C. Morariu and T. Borangiu, “Transparent Real Time
Monitoring for Multi-tenant J2EE Applications”, Journal of Control
Engineering and Applied Informatics, vol.15, no.4 pp. 37-46, 2013.
D. Krafzig, K. Banke, D. Slama, “Enterprise SOA Service-Oriented
Architecture Best Practices”. Prentice Hall. April 2005.
Sh. Hu, and T. Dai. Online Map Application Development Using Google
Maps API, SQL Database, and ASP.NET. International Journal of
Information and Communication Technology Research, vol. 3, no. 3, pp.
102-110, 2013.
Z. Yu-lin and F. Zhong-liang, “Release of spatial information based on
Google Maps API”, Journal of Computer Applications, vol. 5, pp. 14501452, 2011.
V. Ganesh and L.G.Malik. Text Extraction From Big Data Images.
International Journal of Advanced Research, vol 2, no. 5, pp. 844-854.
2014.
Laura Martínez es Ingeniera de Sistemas de la universidad
de San Buenaventura y Magister en Ingeniería de Sistemas de
la Universidad Tecnológica de Bolívar. Entre sus áreas de
interés se encuentran la ingeniería de software, Computación
móvil, metodologías agiles en el desarrollo de software e
ingeniería ontológica.
Juan Contreras. Se graduó de Ingeniero Electricista en 1987
en la Universidad Tecnológica de Bolívar y como especialista
en Automatización Industrial en 1998 en la misma
universidad. En el año 2008 obtuvo el título de PhD en el
Instituto Superior Politécnico José Antonio Echeverría, en La
Habana, Cuba. Su campo de interés incluye la Identificación
de Sistemas, Control Inteligente y el desarrollo de métodos de modelación y
control difusos.
Raynel Mendoza es Ingeniero de Sistemas de la Fundación
Universitaria Tecnológico Comfenalco, de Cartagena,
Colombia, y Magister en Software Libre de la Universidad
Politécnica de Cataluña, España, y actualmente adelanta
estudios de Doctorado en Tecnología en la Universidad de
Girona, España. Entre sus áreas de interés se encuentran la
ingeniería de software, software educativo, ingeniería ontológica y las
tecnologías para la gestión de procesos de negocios.
Pedro Torres. Se graduó de Ingeniero de Sistemas en la
Fundación Universitaria Tecnológico Comfenalco en el año
2012. Su campo de interés ha sido el desarrollo de software.