La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

GeneXus & Mobile Application: presente y futuro

Presentaciones similares


Presentación del tema: "GeneXus & Mobile Application: presente y futuro"— Transcripción de la presentación:

1

2 GeneXus & Mobile Application: presente y futuro
Claudia Murialdo, Rodrigo Alvarez ARTech Hace un año apróximadamente, liberamors el generador para Pocket PC, como "LA" solución GeneXus para movilidad A lo largo de este año, varias empresas  han utilizado este generador , ralizando aplicaciones impresionantes, como es el caso de Heurys, que lo va a exponer a continuación. De todo esto hemos aprendido, a partir de ese proceso, varias cosas, la idea de hoy es compartir con ustedes ese proceso de aprendisaje, en el cual se encuentran tanto best practices de programación, como también deberes para nosotros. A que me refiero con deberes? Como ustedes saben el generador Pocket PC genera un lenguaje llamado EVB, que es un subconjunto de Visual Basic, que como tal cuenta con una gran lista de limitaciones, lo que nos implicaba no poder tener todo el potencial de GeneXus en los aplicativos generados. El año pasado en la charla relacionada, comentabamos que la alternativa que ibamos a manejar a futuro era trabajar con Compact framework, que es al igual que el framework de .NET, un conjunto de herramientas para realizar aplicaciones moviles. En ese porceso estamos... Es por eso que hoy le vamos a mostrar lo que va a ser el nuevo generador para aplicaciones moviles, vamos a hablar de las ventajas que tiene sobre su antecesor, y vamos a ver que todo aquello que aprendimos en este año, o que hicimos con Pocket PC, nos va a servir, ya que GeneXus nos va a encapsular, como muchas veces lo ha hecho, este cambio de tecnología.

3 GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO
Supongamos entonces que queremos hace una aplicación móvil, como todo porceso de desarrollo, vamos a seguir los siguientes pasos: Analisis Diseño Generáción Y luego vamos a ver como conecto la aplicación con el mundo, hablando de la Conectividad PROTOTIPO

4 GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

5 Análisis (I) Plataforma Web Win Base de datos local Cliente Servidor
Las dos anteriores Supongamos que tengo entonces una lista de requerimientos sobre una aplicación que tiene que ejecutarce en un dispositivo móvil. No se si notaron que no estoy diciendo Pocket PC, si no dispositvo móvil, la idea es no restringirnos a un solo aparato, como veremos mas adelante. Podemos decir que hay dos tipos de aplicaciones basicamente, aplicaciones que esten full conectadas, o aplicaciones que no esten conectadas o simplemente que se conecten, pero no podamos garantizar la conectividad 7x24. En el primer caso, podriamos hacer una aplicación web, podriamos inclusive usar GXPortal, que trae un modulo para dispositivos móviles en el que las ventanas sonmas chicas, etc. En este caso la logica ejecutaría en el servidor web, y no necesito nada particular. La verdad las tecnologias de acceso no pueden aún garantizar un 7x24, muchas veces esta solución no nos va a servir, por lo que vamos a encarar el segundo punto, tener una aplicación corriendo en el aparato. Una aplicación con un form windows. Dentro de esta gama de aplicaciónes podriamos decir que tenemos aquellas que tienen una base de datos local, y despues por algún mecanismo de sincronización transferiremos la info a una base centralizada (recuerden que las aplicaciones moviles por lo general son parte de un todo, de una aplicación centralizada), luego vamos a hablar mejor de estos mecanismos de sincronización. Por otro lado, y volando un poco en ideas, yo podría decir, quiero una aplicación que al igual que en windows, ejecute cliente servidor, que acceda a una base de datos centralizada por algún mecanismo de comunicación, tengo el aparato conectado a una red, o algo así. Esto lo puedo hacer solo si estoy en ese rango de comunicación, no? Recordemos que esto es algo que no se puede hacer con el generador Pocket PC que esta hoy en el mercado, pero como vamos a ver, si se puede hacer desde nuestro nuevo generador. Por otro lado yo quiciera un hibriso, una mezcla de ambos, para quedarme conlo mejor de todo. Simplemente tengo una base local, pero derrepente requiero algo de info que no tengo, y puedo por algún mecanismo traer info de otra base de datos (esos mecanismos pueden ser webservices por ejemplo, o simplemente un pedido de info a una base centralizada)

6 Análisis (II) Como organizo mi ambiente de desarrollo?
Depende de mi realidad! Nueva KB Nuevo Modelo KB Corporativa SQL Server KB Pocket PC Pocket PC Access Supongamos en nuestr ejemplo que el modelo que vamos a seleccionar es el hibrido, ya que muestra lo mejor de ambas opciones. Ahora bien, como arranco a trabajar esto con GeneXus? Tengo que tener una KB, dos KB, una KB , con dos modelos? No existe una respuesta general a esta pregunta, porque depende de como sean las regals de mi negocio y va a depender mucho de los mecanismos de sincronización que elija. Lo que podemos es comentarles es algunas soluciones que implementaron algunos de los casos de exito de pocket PC. Por lo general los mecanismos de sincronización, requieren tener tablas indistintas tanto en el cliente como en el server de datos. (al menos eso era lo que pasaba con PPC) Ante esta optica yo podria optar por tener un esquema con una KB con un modelo PPC y otro modelo WIN, el tema es que en general no quiero tener Tooodo lo de win en PPC. Les cuento el esquema que se manejo en un proyecto de méxico (inclusive con el porblema de tablas

7 GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

8 Diseño (I) Tamaño de pantalla VS

9 Diseño (II) Tamaño Entrada de datos Botones Menues Tabs Combos
DatePicker Checkbox Entonces ante esta realidad se hace critico el aprovechamiento de los espacios. Entonces que cosas tenemos que tener en cuenta?     Intentar usar Menus en vez de botones, en general no se usan muchos botones en las aplicaciones, esto era algoq ue en ppc no teniamos,   pero ahora tenemos, y algo qque incorpora tambien el CF. Otra cosa que es muuy recomendable es el uso de Tabs control, ya que las aplicaciones no son MDI, tener TABS es una opción que nos va aresultar mas performante que una aplicación windows. Por otro lado EL GRAN tema de los pocket PC, es como hacer la entrada de datos. La idea es intentar disminuir lo másximo posible la entrada de datos por el teclado. En el Pocket hay 3 tipos de teclado, el teclado por software, el teclado que te reconoce los caracteres y el teclado por hardware, en cualquiera de los tres casos es un sistema LENTo de entrada de información. Recuerden que quién va a usar una aplicación no es el gerente de la empresa, es el que este abajo,el vendedor, el obrero, o sea, es una aplicación para la gente que esta en la calle dentro del negocio, y por lo general son gente cuyo dedo puede ser mas grande que un pocket pc Por lo tanto la idea es utilizar lo máximo posible combos, checkboxes, datapicker, y cualquier mecanismo que nos facilite la entrada de información.

10 Diseño (III) Entonces ante esta realidad se hace critico el aprovechamiento de los espacios. Entonces que cosas tenemos que tener en cuenta?     Intentar usar Menus en vez de botones, en general no se usan muchos botones en las aplicaciones, esto era algoq ue en ppc no teniamos,   pero ahora tenemos, y algo qque incorpora tambien el CF. Otra cosa que es muuy recomendable es el uso de Tabs control, ya que las aplicaciones no son MDI, tener TABS es una opción que nos va aresultar mas performante que una aplicación windows. Por otro lado EL GRAN tema de los pocket PC, es como hacer la entrada de datos. La idea es intentar disminuir lo másximo posible la entrada de datos por el teclado. En el Pocket hay 3 tipos de teclado, el teclado por software, el teclado que te reconoce los caracteres y el teclado por hardware, en cualquiera de los tres casos es un sistema LENTo de entrada de información. Recuerden que quién va a usar una aplicación no es el gerente de la empresa, es el que este abajo,el vendedor, el obrero, o sea, es una aplicación para la gente que esta en la calle dentro del negocio, y por lo general son gente cuyo dedo puede ser mas grande que un pocket pc Por lo tanto la idea es utilizar lo máximo posible combos, checkboxes, datapicker, y cualquier mecanismo que nos facilite la entrada de información.

11 GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

12 Generación (I) Microsoft .NET Compact Framework
“Common” con .NET Framework Common Language Runtime Common Type System Common Intermediate Language Controles GUI Web Services Optimización de memoria Emuladores Pasemos ahora a ver qué vamos a genera. Lo que vamos a generar con este generador va a correr en el compact framework. El compact framework es basicamente una version compacta del Framework .NET para plataformas como pocket pc y Windows Smartphone. Una de las caracteristicas mas importante del compact framework es, que ademas de ser una mejora, una evolucion, con respecto al desarrollo en Visual Basic Embedded, es que comparte con el framework .Net, el CLR: es decir que utilizan el mismo ambiente de runtime, el Lenguage intermedio (CIL), el lenguaje independiente de CPU en el que las instrucciones pueden ser convertidas a codigo nativo, y el mismo sistema de tipos (CTS), por ejemplo webservices! (es decir cómo los tipos son usados y manejados en runtime). En Compact framewokt tenemos soporte para consumir web services, lo que nos da un potencial muy imporante para la integracion de una aplicacion movil. El tamaño del cf instalado varia segun el dispositivo en el rango de 1.7 MBytes a 2.6 MBytes y puede ser instalado en la ROM, o en la RAM. A partir de la version 2003 de pocket pc el cf ya viene instalado en la ROM. Esta optimizado para el manejo de memoria, sobre todo en los mecanismos de Class Loader, y GC. La funcional del framework .NEt mas imporante omitida en el compact framework, es: Acceso Oledb, ASP.NEt, remoting (en lugar de esto se puede usar web services), impresion. Algunos controles del desktop framework no soportados son: GroupBox, RichTextBox, PrintDialog, PrintPreview, FontDialog, LinkLabel, HelpProvider, NotifyIcon, Tooltip. Se pueden sí crear custom controls. Uno de los objetivos del compact framework es proporcionar emuladores. Los emuladores corren dentro de una maquina completamente aislados del sistema operativo de la maquina que los hostea. De forma que no tiene acceso a dicha maquina. Incluso se puede mapear un puerto serial o paralelo en el emulador a un puerto sobre la maquina.

13 Generación (II) Acceso de Datos Web Services Sincronización RDA Merge
SQL Server CE SQL Server Web Services ADO.NET Sincronización RDA Merge Conectados, Desconectados, u Ocacionalmente Conectados. Base de datos local (offline) Sincronización Merge de SQL Server Remote data access Base de datos remota (online) Web services Una caracterisitca fundamental de las aplicaciones corriendo en dispositivos mobiles es que necesitan poder manejar los datos localmente en forma robusta, porque, parte del tiempo, y para algunas todo el tiempo, los dispositivos estan desconectados de cualquier red o fuente de datos. Por eso el manejo de datos local es un concepto esencial en este tipo de aplicaciones. El compact framework proporciona ese soporte para manejar los datos localmente en el dispositivo. Como base de datos local podemos tener una base datos SQL server CE, es la version de sql server para compact framework. Tiene soporte de las principales caracteristicas como transacciones, Integridad referencial, indices, encriptacion de datos. No tiene soporte para stored procedures, triggers o vistas. Soporta solamente una conexion concurrente porque Windows CE es un systema opertaivo sigle-user. Por ejemplo en el caso de venta movil de libros de una editorial a librerias, supongamos que decidimos tener en cada dispositivo de cada vendedor una base de datos local con el stock de libros para ese vendedor, particionamos el stock central entre los vendedores, ese stock periodicamente se va a tener que sincronizar con el stock en la base de datos central. Supongamos que la editorial solo tiene venta movil, es decir que las ordenes solo las ingresan los vendendores moviles, y al final de cada dia de venta, los vendendores sincronizan envian sus ordenes a la central. Para este modelo se adpata muy bien el mecanismo de sincronizacion RDA . RDA lleva un tracking de los cambios en la bd local, y luego envia los cambios al servidor central via internet. Este mecanismo no requiere configuracion especial en el server, y se usa cuando son los clientes los que hacen los cambios. Supongamos ahora en el caso de venta movil, que el stock de libros es modificado tanto en la bd de la editorial como en los moviles, en ese caso necesitamos sincronizar haiendo un merge de los cambios. El mecanismo de merge de sql server, pude sincronizar datos entre una bd central sql server (que se publica) y una bd en el cliente que se suscribe. Es un mecanismo mas complejo pero con mas funcionalidad, por ejemplo manejo de conflictos, filtros. Puedo definir definir filtros sobre columnas o filas, o dinamicos. Un modelo de acceso a datos que podemos tener es acceso a remoto a una base datos central. El acceso en ese caso es por TCP/IP, es un modelo que requiere estar conectados, que es adecuado para aplicaciones que manejan grandes cantidades de datos y no es posible tenerlos localmente, o donde trabajar con los datos actualizados es fundamental. En este modelo se tiene seguridad, performance, y update inmediato de los datos en el server. En ambos casos, y en ambos ambientes, .NET o compact framework, el manejo de las Bases datos es con ADO.NET, y con data providers managed. Otra opcion para acceder a los datos, y que es intermedia entre las dos primeras, es Web Services. Intermedia porque requiere conectarnos ocasionalmente. Web services lo podemos ver como un mecanismo para el manejo de datos, pero es tambien un componente muy imporante para la integracion de la aplicacion, para que pueda interoperar con otras, incluso de distintos sistemas operativos. En general, en las aplicaciones moviles, vamos a necesitar una combinacion de estos mecanismos de acceso a datos. Las propiedades transaccionales, todo el tema transaccional sigue siendo igual en genexus para sql server, todo eso funciona igual que en .NET

14 GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

15 Comunicación Tecnología Ancho de Banda Alcance aproximado
Connexión directa Infrared 9.6 K a 115K 1 metro BlueTooth 1Mbps 10 a 30 metros WLAN (Wi-Fi) 11 a 90 Mbps 50 a 300 metros WWAN (GSM, GPRS) 14.4 a 114 Kbps Inter-continente Satelital 9.6 Kbps En estos mecanismos (anteriores), sincronizacion, acceso remoto, web services, necesito conectarme a una red. La opcion que elija de como conectarme va a depender de la velocidad que necesite, de la distancia entre los puntos a conectar, el lugar donde se encuentra el dispositivo. Conneccion directa Bluetooth InfraRed WLAN WAN GPRS GSM Satelital Coneccion directa (con cables): Por ejemplo para sicronizar las ordenes de los vendedores al final de cada dia, podria conectar directamente con un cable a un PC,por puerto USB, puerto COM. Si pensamos que al final del dia cada vendedor pase por la editorial central. InfraRed (sin cables): Se puede usar cuando los puntos a conectar si estan a menos de 1 metro, y no hay nada que obtruya la la linea de union. Wireless (sin cables): BlueTooth (PAN:personal area network): esta coneccion tiene un alcance de aprox. 10 a 30 metros. El ancho de banda es de 1Mbps (megabits por segundo) en una coneccion entre el dispositivo y una red. Una coneccion con un access point para bluetooth, conecta directamente a la LAN con una velocidad de 10 a 100 Mbps. Otro escenario puede ser conectar el dispositvo con un celular (que soporte bluetooth) el factor critico en este caso es el ancho de banda. WLAN: radio de 1 milla, velocidad tipica de 11 Mbps.Wi-Fi es una alianza que certifica productos wireless interoperables con otros productos Wi-Fi. Es buena idea asegurarse de comprar produtos con el logo Wi-Fi. Existen los hostspots, que son puntos de acceso a wireless Wi-Fi en diferentes lugares publicos como hoteles, aereopuertos, centros de conferencias. Ejemplos son: , WAN: son networks proporcionadas por las companias celulares, proporcionan un alcance intercontinentes. La velocidad es de 14.4kbp a 114 Kbps dependiendo del tipo de network. GSM es una de las principales, y que tiene mas usuarios por celular o wirelees. GPRS es otra que esta creciendo y que proporciona redes GSM. Satelital.

16 GeneXus Mobile ANÁLISIS DISEÑO GENERACIÓN COMUNICACIÓN PROTOTIPO

17 Demo: Venta móvil de libros
SQL Server ADO.NET Web Service Web Service SQL Server CE

18 Resumiendo... Evolución Mas robusto Web Services Conexión Remota
Soporte en SmartPhones Que es lo nuevo que tenemos respecto a hace un año atrás: Evolucion: Microsoft a fines del 2001 anuncio que visual basic embedded no va a seguir evolucionando, si no el foco pasaria a la nueva plataforma Compact Framework y tools para los dispositivos. Mas robusto: el ambiente como los emuladores son mas robustos, pero ademas el generador para compact framework comparte el “core” con el generador c#, con lo que hereda un tiempo de test importante. Web services: es nuevo tambien, ya que no lo tenemos en el generador de hoy para PPC. Conexión remota con sql server. Soporte para smartphone.

19


Descargar ppt "GeneXus & Mobile Application: presente y futuro"

Presentaciones similares


Anuncios Google