domingo, 19 de diciembre de 2010

GOOGLE APP ENGINE

¿Qué es Google App Engine?


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 estándar 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 ejecución 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 Java (JDO) y de la interfaz del API de persistencia de Java (JPA). Tu aplicación puede utilizar el API JavaMail 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 delalmacén de datos, Memcache, la extracción de URL, el correo, las imágenes 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.

Para obtener más información sobre el entorno de tiempo de ejecución Java, consulta la sección El entorno de tiempo de ejecución Java.

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 estándar 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 almacén de datos, cuentas de Google, extracción de URL y correo electrónico. 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.

Para obtener más información sobre el entorno de tiempo de ejecución Python, consulta la sección El entorno de tiempo de ejecución Python.

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 control 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.

Cuentas de Google


App Engine admite la integración de una aplicación con Cuentas de Google para la autenticación de los usuarios. Tu aplicación puede permitir a un usuario acceder con una cuenta de Google y tener acceso a la dirección de correo electrónico y el nombre de visualización asociados a la cuenta. Las cuentas de Google permiten que el usuario pueda empezar a utilizar la aplicación de una forma más rápida, ya que no tiene que crear una cuenta nueva. También te ahorran el esfuerzo de implementar un sistema de cuentas de usuario sólo para tu aplicación.

Si estás ejecutando tu aplicación con Google Apps, podrás utilizar las mismas funciones con los miembros de tu organización y las cuentas de Google Apps.

El API de usuarios también puede indicar a la aplicación si el usuario actual es un administrador registrado de la aplicación. Esto facilitará la implementación de áreas exclusivas de administradores en tu sitio.

Para obtener más información sobre la integración con las cuentas de Google, consulta la referencia del API de usuarios.

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.

Tareas programadas
El servicio Cron te permite programar tareas que se van a ejecutar en intervalos regulares. Para obtener más información, consulta la documentación sobre el servicio Cron de Python o de Java.

Flujo de Trabajo de Desarrollo


Los kits de desarrollo de software de App Engine (SDK) para Java y Python incluyen una aplicación de servidor web que emula todos los servicios de App Engine de tu equipo local. Cada SDK incluye todas las API y bibliotecas disponibles en App Engine. El servidor web también simula el entorno seguro de la zona de pruebas, incluyendo las verificaciones con respecto a los intentos de acceso a los recursos del sistema inhabilitados en el entorno de tiempo de ejecución de App Engine.

Cada SDK también incluye una herramienta para subir tu aplicación a App Engine. Una vez que hayas creado el código de tu aplicación, los archivos estáticos y los archivos de configuración, ejecuta la herramienta para subir los datos. La herramienta te pedirá que introduzcas tu dirección de correo electrónico y contraseña de Google.

Cuando crees una nueva compilación importante de una aplicación que ya se esté ejecutando en App Engine, podrás subirla como una nueva versión. La antigua versión seguirá disponible para los usuarios hasta que cambies a la nueva versión. Puedes probar la nueva versión en App Engine mientras aún se esté ejecutando la antigua.

El SDK Java se ejecuta en cualquier plataforma con Java 5 o Java 6. El SDK está disponible en forma de archivo Zip. Si utilizas el entorno de desarrollo Eclipse, puedes utilizar el complemento de Google para Eclipse para crear, probar y subir aplicaciones de App Engine. El SDK también incluye herramientas de línea de comandos para ejecutar el servidor de desarrollo y subir tu aplicación.

El SDK Python se implementa exclusivamente en Python y se ejecuta en cualquier plataforma que disponga de Python 2.5, como Windows, Mac OS X y Linux. El SDK está disponible en forma de archivo Zip y los instaladores están disponibles para Windows y Mac OS X.

La consola de administración es una interfaz basada en web que permite administrar las aplicaciones que ejecutas en App Engine. Puedes utilizarla para crear nuevas aplicaciones, configurar nombres de dominio, cambiar la versión disponible de tu aplicación, examinar los registros de error y acceso y buscar el almacén de datos de una aplicación.

Cuotas y Límites


Crear una aplicación en App Engine no sólo resulta fácil. ¡Además es gratis! Puedes crear una cuenta y publicar una aplicación que la gente podrá utilizar inmediatamente sin ningún coste ni obligación. Una aplicación de una cuenta gratuita dispone de hasta 500 MB de espacio y admite hasta 5 millones de visitas mensuales. Cuando lo desees, puedes habilitar la facturación, establecer un presupuesto diario máximo y asignar tu presupuesto para cada recurso de acuerdo con tus necesidades.

