jueves, 4 de noviembre de 2010

Google App Engine

Encontre este documento en la web el cual me parecio verdaderamente util e interesante.

Espero les sirve y les Guste.


Google App Engine te permite ejecutar tus aplicaciones web en la infraestructura de Google. Las aplicaciones App Engine son fáciles de crear, mantener y actualizar al ir aumentando el tráfico y las necesidades de almacenamiento de datos. Con App Engine, no necesitarás utilizar ningún servidor: sólo tendrás que subir tu aplicación para que tus usuarios puedan empezar a utilizarla.

Puedes proporcionar a tu aplicación tu propio nombre de dominio (como por ejemplo http://www.example.com/) a través de Google Apps . También puedes proporcionar a tu aplicación un nombre gratuito del dominio appspot.com. Podrás compartir tu aplicación con todo el mundo o limitar el acceso a los miembros de tu organización.

Google App Engine admite aplicaciones escritas en varios lenguajes de programación. Gracias al entorno de tiempo de ejecución Java de App Engine puedes crear tu aplicación a través de tecnologías Java estándar, que incluyen JVM, servlets Java y el lenguaje de programación Java o cualquier otro lenguaje que utilice un intérprete o compilador basado en JVM como, por ejemplo, JavaScript o Ruby. App Engine también ofrece un entorno de tiempo de ejecución Python dedicado, que incluye un rápido interprete Python y la biblioteca estándar Python. Los entornos de tiempo de ejecución Java y Python se generan para garantizar que tu aplicación se ejecuta de forma rápida, segura y sin interferencias de otras aplicaciones en el sistema.

Con App Engine, sólo pagas lo que utilizas. No existen costes de configuración ni tarifas recurrentes. Los recursos que utiliza tu aplicación, como por ejemplo el almacenamiento y el ancho de banda, se miden por gigabytes y se facturan según competitivas tarifas. Controlas la cantidad máxima de recursos que consume tu aplicación, de modo que siempre permanezcan dentro de tu presupuesto.

Puedes empezar a utilizar App Engine de forma totalmente gratuita. Todas las aplicaciones pueden utilizar hasta 500 MB de almacenamiento y suficiente CPU y ancho de banda como para permitir un servicio eficaz de la aplicación de alrededor de 5 millones de visitas a la página al mes, totalmente gratuitas. Cuando habilitas la facturación para tu aplicación, se incrementan tus límites gratuitos y sólo pagas aquellos recursos que utilices por encima de los niveles gratuitos.

El entorno de aplicación


Google App Engine permite desarrollar fácilmente aplicaciones que se ejecuten de forma fiable, incluso con pesadas cargas de trabajo y grandes cantidades de datos. App Engine incluye las siguientes funciones:

  • servidor web dinámico, totalmente compatible con las tecnologías web más comunes,
  • almacenamiento permanente con funciones de consulta, orden y transacciones,
  • escalado automático y balanceo de carga,
  • API para autenticar usuarios y enviar correo electrónico a través de las cuentas de Google,
  • un completo entorno de desarrollo local que simula Google App Engine en tu equipo,
  • tareas programadas para activar eventos en momentos determinados y en intervalos regulares.

Tu aplicación se puede ejecutar en uno de los dos entornos de tiempo de ejecución: el entorno Java y el entorno Python. Cada entorno proporciona protocolos estándar y tecnologías comunes para el desarrollo de aplicaciones web.

La zona de pruebas

Las aplicaciones se ejecutan en un entorno seguro que proporciona acceso limitado al sistema operativo subyacente. Estas limitaciones permiten a App Engine distribuir solicitudes web de la aplicación en varios servidores e iniciar y detener los servidores según las demandas del tráfico. La zona de pruebas aísla la aplicación en su propio entorno seguro de confianza, totalmente independiente del hardware, el sistema operativo y la ubicación física del servidor web.

Algunos ejemplos de las limitaciones del entorno seguro de la zona de pruebas son:

  • Una aplicación sólo podrá acceder a otros equipos de Internet a través de los servicios de correo electrónico y extracción de URL proporcionados. Otros equipos sólo se podrán conectar a la aplicación mediante solicitudes HTTP (o HTTPS) en los puertos estándar.
  • Una aplicación no podrá escribir en el sistema de archivos. Una aplicación podrá leer archivos, pero sólo aquéllos subidos con el código de la aplicación. La aplicación deberá utilizar el almacén de datos de App Engine, Memcache u otros servicios para todos los datos que permanezcan entre las solicitudes.
  • El código de aplicación sólo se ejecuta en respuesta a una solicitud web o a una tarea cron y debe devolver datos de respuesta en un período de 30 segundos en cualquier caso. Un controlador de solicitudes no podrá generar un subproceso ni ejecutar código después de haber enviado la respuesta.

El entorno de tiempo de ejecución Java

Puedes desarrollar tu aplicación para el entorno de tiempo de ejecución Java a través de herramientas de desarrollo web Java y de estándares del API comunes. Tu aplicación interactúa con el entorno a través del estandar JAva Servlet y puede utilizar tecnologías de aplicación web comunes como por ejemplo JavaServer Pages (JSP).

El entorno de tiempo de ejecución Java utiliza Java 6. El kit de desarrollo de software (SDK) Java de App Engine admite las aplicaciones de desarrollo que utilizan tanto Java 5 como 6.

El entorno incluye la plataforma 6 de entorno de tiempo de ejecucion de Java (JRE) SE y bibliotecas. Las restricciones del entorno de la zona de pruebas se implementan en JVM. Una aplicación puede utilizar cualquier código de bytes de JVM o función de biblioteca, siempre que no exceda las restricciones de la zona de pruebas. Por ejemplo, si un código de bytes intenta abrir un conector o escribir en un archivo, aparece una excepción de tiempo de ejecución.

Tu aplicación accede a la mayoría de los servicios de App Engine a través de las API estándar de Java. Para el almacén de datos de App Engine, el SDK Java incluye implementaciones de la interfaz de Objetos de datos de Java (JDO) y de la interfaz del API de persistencia de JAVA (JPA). Tu aplicación puede utilizar el API Java mail para enviar mensajes de correo electrónico con el servicio de correo electrónico de App Engine. Las API HTTP java.net acceden al servicio de extracción de URL de App Engine. App Engine también incluye las API de nivel inferior para sus servicios para implementar adaptadores adicionales o para su uso directo desde la aplicación. Consulta la documentación sobre las API del almacen de datos, memcache, la extraccion de URL , el correo, las imagenes y las cuentas de google.

Normalmente, los desarrolladores de Java utilizan el lenguaje de programación Java y las API para implementar aplicaciones web para JVM. Gracias al uso de intérpretes o de compiladores compatibles con JVM, también puedes utilizar otros lenguajes para desarrollar aplicaciones web como, por ejemplo, JavaScript, Ruby o Scala.


El entorno de tiempo de ejecución Python

Gracias al entorno de tiempo de ejecución Python, puedes implementar tu aplicación a través del lenguaje de programación Python y ejecutarla en un intérprete de Python optimizado. App Engine incluye varias API y herramientas para el desarrollo de aplicaciones web de Python, así como un API de modelado de datos detallados, un framework de aplicaciones web fácil de utilizar y herramientas para administrar y acceder a tus datos de la aplicación. También puedes beneficiarte de una amplia variedad de frameworks y bibliotecas avanzados para el desarrollo de aplicaciones web de Python, como por ejemplo Django .

El entorno de tiempo de ejecución Python utiliza la versión 2.5.2. de Python. Estamos teniendo en cuenta una compatibilidad adicional con Python 3 para futuras versiones.

El entorno Python incluye la biblioteca estandar de python. Por supuesto, no todas las funciones de biblioteca se pueden ejecutar en el entorno de la zona de pruebas. Por ejemplo, una llamada a un método que intenta abrir un conector o escribir en un archivo generará una excepción. Para comodidad del usuario, se han inhabilitado varios módulos de la biblioteca estándar cuyas funciones son incompatibles con el entorno de tiempo de ejecución y el código que los importe generará un error.

El código de aplicación escrito para el entorno Python se debe escribir exclusivamente en Python. Las extensiones escritas en lenguaje C no son compatibles.

El entorno Python proporciona varias API Python para servicios de almacen de datos, cuentas de google, extraccion de URL y correo electronico. App Engine también ofrece un sencillo framework para aplicaciones web Python denominado webapp que te permitirá empezar a crear aplicaciones fácilmente.

Puedes subir otras bibliotecas de terceros con tu aplicación, siempre que estén implementadas únicamente en Python y no requieran ningún módulo incompatible de la biblioteca estándar.}

