Download Investigación de Herramientas en Formato DOC

Document related concepts
no text concepts found
Transcript
NUBI
INVESTIGACIÓN DE HERRAMIENTAS
2016
Carlos Felipe Peña Gómez
Diego Felipe Ramírez Salamanca
Ventajas
-Experiencia
Desventajas
con
proyectos
previos por parte del equipo de - Muchas versiones del sistema
trabajo.
operativo y dispositivos que no
se actualizan puede reducir el
- Acceso sin restricciones al rango de terminales que pueden
Desarrollo nativo para hardware del dispositivo.
Android
-Amplia
hacer uso de la aplicación.
documentación
y -Integración
con
servidores
soporte.
compleja.
- Control de versiones.
-Ligado a solo un tipo de S.O
-Amplio dominio de lenguajes -Diseño de interfaz requiere
utilizados (JAVA).
mayor esfuerzo y tiempo.
- Acceso sin restricciones al
hardware del dispositivo.
Desarrollo nativo para
iOS
-Ambiente
de
desarrollo
intuitivo.
con
del equipo de trabajo.
-Necesita equipos IOS y PC
MAC.
-Población
-Desarrollo ágil,
-Lenguaje
- Sin experiencia previa por parte
curva
de
aprendizaje rápida.
reducida
con
respecto a usuarios Android.
-Integración
Compleja
con
servidores.
- Experiencia con proyectos
previos por parte del equipo de
trabajo.
Desarrollo híbrido en - Uso de un mismo código para
Ionic
diferentes dispositivos, por lo que
la aplicación puede funcionar
tanto en iOS como en Android.
- Diseño e implementación en
menor tiempo.
- Acceso restringido al hardware
del dispositivo.
- Falta de experiencia con
Angular GS.
- Integración de sensores es
compleja.
- Falta de experiencia para
integración con API externa.
-Documentación,
foros
y
comunidades con información y
respuesta a problemas.
-Diferentes
ambientes
de
desarrollo.
- Experiencia con Java Script,
síncrono y asíncrono, HTML,
CSS y responsive Design.
- Integración con Tecnologías
JBoss y NodeJS.
Tecnología a usar
●
Cliente:
Dado el uso de sensores para el correcto funcionamiento de la aplicación se consideraron 3 maneras
para desarrollar aplicaciones móviles, estas son: desarrollo nativo para Android, desarrollo nativo
para iOS, y desarrollo híbrido para dispositivos con sistema operativo Android, Windows Phone y
iOS, realizado con Phonegap.
Para la elección se consideraron diferentes aspectos, como el acceso al hardware de la herramienta,
el porcentaje de cada uno de los sistemas operativos en el mercado y la experiencia previa del equipo
de trabajo en las plataformas previamente mencionadas.
La siguiente gráfica muestra el porcentaje total de ventas de dispositivos móviles (teléfonos celulares
y tablets), en donde se puede ver que el sistema operativo Android es quien lidera en el mercado de
estos dispositivos.
https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=8&qpcustomd=1
A continuación, se analizará cada uno de las maneras de desarrollo en dispositivos móvil, detallando
las ventajas y desventajas en el uso de cada herramienta
Ventajas
Desarrollo nativo para Android
Desventajas
- Experiencia con proyectos - Muchas versiones del sistema
previos por parte del equipo de operativo y dispositivos que no
trabajo
se actualizan puede reducir el
rango de terminales que pueden
hacer uso de la aplicación
- Acceso sin restricciones al
hardware del dispositivo
Desarrollo nativo para iOS
- Acceso sin restricciones al - Sin experiencia previa por
hardware del dispositivo
parte del equipo de trabajo
Desarrollo híbrido en Phonegap
- Experiencia con proyectos - Acceso restringido al hardware
previos por parte del equipo de del dispositivo.
trabajo
- El usuario debe esperar más
- Uso de un mismo código para por una respuesta de la
diferentes dispositivos
aplicación en comparación con
desarrollos nativos
Sensores
De acuerdo a la investigación y posibles mecanismos que permitan mejorar la precisión de NUBI el
equipo de trabajo consideró los siguientes sensores, ya que se encuentran en casi todos los dispositivos
móviles actuales:
●
GLONASS A-GPS: Sensor que permite la captura de la posición del dispositivo mediante
localización geodésica, su principal función en NUBI radica en el apoyo a rutas y distancia
entre puntos.
Servidor
La selección de herramientas de desarrollo para la parte servidor de NUBI se realizó con base en los
aspectos:
1. Tecnologías conocidas por el equipo de trabajo.
2. Curva de aprendizaje
3. Viabilidad de adaptación y mantenimiento.
Para el ambiente de ejecución del servidor se optó por revisar 3 tecnologías que permitirán cumplir
con las características anteriores y que permitan desarrollo por componentes, flexibilidad y usadas en
la industria.
La siguiente tabla muestra las características de cada tecnología candidata
Aspecto a Evaluar
Node.js
Java EE
Capacidad de integración
Permite
componentes externos
dependencias del kernel
integrar
API’s
Jboss
de
Java
y sistemas
externos mediante WSDL
npm y sistemas externos
API’s de Java y conexión a
sistemas Externos por WSDL
y REST
con XML y JSON
Lenguaje Nativo
JavaScript Angular
Java
Java
Ambiente de ejecución
Node js
Glasfish Jboss
Wildfly Jboss Glassfish
Estilos Arquitecturales
MVC y REST
Cualquiera
Cualquiera - REST
Documentación
Comunidades
Oracle, Stackschange, API
RedHAt,
Stackschange
Uso en la industria
Curva de Aprendizaje
Comunidades
+
Moderada
Conocimiento por parte
wildFly
+++
Moderada
+++
Rápida
+
++
++
Bajo
Medio
Alto
del equipo de trabajo
Desempeño en grandes
sistemas
Referencias
https://www.techempower.com/benchmarks/
https://www.linkedin.com/pulse/nodejs-vs-java-which-faster-apis-owen-rubel
https://benchmarksgame.alioth.debian.org/u64q/javascript.html
http://www.oracle.com/technetwork/java/javaee/overview/index.html
https://docs.oracle.com/javaee/7/tutorial/
https://nodejs.org/es/docs/
http://stackoverflow.com/tags/node.js/info