Puedes registrar hasta 10 aplicaciones por cuenta de desarrollador.

Cada aplicación asigna recursos dentro de límites o "cuotas". Una cuota determina la cantidad que una aplicación puede utilizar un recurso concreto durante un día del calendario. En un futuro próximo, podrás ajustar alguna de estas cuotas mediante la adquisición de recursos adicionales.

Algunas funciones imponen límites no relacionados con cuotas para proteger la estabilidad del sistema. Por ejemplo, cuando una aplicación se ejecuta para atender una solicitud web, debe emitir una respuesta en 30 segundos. Si la aplicación tarda demasiado, se finaliza el proceso y el servidor devuelve un código de error al usuario. El tiempo de espera de la solicitud es dinámico y se puede reducir si un controlador de solicitudes consume el tiempo de espera con frecuencia para conservar recursos.

Otro ejemplo de un límite de servicio es el número de resultados devuelto por una consulta. Una consulta puede devolver como máximo 1.000 resultados. Las consultas que deberían devolver más resultados sólo devuelven el máximo. En este caso, no es probable que una solicitud que realiza este tipo de consulta devuelva una solicitud antes de agotar el tiempo de espera, pero el límite se mantendrá para conservar los recursos del almacén de datos.

Los intentos de socavar o abusar de las cuotas, como utilizar aplicaciones en varias cuentas que trabajen conjuntamente, infringen las Condiciones del servicio y podrían ser motivo de la inhabilitación o el cierre de las cuentas.

Para ver una lista de cuotas y una explicación acerca del sistema de cuotas, incluyendo las cuotas que pueden verse incrementadas mediante la habilitación de la facturación, consulta la sección Cuotas.
sábado, 18 de diciembre de 2010

CLOUD COMPUTING - COMPUTACION EN NUBE

Definición de la IEEE:


Es un paradigma de computación nueva cuyo objetivo es proporcionar información fiable, personalizada, así como de calidad de servicio, garantizada en entornos informáticos dinámicos para los usuarios finales.

Definición de NIST (National Institute of Standarts and Tecnology -USA-)


Computación en nube es un modelo que permite un cómodo acceso, red bajo demanda, a un grupo compartido de recursos informáticos configurables por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios que pueden ser rápidamente proveídos y puestos con un mínimo de esfuerzo en gestión para proveer servicios de interacción.


Conceptos clave


Vale la pena resaltar la relación estrecha que existe con el término Xaas (cualquier cosa como servicio – anything as a service) donde existe un enfoque de relación más con servicios dispuestos en Internet que instalados locamente.
  • Bajo esta perspectiva vale la pena observar tres instancias en que podríamos dividir Xaas:

Software como servicio – Saas (Software as a Service ):


Forma de distribución de software en el cual se puede acceder de forma descentralizada desde cualquier lugar con unos requerimientos de instalación mínimos o inexistentes, casos claros en este aspecto son Google Apps y Zoho Apps enfocados a brindar herramientas ofimáticas y de gestión, o Aviary, enfocada a brindar programas de diseños gráfico y multimedia.

Infraestructura como servicio – Iaas (Infrastructure as a Service):


Modelo que se enfoca en la presentación de servicios remotos como almacenamiento, procesamiento, bases de datos y transferencia de datos. Servicios que pueden ser escalados en cualquier momento según las necesidades del cliente. Algunas de las empresas enfocadas a este modelo son Webservice de Amazon o Google Apps Marketplace entre otras.

Plataforma como servicio – Paas (Platform as a Service):


La plataforma como servicio se enfoca principalmente a grupos de desarrolladores donde una empresa brinda un ambiente tecnológico específico para desarrollar sus proyectos, despreocupándose en buena medida por los aspectos de hardware y software a nivel de sistemas operativo y configuraciones básicas. Este modelo es conocido como virtualización de servidores. Entre los casos más representativos se encuentra Google App Engine Zoho Creator y recientemente Windows Azure
  • En la nube se pueden tener tres tipos de “tipologías” que pueden ser identificadas según el tipo de acceso, tipo de usuarios y contratación, estas pueden alojar los conceptos anteriormente descritos, entre las tipologías de nube se tiene:
Nubes públicas: Estas son uno de los casos más comunes al momento de hacer uso de la computación en nube, aquí intervienen terceros que brindan servicios de Saas, Iass y Pass a los usuarios. Estas pueden tener un modelo gratuito, en algunas oportunidades, o pagado en otras, todo dependiendo del servicio que se brinde. Uno de los casos más comunes en el uso de Saas en esta “tipología” consiste en el sistema Google Apps para universidades y algunas otras instituciones educativas, en este caso Google brinda su plataforma de correo y una suite de ofimática de manera gratuita a estas instituciones. Sin embargo las condiciones del servicio cambian cuando la cantidad de correos permitidos y almacenamiento gratuito llega aún límite específico, teniendo que, después de esta instancia, la empresa debe pagar por la prestación del servicio de acuerdo a modelos de facturación en prepago.

Nubes privadas: Las nubes privadas son implementaciones propias de las empresas, en este caso, la misma empresa se encarga de la implementación tecnológica, los gastos de mantenimiento así como de la seguridad y disponibilidad de los datos. Sus funciones están enfocadas a un grupo de usuarios que requieran uno o más servicios. Con el fin de ejemplificar este tipo de nube, imaginemos que una institución universitaria ha realizado cierta inversión tecnológica para que el departamento de contabilidad haga uso de aplicativos de software sin tenerlos instalados en sus computadores (Saas). Por otro lado, en este tipo de nube, se podría brindar al departamento de admisiones de la institución una cantidad de procesamiento mayor al comúnmente usado en periodos de registro académico de estudiantes (Iaas). Otra aplicación de nube privada podría ser brindar un ambiente tecnológico en una aplicación específica para que los estudiantes de un curso de programación, por ejemplo, pudieran realizar sus ensayos en un ambiente real (Paas). En todos los anteriores casos la nube privada estaría solo dispuesta para el uso de los miembros de la institución.

Nubes híbridas: Se habla de nubes híbridas cuando un tercero brinda un servicio de apoyo a una empresa en algunos de sus modelos. Tomando el ejemplo de la institución universitaria, esta podría contratar un servicio Iaas de un tercero con el fin de brindar garantías de disponibilidad en el momento de la realización de exámenes en un momento definido.
Con el fin de mejorar la conceptualización que se esta realizando vale la pena resaltar los públicos a los que pudiera estar enfocado cada uno de los modelos de computación en la nube en el esquema Xaas:

Iaas: Éste modelo estaría más enfocado a empresas que desean soportar plataforma como servicio o software como servicio al interior de la misma.

Paas: Enfocada a equipo de desarrolladores o empresas con el fin de hacer uso de un ambiente tecnológico listo evitando implementaciones costosas del mismo.

Saas: Modelo enfocado en el usuario final, siendo en este caso todos los usuarios que requieren del uso de un software desde cualquier lugar.

Definición

.
Partiendo de las reflexiones generadas sobre diferentes aspectos de la computación en la Nube en la educación en la clase de Tecnologías Emergentes (2010), se llego a la siguiente definición:
Plataforma altamente escalable que elimina limitantes actuales a nivel de recursos de hardware y software, permitiendo el diseño de estrategias didácticas que utilizan recursos en Internet y que contribuyen a los procesos de enseñanza y aprendizaje por medio de herramientas de fácil manejo; La nube potencia la igualdad de acceso a recursos, fomenta el trabajo colaborativo y estimula la innovación por medio de robustas aplicaciones web fáciles de utilizar.

Realidades y Fortalezas