El almacén de datos

App Engine proporciona un potente servicio de almacenamiento de datos distribuido que incluye un motor de búsqueda y transacciones. A medida que el servidor web distribuido crece con el tráfico, el almacén de datos distribuido crece con los datos.

El almacén de datos de App Engine no es como una base de datos relacional tradicional. Los objetos de datos, o "entidades", disponen de un tipo y un conjunto de propiedades. Las consultas pueden recuperar entidades de un tipo determinado filtradas y ordenadas según los valores de las propiedades. Los valores de las propiedades pueden ser de cualquiera de los tipos de valores de propiedades admitidos.

Las entidades del almacén de datos son carecen de esquema. Tu código de aplicación se encarga de proporcionar y de respetar la estructura de las entidades de datos. Las interfaces JDO/JPA de Java y la interfaz del almacén de datos de Python incluyen características para aplicar y respetar la estructura de tu aplicación. Tu aplicación también puede acceder al almacén de datos de forma directa para aplicar mucho o poco la estructura que necesite.

El almacén de datos es muy consistente y utiliza el contro de concurrencia optimista . Una entidad se actualizará si se intenta realizar una transacción un número determinado de veces y otros procesos están intentando actualizar la misma entidad al mismo tiempo. Tu aplicación puede ejecutar varias operaciones de almacén de datos en una única transacción, que se ejecutarán con o sin éxito, garantizando así la integridad de tus datos.

