SciELO - Scientific Electronic Library Online

 
 issue7Comunicación Entre Ordenadores y la Cloud ComputingCisco y Cloud Computing, "Impresión en la Nube" author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Article

Indicators

    Related links

    • Have no cited articlesCited by SciELO
    • Have no similar articlesSimilars in SciELO

    Bookmark

    Revista de Información, Tecnología y Sociedad

    Print version ISSN 1997-4044

    RITS  no.7 La Paz Nov. 2012

     

    Artículo

     

    Cloud Computing APIs

     

     

    Wilson SantosTicona Mamani
    Universidad Mayor de San Andrés
    Facultad de Ciencias Puras y Naturales
    Carrera de Informática
    Simulación de Sistemas
    win_812t@hotmail.com

     

     


    Resumen

    Una interfaz de programación de aplicaciones (API) es uno de los facilitadores de las principales técnicas de computación en la nube.

    Uno de los principales propósitos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose el trabajo de programar todo desde el principio.

    Una interfaz de programación representa la capacidad de comunicación entre componentes de software. Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir la abstracción en la programación.

    Las APIs asimismo son abstractas: el software que proporciona una cierta API generalmente es llamado para la implementación de esa API.

    Palabras Clave

    Plataformas,Cloud API,Amazonas (EC2), Google App Engine,Estandarizado


     

     

    1. INTRODUCCION

    Las Cloud APIs son interfaces de programación para aplicaciones (API) que se utilizan para crear aplicaciones en el mercado de cloud computing. Cloud APIs permiten que el software pueda solicitar datos y cálculos de uno o más servicios a través de una interfaz directa o indirecta.

    Según Mashery, las APIs en la nube se dividen en tres categorías generales: [3]

    •   Control de API, que permite a la infraestructura en la nube poder añadir y reconfigurar o eliminar aplicaciones en tiempo real, ya sea por control humano o mediante programación de funciones de tráfico, cortes u otros factores
    •    API de datos, que son los conductos a través del cual fluyen los datos dentro y fuera de la nube.
    •    Aplicación funcional de las APIs permiten la funcionalidad con la que los usuarios finales interactúan, como los servicios, tales como carros de la compra, wikis, y widgets.

    También pueden estar segmentadas en categorías de infraestructura, servicios y aplicaciones. Las Aplicaciones suelen combinar estas API según sea necesario.

    1.1   Infraestructura

    Las APIs de infraestructura modifican los recursos disponibles para hacer funcionar cada aplicación. Las funciones pueden crear, recrear, mover o eliminar componentes como máquinas virtuales y en la configuración pueden asignar o cambiar los atributos de la arquitectura como la configuración de red y seguridad). Estos componentes y su uso común se conoce como infraestructura como servicio (IaaS).

    1.2   Servicio

    Las APIs de servicio proporcionan una interfaz con capacidad específica proporcionada por un servicio creado expresamente para activar esa capacidad. Base de datos, mensajería, portales web, asignación, e-commerce y almacenamiento son todos ejemplos de APIs de servicios. Estos servicios se conocen comúnmente como plataforma como servicio (PaaS).

    1.3   Aplicación

    Las APIs de aplicación proporcionan métodos para la interfaz y asi extender las aplicaciones en la web. Las APIs de aplicación tienen conexión a aplicaciones como CRM, ERP, social media y help desk. Estas aplicaciones se entregan como software de servicio (SaaS).

     

    2. PLATAFORMAS

    Los desarrolladores tienen una amplia gama de plataformas para elegir la creación de aplicaciones basadas en la nube. Dos de las plataformas más populares son Elastic Compute Cloud (EC2 del Amazonas)y el motor de App de Google (GAE). Además hay una amplia variedad de otras plataformas que no han conseguido mucho impacto, pero están haciendo tracción.

    2.1 Goog le App Engine

    Google App Engine es una plataforma que está más orientada a pruebas de concepto y sus herramientas de construcción y aplicaciones críticas de cada proceso son útiles en cada desarrollo.

    Cuenta con 500 megabytes de almacenamiento, 200 megaciclos de CPU por día y 10 gigas de ancho de banda por día. Esto debería permitir servir unos 5 millones de páginas vistas por mes, además de las aplicaciones. En el futuro, Google planea mantener las cuentas básicas de forma gratuita.

    La oferta de Google es similar al Amazonas, pero no proporciona un conjunto de servicios independientes como S3 de Amazon para almacenamiento, EC2 para hospedaje. El Google ofrece todo en un solo paquete.

    Una de las desventajas de la Google App engine es que los desarrolladores están limitados a Python, aunque Google planea añadir otros lenguajes de programación en el futuro. Los desarrolladores también están restringidos a la base de datos BigTable, que se ejecuta dentro del sistema de archivos de Google. Aunque es diferente de las bases de datos tradicionales, ofrece algunos beneficios alrededor de escalabilidad.

    Las API de GAE incluye:

    •      El Runtime de Python
    •      Almacén de datos API
    •      API de imágenes
    •      API de correo
    •      Memcache API
    •      URL Fetch API
    •      Usuarios de API

    BigTable. Un componente clave de la Google App Engine es BigTable, que tiene algunas diferencias claves desde una base de datos tradicional. Es rápido y de muy grande escala, que puede activar un disperso mapa multidimensional distribuido, en lugar de columnas y filas de la base de datos tradicional. Google App Engine tiene una sintaxis de SQL similar llamada "GQL".

    Optimizaciones de Google App Engine. Niall Kennedy proporciona un número de diferentes optimizadores para el desarrollo de GAE. Este comparte algunas de las mejores prácticas que ha aprendido para realizar búsquedas basadas en clave, reducir columnas tipos de despliegue etc..

    Trucos y consejos de Google App Engine Majek presenta una variedad de consejos y trucos para desarrollar aplicaciones de GAE. Algunos de los más destacados incluyen cómo obtener dinámicamente la versión y el nombre de la aplicación, cómo identificar el host actual y cómo configurar captcha en GAE.

    Uso de Komodo Edit como un IDE para Google App Engine Esta guía explica cómo puede utilizar Komodo como un entorno de desarrollo alternativo para GAE, después de que el autor abandonó el Eclipse.

    Rollin con Google App Engine, Andrew Tetlaw te da los conceptos básicos para obtener una aplicación y ejecutar el GAE. Explica los componentes básicos del marco. Google App Engine representa algo así como el Commodore 64. Sabe que un equipo personal no hace mucho por su cuenta pero es flexible y programable, inspirador y divertido. Utilizarlo para jugar con esas cosas, averiguar cómo funciona cosas, probar ideas nuevas y la creación de herramientas personalizadas."

    Creación de aplicaciones Flash con Google App Engine El proyecto de SWF GAE es un recurso de Flash y Flex específicamente destinadas a obtener y ejecutar rápidamente con

    Google App Engine para la construcción y el despliegue de aplicaciones Flash y Flex masivamente escalables.[1]

    2.2 Amazonas

    EC2 de Amazon es un servicio comercial que permite a las empresas el alquiler de equipos para ejecutar sus propias aplicaciones de ordenador. Los clientes alquilan máquinas virtuales (VMs) a través de una interfaz de servicios web. La plataforma utiliza la virtualización Xen de uno de los tres tamaños que van desde 1,7 gigabytes a 7,5 gigabytes de memoria y 850 gigabytes de almacenamiento.

    El principal sitio de Servicios Web de Amazon contiene noticias y vínculos a tutoriales para comenzar con la ejecución de sus propias aplicaciones de AWS.

    Los principales productos de Amazon Web Services incluyen:

    •      Amazon Elastic Compute Cloud (EC2)
    •      Amazon Simple Storage Service (S3)
    •      Amazon Simple cola servicio (SQS)
    •      Turco mecánico de Amazon (Mturk)
    •      Alexa Web Services para proporcionar datos de tráfico
    •      Amazon SimpleDB

    SimpleDB de Amazon facilita el trabajo con datos.Tony Patton proporciona una visión general de cómo funciona SimpleDB y cómo establecer una base de datos.

    Conexiones de desarrollador de Amazonas. Del desarrollador gateway para el desarrollo de la Amazonía. El sitio contiene una serie de tutoriales, consejos y proporciona el código fuente para obtener un proyecto AWS desde cero..

    Blog de servicios Web de Amazon. Ofrece noticias y opiniones sobre productos de Amazon Web Services, herramientas e información para desarrolladores. Incluye enlaces a información, tutoriales, webinars y seguridad.

    Otras plataformas de cloud incluyen: Sistema operativo de negocios NetSuite (NS-BOS) La finalidad principal de NS-BOS es Personalizar la contabilidad de la compañía, las ventas y las aplicaciones ERP (enterprise resource planning).[1]

     

    3. CLOUD API ESTÁNDARES

    La discusión parece ser alrededor de cloud APIs. Muchos quieren estandarizar la semántica, encabezados, llamadas de método y así sucesivamente. Esto Facilitaría el trabajos de los integradores porque se podría crear una única API, escribir en él y trabajar en desde cualquier lugar.

    Uno de los temas principales es el de las normas. Aunque ha habido un intento de crear las normas API dentro de cloud computing, toma años para que algo como esto pueda evolucionar. Algunos creen que la creación de un conjunto de nubes a las normas API es importante para el crecimiento futuro del cloud computing, mientras que otros no piensan que es necesario. Sin embargo, no tener normas podría causar muchos problemas. Por ejemplo, si todos los sistemas de nubes se basaron en diferentes normas, transferir el código que se utiliza para gestionar su nube no seria posible. Si, por cualquier motivo, se tuviera que transferir a un proveedor diferente de la nube, está tomando el riesgo de tener que reescribir la aplicación de trabajo. Esto podría ser un proceso muy costoso y tardio. A mediados de 2010, el sitio ReadWriteWeb sondea a sus lectores y había encontrado que casi el 50% de los encuestados dijo que Amazonas S3's API debe ser la norma, mientras alrededor 11% pensaba que las normas API en la nube eran necesarias en absoluto. Cabe duda de que Amazon ha hecho enormes contribuciones al avance de cloud computing, pero lo han hecho para beneficiarse a sí mismos, y no a la nube ni a la industria de la computación.

    Mientras algunos quieren crear estándares y prevenir la innovación, hay otros que simplemente no ven claro que la industria de la computación en la nube está lista para las normas API. Cloud computing está todavía en su infancia, y todavía hay un largo camino por recorrer. Las innovaciones nunca se detendrá, pero habrá un punto donde la nube es lo suficientemente madura para que las normas pueden hacerse. Organizaciones como VMware están trabajando para crear un futuro más claro para cloud computing mediante la construcción de plataformas para el desarrollo de la nube. El proyecto de OpenStack (con más de 100 empresas en soporte) también está buscando construir un ecosistema de nube.

    Hay que, definir un conjunto mutuamente convenido de maneras de hacer algo las normas útiles, tienen que permanecer bastante estáticas y sin cambios durante largos períodos de tiempo. Imaginemos lo que ocurriría si las normas cambiaron rápidamente desarrolladores siempre estaría escribiendo a un blanco móvil. Piense acerca de lo que sucedió con HTML y el número de versiones que fueron publicadas, fue y es un lío. Mientras los protocolos básicos que potencia el DNS de Internet ,IP, TCP, UDP, y así sucesivamente son valiosos porque han permanecido prácticamente sin cambios durante años y años.

    Nosotros estamos tan trabados en IPv4 que moviendo a IPv6 va a ser un enorme reto para vendedores, proveedores de servicios, los desarrolladores de aplicaciones y usuarios básicamente, cualquier persona que utiliza el Internet. No vamos a mover a IPv6 hasta que se vean obligados a hacerlo, y será un proceso doloroso. ¿No es uno de los lock-in Boogeyman?

    Eso está bien. Aceptamos que lock-in debido a los enormes beneficios de ganancia, como una estable, confiable y ampliamente adoptado interfaz y protocolo que otras cosas pueden ser desarrollados y estandarizados como HTTP. Si la industria no bloquea voluntariamente los estándares de TCP/IP/UDP, no tendríamos una Internet global por lo menos, no uno donde puede ir a cualquier lugar sin restricciones.

    Si las normas incluyen la capacidad para extender los métodos estandarizados para realizar cosas privativas como aprovisionamiento de almacenamiento con o sin thin provisioning una opción interesante luego la API del servicio todavía va a ser personalizada para cada servicio. Si cada proveedor cloud implementa una API estándar además de su propia API para sus propias características, el resultado sería lo que son las APIs son hoy. Integradores tendría que soportar individualmente cada proveedor o apoyar sólo el conjunto mínimo de funciones definidas en el estándar.

    Creo que lo que necesita para ser normalizadas es acuerdos universales sobre los pilares fundamentales, como los protocolos de comunicaciones como WS-*(Web Services) servicios, formatos de contenedor como JSON o XML, respuestas, etc.. Facilitará la integración de todo el mundo y proporciona una buena base para que los proveedores innoven encima de ellos. [2]

     

    4. CONTROL DE API Y SERVICIOS WEB EN LA NUBE POR NIMSOFT

    Cuando se ofrece o se depende de una API, es fundamental controlarla, ya que no es fácil detectar cuando esta falla o sufre problemas. El control de API y servicios web (en la nube) de Nimsoft Cloud Monitor identifica rápidamente cualquier problema de rendimiento y se asegura de que la API presente su producto o servicio sin complicaciones.

    ¿Qué es el control de API y servicios web (en la nube) de WatchMouse?

    El control de API y servicios web (en nube) de Nimsoft Cloud Monitor comprueba la disponibilidad y el rendimiento de API y servicios web. Por medio de la tecnología de scripts de WatchMouse, se puede simular el flujo completo de casi todas las API y reproducirlo periódicamente desde más de 50 estaciones de control.

    Las alertas por SMS y correo electrónico de Nimsoft Cloud Monitor (con jerarquía de escala) garantiza a un usuario que sea el primero en saber cuando se produzca un error o una avería en cualquiera de sus API bajo control. A través de la consola WatchMouse, también tendrá a su disposición informes de análisis completos y detallados.

    http://api-status.com/ es un ejemplo de un sitio con control de API y servicios web (en nube) de WatchMouse. Cada una de las entradas en este sitio se actualiza con una monitorización de scripts de Nimsoft Cloud Monitor que se comporta como cliente de esas API.

    ¿Por qué necesito el control de API y servicios web (en nube)?

    Sin la monitorización, no es fácil saber si una API o un servicio web en la nube está inactivo o tiene problemas. La monitorización de Nimsoft Cloud Monitor es esencial si su negocio realiza una de las actividades siguientes:

    • Usa API de terceros para entregar componentes de su servicio principal: si su negocio, como es cada vez más frecuente, depende de API de terceros para entregar parte del servicio, entonces necesita monitorización. Por ejemplo, http://store.apple.com/uk usa API para comprobar el stock, procesar los pagos y gestionar los envíos. Se trata de la única manera fiable de verificar la disponibilidad y el rendimiento de las API de los proveedores y de este modo poder garantizar una entrega correcta del servicio a sus clientes.

    • Ofrece una API, como por ejemplo, Twitter, una puerta de enlace de pago, Foursquare: si usted ofrece una API de la que otros dependen (y probablemente por la que pagan), es fundamental que sepa rápidamente si esta no funciona correctamente. Un funcionamiento lento o incorrecto de la API impacta todas las aplicaciones y servicios que se han creado alrededor de ella y puede resultar en pérdida de ventas, disminución de los ingresos y daño al prestigio de la empresa.

    Además de indicarle el rendimiento de su API, la monitorización de Nimsoft Cloud Monitor puede mantener a sus clientes informados. Si publica los resultados de la monitorización realizada por Nimsoft Cloud Monitor de su API y servicios web (en nube) a través de una página de estado público, no solo cubrirá la demanda de sus clientes de mayor transparencia, sino que además ahorrará en recursos ya que, en lugar de ponerse en contacto con su equipo de asistencia para ponerse al día sobre el estado de su servicio, los clientes pueden sencillamente consultar la página de estado público para obtener información sobre el tiempo de actividad y el rendimiento. Por ejemplo, http://dev.twitter.com/status.

    ¿Cómo funciona?

    Para una API REST (Transferencia de Estado Representacional) será sencilla, una monitorización regular de Nimsoft Cloud Monitor (http/https) comprobará una URL específica y el objeto de datos XML o JSON devuelto. Usando estas monitorizaciones regulares, puede buscar la ausencia o presencia de una cadena determinada para identificar errores en API sencillas de llamada única.

    Para patrones de interacción más compleja, una monitorización 'script' de Nimsoft Cloud Monitor permite la monitorización de transacciones de múltiples pasos y proporciona la confirmación de

    respuestas API más complejas. Los scripts pueden también recordar el estado por medio de cookies u otros mecanismos.

    ¿Qué protocolos y funciones admite?

    El control de API y servicios web (en nube) de Nimsoft Cloud Monitor admite todo tipo de API, entre otras: REST, SOAP, oAuth, JSON, XML, RSS, openID y XML-RPC.

    El control de API y servicios web (en nube) de Nimsoft Cloud Monitor verifica el correcto funcionamiento de la API de acuerdo a sus especificaciones y comprueba los datos esperados en el objeto devuelto. [4]

     

    5.  CONCLUSIONES

    Una interfaz de programación de aplicaciones (API) en la nube es una parte muy importante en la aplicación de la tecnología basada en web.

    Sin APIs, en la nube la tecnología en cuestión serviría para un propósito limitado y limitaría gravemente sus capacidades de evolución. Cloud computing es una forma atractiva de almacenar y transferir datos.

    Sin el uso de APIs en la programación no habrían crecido lo que son ahora las aplicaciones, Como en el cloud compiuting continúan creciendo y expandiéndose,

    Asi también las APIs evolucionarán para dar a los desarrolladores una forma aún más precisa de la interacción.

     

    6.  REFERENCIAS

    [1] http://searchcloudcomputing.techtarget.com/tutorial/Cloud-computing-programming-API-tutorial        [ Links ]

    [2] http://wikibon.org/blog/cloud-api-standards/        [ Links ]

    [3] http://en.wikipedia.org/wiki/Cloud_API        [ Links ]

    [4] http://cloud-computing.findthebest.com/d/a/API-(Application-Programming-Interface)        [ Links ]