Una de las realidades dadas en los últimos tiempos es el uso común de computación en la nube por parte de las instituciones educativas en sus sistemas de correo electrónico y procesamiento de textos (Cantu, 2009), frente a este aspecto podemos resaltar casos como los de la Universidad Católica o la Universidad Central de Colombia que evidencian este hecho, donde los estudiantes poseen herramientas ofimáticas como Google Docs.
En otra instancia coincidiendo con las perspectivas de Martin y Hoover (2008), el crecimiento constante del mercado de la computación en nube permite a las instituciones educativas un modelo ideal para elegir proveedores que se ajusten a sus necesidades, de esta forma las instituciones no queda atadas a un solo proveedor, pues en la actualidad encontrando opciones como las ofrecidas por Amazon http://aws.amazon.com/, IBM https://www.ibm.com/developerworks/university/academicinitiative/ , Google /apps/intl/es/business/index.html, entre otras.
Casos como el de la Fundación Germán Sánchez (IBM, 2010), dejan claras las ventajas de la computación en la nube en la actualidad, donde se puede destacar el uso de plataformas desde cualquier dispositivo de computo, la eliminación de procedimientos técnicos por parte de los estudiantes y docentes gracias a la disponibilidad de la plataforma, así como propiciar el trabajo colaborativo de forma descentralizada por parte de los actores del proceso de enseñanza-aprendizaje.
Una de las fortalezas generada por la computación en la nube, se encuentra centrada a la democratización de acceso, en donde podemos resaltar que un joven en un lugar apartado del mundo con pocos recursos de hardware, puede contar con los mismos entornos computacionales de un joven de una universidad privilegiada (Anderson, 2010); solamente es necesaria una conexión a internet para hacer uso de este beneficio ayudando así a minimizar la brecha digital.
Se puede concluir en esta instancia, que la computación en la nube permite centrar a las instituciones educativas y a sus actores en los objetivos principales de su quehacer institucional, dando como resultado una mejora en los procesos de enseñanza y aprendizaje, trasladando así las preocupaciones técnicas y tecnológicas a personas expertas en el tema.

Debilidades


La responsabilidad sobre el fenómeno de la computación en la nube no ha sido estudiada de forma rigurosa por las instituciones educativas, desaprovechándose todas las potencialidades y usos novedosos que ofrece este concepto en el contexto educativo (Woolsey, 2008); teniendo en cuenta la anterior afirmación, es importante reflexionar acerca del desconocimiento del concepto por parte de los individuos que toman decisiones en las instituciones educativas y de cómo el omitir las ventajas y desventajas que brinda la computación en la nube, puede ir en detrimento de la mejora de los ambientes educativos y administrativos de las instituciones (Tecnologías emergentes, 2010).
viernes, 17 de diciembre de 2010

WEB SERVICES - SERVICIOS WEB

¿Qué son los Servicios Web?


Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a través de la Web.

¿Para qué sirven?


Estos servicios proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinación para realizar operaciones complejas, es necesaria una arquitectura de referencia estándar.

¿Cómo funcionan?


El siguiente gráfico muestra cómo interactúa un conjunto de Servicios Web:



Según el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro de los Servicios Web), a través de una aplicación, solicita información sobre un viaje que desea realizar haciendo una petición a una agencia de viajes que ofrece sus servicios a través de Internet. La agencia de viajes ofrecerá a su cliente (usuario) la información requerida. Para proporcionar al cliente la información que necesita, esta agencia de viajes solicita a su vez información a otros recursos (otros Servicios Web) en relación con el hotel y la compañía aérea. La agencia de viajes obtendrá información de estos recursos, lo que la convierte a su vez en cliente de esos otros Servicios Web que le van a proporcionar la información solicitada sobre el hotel y la línea aérea. Por último, el usuario realizará el pago del viaje a través de la agencia de viajes que servirá de intermediario entre el usuario y el servicio Web que gestionará el pago.

En todo este proceso intervienen una serie de tecnologías que hacen posible esta circulación de información. Por un lado, estaría SOAP (Protocolo Simple de Acceso a Objetos). Se trata de un protocolo basado en XML, que permite la interacción entre varios dispositivos y que tiene la capacidad de transmitir información compleja. Los datos pueden ser transmitidos a través de HTTP , SMTP , etc. SOAP especifica el formato de los mensajes. El mensaje SOAP está compuesto por un envelope (sobre), cuya estructura está formada por los siguientes elementos: header (cabecera) y body (cuerpo).


Para optimizar el rendimiento de las aplicaciones basadas en Servicios Web, se han desarrollado tecnologías complementarias a SOAP, que agilizan el envío de los mensajes (MTOM) y los recursos que se transmiten en esos mensajes (SOAP-RRSHB).

Por otro lado, WSDL (Lenguaje de Descripción de Servicios Web), permite que un servicio y un cliente establezcan un acuerdo en lo que se refiere a los detalles de transporte de mensajes y su contenido, a través de un documento procesable por dispositivos. WSDL representa una especie de contrato entre el proveedor y el que solicita. WSDL especifica la sintaxis y los mecanismos de intercambio de mensajes.

Durante la evolución de las necesidades de las aplicaciones basadas en Servicios Web de las grandes organizaciones, se han desarrollado mecanismos que permiten enriquecer las descripciones de las operaciones que realizan sus servicios mediante anotaciones semánticas y con directivas que definen el comportamiento. Esto permitiría encontrar los Servicios Web que mejor se adapten a los objetivos deseados. Además, ante la complejidad de los procesos de las grandes aplicaciones empresariales, existe una tecnología que permite una definición de estos procesos mediante la composición de varios Servicios Web individuales, lo que se conoce como coreografía.

Ejemplos


A continuación se muestra el código que se utilizaría para solicitar un viaje:

<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
 <env:Header>
 <m:reserva xmlns:m="http://empresaviajes.ejemplo.org/reserva" 
      env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
      env:mustUnderstand="true">

   <m:referencia>
      uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d
   </m:referencia>
   <m:fechaYHora>2001-11-29T13:20:00.000-05:00</m:fechaYHora>
  </m:reserva>
  <n:pasajero xmlns:n="http://miempresa.ejemplo.com/empleados"
      env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
      env:mustUnderstand="true">

   <n:nombre>Pepe Ejemplo</n:nombre>
  </n:pasajero>
 </env:Header>
<env:Body>
  <p:itinerario
    xmlns:p="http://empresaviajes.ejemplo.org/reserva/viaje">
   <p:ida>

     <p:salida>Nueva York</p:salida>
     <p:llegada>Los Angeles</p:llegada>
     <p:fechaSalida>2001-12-14</p:fechasalida>
     <p:horaSalida>última hora de la tarde</p:horaSalida>

     <p:preferenciaAsiento>pasillo</p:preferenciaAsiento>
   </p:ida>
   <p:vuelta>
     <p:salida>Los Angeles</p:salida>
     <p:llegada>Nueva York</p:llegada>

     <p:fechaSalida>2001-12-20</p:fechaSalida>
     <p:horaSalida>media-mañana</p:horaSalida>
     <p:preferenciaAsiento/>
   </p:vuelta>
  </p:itinerario>

  <q:alojamiento
   xmlns:q="http://empresaviajes.example.org/reserva/hoteles">
   <q:preferencia>ninguna</q:preferencia>
  </q:alojamiento>
 </env:Body>
</env:Envelope>
INTRODUCCIÓN
 
Esta interesante metodología la planteó consultor suizo Alexander Osterwalder.
La metodología de innovación y diseño incluye un Lienzo (Canvas) con 9 elementos que parten de determinar la Oferta de valor frente a la Segmentación de clientes de la empresa u organización. De ahí se clarifican los Canales de distribución y la Relaciones. Todos estos determinan los Beneficios e ingresos. Enseguida se especifican los Recursos y las Actividades esenciales, que determinan los Costos más importantes. Finalmente se determinan las Alianzas necesarias para operar.
La propuesta de trabajo es muy dinámica, con el trabajo de grupos interdisciplinarios que combinan habilidades analíticas con pensamiento creativo a lo que Osterwalder llama Pensamiento de diseño. Se insta a los grupos a trabajar frente al lienzo pegado en la pared al tiempo que se representan en post-its las ideas con dibujos y un mínimo de palabras. 
La metodología se puede utilizar lo mismo para diseñar un nuevo negocio o una nueva línea de negocio dentro de una empresa u organización que para mejorar o hacer evolucionar un modelo de negocio en operación.

LOS 9 BLOQUES DEL CANVAS

1.  Segmento de clientes: El objetivo es de agrupar a nuestros clientes con características homogéneas en segmentos definidos y describir sus necesidades, averiguar información geográfica y demográfica, gustos, etc. Después, nos ocuparemos de ubicar a  los clientes actuales en  los diferentes segmentos para finalmente tener alguna estadística y crecimiento potencial de cada grupo.  


2.  Propuesta  de  Valor:  El  objetivo  es  de  definir  el  valor  creado  para  cada Segmento  de clientes describiendo  los productos y  servicios que  se ofrecen a  cada uno. Para  cada propuesta de valor hay que añadir el producto o servicio más importante y el nivel de servicio. Estas primeras dos partes son el núclue del modelo de negocio


3. Canales de Distribución: Para cada producto o servicio que hemos identificado en el paso anterior hay que definir el canal de su distribución adecuado, añadiendo como información el ratio de éxito del canal y la eficiencia de su costo.