El almacén de datos implementa transacciones en su red distribuida mediante "grupos de entidades". Una transacción manipula entidades de un único grupo. Las entidades del mismo grupo se almacenan juntas para ejecutar las transacciones eficazmente. Tu aplicación puede asignar entidades a grupos al crear las entidades.

Servicios de App Engine

App Engine proporciona una gran variedad de servicios que te permitirán realizar operaciones comunes al gestionar tu aplicación. Se incluyen las siguientes API para acceder a estos servicios:

Extracción de URL

Las aplicaciones pueden acceder a recursos en Internet, como servicios web u otros datos, mediante el servicio de extracción de URL de App Engine. El servicio de extracción de URL recupera recursos web mediante la misma infraestructura de alta velocidad de Google que recupera páginas web para muchos otros productos de Google.

Correo

Las aplicaciones pueden enviar mensajes de correo electrónico mediante el servicio de correo de App Engine. El servicio de correo utiliza la infraestructura de Google para enviar mensajes de correo electrónico.

Memcache

El servicio Memcache proporciona a tu aplicación el servicio de memoria caché de valores-claves de alto rendimiento accesible desde varias instancias de tu aplicación. Memcache resulta útil para los datos que no necesitan las funciones de persistencia y transacciones del almacén de datos, como los datos temporales o los datos copiados del almacén de datos en la caché para un acceso a gran velocidad.

Manipulación de imágenes

El servicio de imágenes permite a tu aplicación manipular imágenes. Con esta API, podrás recortar, rotar o ajustar el tamaño de imágenes en formato JPEG o PNG.

1 comentario: