Recuerde que..

Y bueno amigos, a lo que finalmente queríamos llegar.. y que fue motivo de una consulta en el foro de Quizzpot que ha tenido muchas visitas pero pocas ayudas técnicas: la integración de nuestras aplicaciones a Google App Engine, utilizando ExtJs o cualquier otro framework,..
code.google.com/intl/es/appengine/docs/python/overview.html
code.google.com/intl/es/appengine/docs/python/runtime.html"
Antes de iniciar la instalacion del SDK de Google AppEngine, debemos asegurarnos que tengamos Phyton 2.5.x instalado en nuestro ordenador, para lo cual el mismo instalador nos indicara de donde bajar primero e instalar dicha version de Phyton (version 2.5.5.7 de 24Mb, vigente al 01/03/2011). Finalmente toda version completa de AppEngine ocupara unos 150Mb, incluido los instaladores del SDK y Phyton...

Nota agregada: Después de algunas pruebas realizadas por miembros de nuestro grupo, parece que para que funcionen estos ejercicios debe previamente haber accedido a cualquier servicio con nuestra cuenta personal de Google:. La tabla Spreadsheet Productos que utilizamos en este ejercicio está compartida en Google Docs para que "todos la vean sin acceder", pero parece que para Google, "sin acceder" significa que la tabla no aparezca en nuestra lista personal de documentos de Google Docs, pero que necesariamente se tiene que haber ingresado primero con nuestra cuenta a algún servicio de Google como GMail por ejemplo, o con la opción "acceder" de la barra del menú de www.google.com), sino el ejercicio propuesto posiblemente no trabaja bien y arroje un mensaje de error de acceso al Query.
Estos ejercicios deben funcionar aún cuando con nuestra cuenta Google nunca hayamos utilizado Google Docs, por cuanto, las cuentas de Google, no son solo nuestra puerta de ingreso a GMail sino a una larga lista de servicios de Google que nos debe resultar interesante considerar para nuestro uso cotidiano: Google Calendar, Blogger, Picassa, Google Sites, CheckOut (tipo pay-pal), Google Maps, Google Talk, y por supuesto Google App Engine, entre otros)
NOTA IMPORTANTE :
Resulta que el sistema de autorización "AuthSub for JavaScript" de Google ya no se encuentra disponible (pueden revisar el siguiente enlace), por lo que nuestro botón "Login" de nuestro codelab no permite el acceso a nuestro ejercicio; asimismo, la documentación de Google nos recomienda que utilicemos ahora "OAuth 2.0 for client-side applications", vale decir, tendremos que utilizar Google API Javascript Client para poder acceder a nuestras aplicaciones (u otra API cliente según la plataforma back-end que utilicemos, tal como PHP, Java, .NET, entre otros), pero en nuestro caso, como solo estamos trabajando aplicaciones por el lado del cliente, tendremos que recurrir a la librería cliente para Javascript indicada.
Por lo que, mientras adecuamos nuestro código, resulta conveniente que NO CONSIDEREN el proceso de acceso a la aplicación de la siguiente manera:
function activando(auth) {
var c = Ext.getCmp('center');
//google.accounts.user.login('http://www.google.com/m8/feeds/');
auth = true;
c.enable();
c.update('');
if (auth) {
vistree.enable();
};
};
within of: MenuGVisualization_01.js / MenuGVisualization_02.js where appropriate!
TRABAJANDO CON OAUTH 2.0 :
por supuesto, a la brevedad actualizaremos todos nuestros códigos para que trabajen con el protocolo OAuth20, pero presentamos lo demos de nuestro codelab que hemos cargado a la plataforma GAE (Google App Engine), pero que usted puede probar en su servidor local de pruebas utilizando el SDK de Python (una vez adecuado el código a OAuth2.0 como indicamos en nuestros codelab Int-Google 1ra y 2da parte.. ó realizando el cambio indicado para "puentear" el proceso de autenticación)
..now you can test our IntGoogle01-Oauth demo (New!) .
the demo may prompt popup window (you must enable it)
..now you can test our IntGoogle02-Oauth demo (New!) .
the demo may prompt popup window (you must enable it)
Pasos para ejecutar el codelab
- nuestras imágenes, iconos y otros archivos "externos" utilizados en cada ejercicio, están grabadas en la carpeta static (hay que revisar un poco de la documentación al respecto, pero vale indicar que la razon principal de este procedimiento es que a diferencia de nuestras aplicaciones probadas en un servidor Apache, con Google AppEngine no todos los archivos de nuestra carpeta del proyecto se cargan en la web, y de nuestra estructura de directorios, solo algunas carpetas se ejecutan exclusivamente por el lado del servidor.
- por el motivo indicado, grabamos también los archivos de ExtJs en la carpeta "static", y que en este caso corresponden a la version ext-3.1.0; realmente tuvimos algunos problemas al utilizar versiones a partir de etx-3.2.x, e inclusive con la versión vigente de ExtJs-3.3.1 a la fecha (no cargaba la "datatable" requeridas para las visualizaciones Google desde los "stores") ..pero este "bug" producto a una revisión de una de las clases de ExtJs ya ha sido corregido, por lo que pueden revisar el post respectivo a Integracion Google 1ra y 2da que corresponden a estos mismos ejercicios que estamos probando sobre AppEngine, pero funcionando sobre un servidor Apache estándar, en dicho caso, ambos ejercicios IntGoogle1 e IntGoogle2, ya han sido modificados a la versión extjs-3.1.1. vigente al 01/03/2011, así que esperamos que como haciendo sus pruebas personales deberían poder actualizar estos ejercicios para utilizar una versión actualizada de Extjs (la disponible en estos momentos), y verificar su funcionamiento.
- al cargar nuestras aplicaciones con el boton "Run", a la vez que se activa el botón "Browse" (que lanzará automáticamente nuestro browser preferido y nos permitirá observar los resultados de nuestra aplicación). Vale también revisar los botones "Logs" y "SDK Console", el primero nos indica si todo esta correcto (y nos indica incluso los errores de compilación phyton de haberlos); el SDK Console nos servirá luego, especialmente cuando utilizemos la biblioteca de almacenamiento de datos de Google AppEngine y otras librerías incorporadas de la biblioteca estandard de Phyton.
- Para lanzar a la web nuestra aplicación, solo basta utilizar el botón "Deploy", y si no tenemos un dominio propio, Google nos proporcionará un dominio provisional, pero nuestra aplicación bien podría ahí mismo subirse a la web (solo se necesita haber registrado nuestra cuenta Google en App Engine, para lo que se necesita registrar nuestro código de confirmación recepcionado via sms utilizando un telefono celular de la empresa Claro, para el caso de Perú (para otros países debemos consultar la lista de compañías de comunicaciones correspondiente); pero actuemos con mesura, pues Google nos permite hasta 10 subidas "gratuitas", y tal vez no nos convenga desaprovecharlas por el momento.
- Al igual como hemos cargado la versión 3.1.1 "liviana" de ExtJs, podríamos hacer lo mismo si se desea utilizar cualquier cualquier otro framework JavaScript, pero téngase presente que Google tiene ya disponibles versiones de frameworks como JQuery, Prototype, Dojo, entre otros. Aunque también debemos resaltar que ahora tambien resulta importante practicar y utilizar Javascript puro.. opción que debemos tener en cuenta, ahora que poco a poco se va a imponer el manejo de este lenguaje por el lado del servidor, debido a la versatibilidad y perfomance mostradas de Node.js y el motor de desarrollo V8, los que inclusive han sido utilizados en el desarrollo del navegador Google Chrome.
- Cabe resaltar asimismo que para efectuar el "Deploy" con el launcher AppEngine, de ser el caso, nuestro Logs nos indicará que debemos tener instalado y operativo "openssl", correspondiente a las herramientas que permiten a nuestros proyectos AppEngine implementar SSL (Secure Socket Layer), TLS (Transport Layer Security) así como otros protocolos relacionados con la seguridad. Para ello puede seguir los pasos indicados aqui, o a mejor parecer, nos conviene instalar completamente GnuWin32, que además de darnos acceso a comandos Linux, y entre otros paquetes, nos implementa openssl 0.9.8r vigente a la fecha (esto sobre windows; en otras plataformas como Linux o Mac debe verificarse si openssl ya se encuentra instalado, caso contrario debe implementarse el paquete openssl correspondiente).
- Para nuestras pruebas personales debemos indicar también que, el nombre de nuestras aplicaciones que pongamos en el archivo app.yaml debe seguir el estandar "camel casing", por lo que dicho nombre debe empezar en minusculas...
- y bueno, estas son opciones de Google AppEngine que corresponden únicamente al manejo del framework webapp proporcionado por la biblioteca estandard de Phyton, pero debemos tener en cuenta que uno de los recursos mas interesantes de Google AppEngine es su almacenamiento de datos (y que corresponden al concepto Big Table descrito en el video indicado al comienzo del post), punto muy importante que nos encontramos desarrollando con bastante interés..
Porque GAE-Python ?
la plataforma GAE permite en estos momentos el uso de hasta 03 lenguajes por el lado del servidor: Python, Java y Go; y tal vez pueda ser bastante difícil invocar a los desarrolladores a optar por un lenguaje en particular, pero lo cierto es que Python es el lenguaje con que se inició la plataforma GAE y tal vez la que mantiene aún "en exclusividad" algunos desarrollos importantes como son la carga y descarga de datos (vía remote_api) , y en particular de la herramienta MapReduce (aún experimental), para trabajar procesos de datos en forma optimizada en nuestros GAE datastores. Vale entonces destacar que si nuestro interés en hacer desarrollos en la plataforma GAE conviene que mantengamos un conocimiento básico de desarrollo GAE utilizando su SDK para Python.. y a la par, dedicarnos a nuestras investigaciones y desarrollos en la platagorma GAE-Java ó GAE-Go (según nuestra especialización).
Otro punto a tomar en cuenta es que para desarrollos para móviles (y para Android en particular), es necesario tomar conocimientos de desarrollo en la plataforma Java y esto induce a muchos desarrolladores a considerar como punto de partida de sus investigaciones y desarrollos a la plataforma GAE-Java, vale entonces reiterar nuestro apunte anterior, en que aún cuando la plataforma Java de desarrollo es bastante importante y de muy buen soporte, pues no debemos considerar que hay algunas herramientas Appengine que solo trabajan, por el momento, exclusivamente en la plataforma GAE-Python, por lo que vale considerar y dar una periódica revisión a este entorno de desarrollo.
Saludos...
3 comentarios:
Pata conocer un poco más de App Engine pueden revisar este link que es un Developer Codelab de Google respecto al tema.
Se ha actualizado los códigos de los ejercicios a la versión SDK 2.5.2 de AppEngine (donde ahora hay que importar las librerías os y sys, para que nuestro "launcher" reconozca la codificación utf-8 en que editamos nuestro documento (option default, para otros tipo de codificación hay que revisar el manual)
los ejercicios propuestos funcionan sin ningún problema con la versión del SDK 1.5.4 de AppEngine vigente a la fecha....
Los comentarios nuevos no están permitidos.