4.  Relaciones con clientes: Aquí  identificamos cuáles recursos de tiempo y monetarios utilizamos para mantenernos  en  contacto  con nuestros  clientes. Por  lo  general,  si un producto o  servicio  tiene un costo alto entonces los clientes esperan tener una relación más cercana con nuestra empresa.

5.  Flujos  de  ingresos:  Este  paso  tiene  como  objetivo  identificar  que  aportación monetaria  hace  cada grupo,  y  además  de  donde  vienen  las  entradas  (ventas,  comisiones,  licencias,  etc.).  Así  podremos tener una visión global de cuáles grupos son más rentables y cuáles no.

6.  Recursos  claves:  Después  de  haber  trabajado  con  los  clientes,  tenemos  que  centrarnos  en  la empresa, para ello debemos utilizar los datos obtenidos anteriormente, seleccionamos  la propuesta de valor más importante y la relacionamos con el segmento de clientes, los canales de distribución, las relaciones  con  los  clientes, y  los  flujos de  ingreso para  saber  cuáles  son  los  recursos  clave que intervienen  para  que  la  empresa  tenga  la  capacidad  de  entregar  su  oferta  o  propuesta  de  valor.
Repetimos esta operación para cada propuesta de valor.

7.  Actividades  claves: Utilizando  la propuesta  de  valor más  importante,  los canales  de  distribución y las relaciones  con  los  clientes,  definimos  las  actividades  necesarias  para  entregar  nuestra  oferta. 

Repetimos esta operación para cada propuesta de valor. 


8.  Red  de  Asociados:  En  este  apartado  describimos  a  nuestros  proveedores,  socios,  y  asociados  con quienes  trabajamos  para  que  la  empresa  funcione.  ¿Qué  tan  importantes  son?  ¿Podemos reemplazarlos? ¿Se pueden convertir en competidores?

9.  Costo  de  la  estructura:  Aquí  especificamos  los  costos  de  la  empresa  empezando  con  el más  alto (marketing, R&D, CRM, producción, etc.). Luego  relacionamos cada costo con  los bloques definidos anteriormente, evitando generar demasiada complejidad. Posiblemente,  intentamos seguir el rastro de cada costo en relación con cada segmento de cliente para analizar las ganancias.
 

 
La siguiente presentación muestra de manera más didáctica lo que Alexander Osterwalder nos plantea:

miércoles, 1 de diciembre de 2010

DEL COMERCIO ELECTRONICO AL E-BUSINESS

Introducción
Las empresas visionarias de hoy en día están estableciendo nuevas reglas en sus industrias a través de nuevos modelos de negocios que aprovechan la tecnología, nuevos procesos interempresariales y operaciones integradas para enfrentar las cambiantes necesidades del cliente. Dichas empresas se han dado cuenta de que la siguiente ola de innovación enfocada al cliente requiere de una integración de procesos, aplicaciones y sistemas a una escala sin precedentes y en todas las áreas del negocio. a esta integración la llamamos e-business.

Diferencia entre el Comercio Electrónico y el E-Business
Definimos al comercio electrónico como comprar y vender a través de medios digitales. El e-business, además de abarcar al comercio electrónico, incluye las aplicaciones de usuario y servidor que constituyen el motor de los negocios modernos. El e-business no se trata sólo de transacciones de comercio electrónico; implica ademas la redefinición de los viejos modelos de negocios, con ayuda de la tecnología, para maximizar el valor del cliente. El e-business es la estrategia global y el comercio electrónico es una faceta muy importante del e-business. El E-Commerce es el subconjunto de E-Business. El e-busineess conecta los sistemas críticos de negocio directamente a los clientes, empleados, proveedores y socios comerciales, utilizando Intranets, Extranets, las tecnologías de comercio electrónico, aplicaciones de colaborativas,y la Web.
 
Reglas del E-Business
Regla 1:
LA TECNOLOGIA YA NO ES UN ELEMENTO ADICIONAL EN LA CREACION DE LA ESTRATEGIA DE NEGOCIOS, SINO UNA CAUSA E IMPULSO MISMOS.
Desde la aparición de la computación, el comercio electrónico representa el reto más significativo para el modelo de negocios. Si bien la computadora automatiza las tareas e incrementa la velocidad de los negocios, no ha alterado, en lo fundamental, las bases de éstos; el comercio electrónico sí lo ha hecho. Si cualquier entidad de la cadena de valor empieza a hacer negocios electrónicamente, las demás compañías que formen parte de esa cadena de valor deben seguir la misma tendencia, o corren el riesgo de ser desplazadas. Por lo tanto, replantear y rediseñar el modelo de negocios no es una de las muchas opciones que se presentan a los directivos de una empresa: es el primer paso para prosperar, e incluso sobrevivir; en la era de la información.
El primer paso para ver de una manera diferente es comprender que el e-business tiene que ver con una transformación estructural. Tenemos que tener en cuenta que el valor no se encuentra en los activos intangibles, como los productos, sino en los intangibles, como la marca, la relación con el cliente, la integración de la cadena de abastecimiento y la adición de activos de información claves.

Regla 2:
LA CAPACIDAD DE OPTIMIZAR LA ESTRUCTURA Y CONTROLAR EL FLUJO DE INFORMACION ES MUCHO MAS IMPORTANTE Y REDITUABLE QUE EL DESPLAZAMIENTO Y MANUFACTURA DE PRODUCTOS FISICOS.
Esta regla representa el principal motor de la transformación estructural. El mayor reto que enfrentan las compañias en la actualidad es ajustarse al cambio incesante para sostener el crecimiento. El cambio constante significa que las empresas deben asumir una sana inconformidad respecto al estado de las cosas, desarrollar la capacidad de detectar tendencias emergentes antes que la competencia, tomar decisiones con rapidez y ser lo seficientemente ágiles para crear nuevos modelos de negocios. En otras palabras, para prosperar, las compañías necesitan prevalecer en un estado de transformación constante.
Regla 3:
LA INCAPACIDAD DE DESHACERSE DE UN MODELO DE NEGOCIOS DOMINANTE Y OBSOLETO, PROVOCA CON FRECUENCIA EL FRACASO EN LOS NEGOCIOS.
Hoy en día, se sabe que la supervivencia de una compañía depende de su capacidad de anticipar, medir y dar prontas respuesta a las demandas cambiantes del cliente. Muchas empresas han buscado refugio en la subcontratacion(outsourcing) para poder manejar el cambio dinámico. La subcontratación está cambiando la naturaleza de la realación y los fabricantes de equipo original (OEM). En el pasado actuaban por separado, pero en la actualidad están más relacionados. ¿Por qué? Si el objetivo es complacer a los clientes, la mejor relación para ambas partes es comportarse como una compañía solida, única e integrada.
Los nuevos participantes del e-business utilizan frecuentemente las alianzas de subcontratación como un modelo de negocios para posicionarse en el mercado al competir contra un líder. A esta estrategia suele llamársele GBF(get big fast o crecer con rapidez). Esta nueva generación de alianzas de subcontratación recibe diversos nombres, entre ellos: comunidades, agrupaciones y coaliciones de e-business. 
Si bien las estrategias exitosas difieren ampliamente entre las distintas industrias, todas tienen algo en común: buscan anular las ventajas del líder, a través de la subcontratación, y crear rápidamente un prestigio, que es la tener economías de escala, un aprendizaje acumulativo y acceso preferencial a proveedores o canales.
Regla 4:
LA META DE LOS NUEVOS MODELOS DE NEGOCIOS ES CREAR ALIANZAS FLEXIBLES DE SUBCONTRATACION ENTRE LAS COMPAÑIAS, NO SOLO PARA REDUCIR LOS COSTOS, SINO TAMBIEN PARA QUE LOS CLIENTES QUEDEN COMPLETAMENTE SATISFECHOS.
Esta tendencia vuelve muy vulnerables a todos los líderes del mercado, en especial a los distribuidores, quienes estan en riesgo, porque los nuevos intermediarios en línea son capaces de duplicar su modelo de negocios a un costo muy bajo. Los acuerdos complejos de subcontratación ya no son opcionales: representan la única vía por la cual las compañías pueden obtener mayores beneficios. En la actualidad las empresas estan implementando nuevos modelos de negocios: desintegración y reintegración.
La desintegración permite a las compañías separar los medios(productos) del fin(las necesidades del cliente).
La reintegración permite a los negocios crear un esquema que optimice la cadena de valor en su totalidad. El objetivo de la reintegración es reducir los costos o resaltar la diferencia
Pasos de la desintegración y la reintegración:
  1. Cuestionar las definiciones tradicionales de valor. Los cliente quieren que las compañías con las que hacen negocios mejoren continuamente en la rapidez, la comodidad, la personalización y el precio.
  2. Definir el valor en términos de la experiencia total del cliente.Las empresas necesitan innovar la experiencia total del cliente. La capacidad de optimizar la experiencia de principio a fin representa una solución completa y coloca a las compañías visionarias en una categoria aparte.
  3. Establecer un corriente de valor de principio a fin. Para crear el futuro, una compañía debe ser capaz de establecer la corriente de valor completa, de principio a fin, concepto que no es totalmente nuevo. Los directivos con experiencia saben cómo redefinir los modelos y procesos de negocios cuando implementan nuevas formas de valor. Lo que es diferente en este nuevo ambiente es el uso extenso de agrupaciones sinérgicas, ecosistemas de negocios, coaliciones, redes de cooperacion o esquemas de subcontratación para crear corrientes de valo de principio a fin. Las comunidades de e-business (EBCs), como se conoce a estas redes de relaciones, enlazan negocios, clientes y proveedores para crear una entidad de negocios única.
  4. Integrar procesos de principio a fin. Crear las bases de una nueva tecno-empresa enfocada al cliente. Generar la integración de procesos de principio a fin no es tan fácil como parece. Esta integración demanda un reajuste de las aplicaciones para desarrollar una infraestructura integrada de servicios de apoyo qe permita a los procesos fluir libremente.
Regla 5:
EL COMERCIO ELECTRONICO PERMITE A LAS COMPAÑIAS ESCUCHAR A SUS CLIENTES Y CONVERTIRSE EN "EL MAS BARATO", "EL MAS CONOCIDO" O "EL MEJOR".
Ser "el más barato" no es sinónimo de ser inferior. Se refiere a un formato enfocado a ofrecer un buen precio, para lo cual se han eliminado muchos de lo costos de inventario y distribución.
Con "el más conocido", los clientes saben lo que obtienen. Coca-cola es un gran ejemplo de una marca conocida.  
Se "el mejor" implica renovar los procesos de servicio de manera constante, transformar una compañía facilmente y establecer relaciones amistosas con los clientes y proveedores. 
 

Regla 6:
NO UTILICE LA TECNOLOGIA SOLO PARA CREAR EL PRODUCTO. UTILICELA PARA INNOVAR, AMENIZAR Y MEJORAR LA EXPERIENCIA TOTAL DEL PRODUCTO, DESDE LA SELECCION Y EL PEDIDO HASTA LA ENTREGA Y EL SERVICIO.
Amazon.com ha emprendido iniciativas revolucionarias en la experiencia del cliente a través de su itnerfaz de usuario. El diseño y los vínculo de Amazon.com son lógicos, intuitivos y, sobre todo, amenos.
A medida que el ambiente de los negocios adquiere características electrónicas, las compañías deberían pensar como Amazon.com, en el sentido de enfocarse más a las experiencias y expectativas del cliente. Proporcionar una experiencia satisfactoria tanto en la interfaz como en los servicios de apoyo es una capacidad difícil de desarrollar en el e-business.

Regla 7:
EL MODELO DE NEGOCIOS DEL FUTURO SE BASA CADA VEZ MAS EN MODELOS RECONFIGURABLES DE COMUNIDADES DE E-BUSINESS PARA SATISFACER MEJOR LAS NECESIDADES DEL CLIENTE
Por ejemplo, Amazon.com, CarPoint de Microsoft, E*TRADE y otras compañías nuevas de comercio electrónico sin esencialmente EBCs complejas, conformadas con el propósito exclusivo de organizar y fortalecer relaciones entre empresas para crear un valor de principio a fin par el consumidor. La competencia ya no se da entre compañías, sino en tre EBCs.



Regla 8:
LA DIFICIL TAREA QUE TIENE LA GERENCIA ES CONJUNTAR LAS ESTRATEGIAS, LOS PROCESOS Y LAS APLICACIONES DE NEGOCIOS RAPIDA, CORRECTA Y SIMULTANEAMENTE. ES INDISPENSABLE TENER UN LIDERAZGO FUERTE.
Como la flexibilidad en los negocios es lo que marca el rumbo de la evolución del e-business, uno de los mayores retos para un líder es comprender de manera clara cómo funcionan los canales de distribución de productos y servicios. Los líderes tambien deben comprender que el concepto de e-business abarca el modelo de negocios de una compañía en su totalidad.
Copyright © 2021 TRUJILLOSOFT