jueves, 10 de mayo de 2018

Estudio, análisis y puesta en marcha de Web Service

Estudio, análisis y puesta en marcha de Web Service

ING Alfonso Medina Duran

10/05/2018

Av. Instituto Tecnológico s/n, Plutarco Elías Calles, 21376 Mexicali, B.C.

Resumen

Actualmente la tecnología en dispositivos conectados a la red ha evolucionado significativamente los últimos años, el uso de smartphones y el internet de las cosas ha llevado a un progresivo aumento en la cantidad de dispositivos conectados simultaneamente, esto obliga a los desarrolladores a alojar sus aplicaciones dentro de un ambiente de servidores virtuales en la red, un entorno comúnmente conocido como “la nube” los cuales deben soportar un gran número de peticiones simultáneas y una alta demanda de recursos, por suerte también nos hemos encontrado con el surgimiento nuevas tecnologías y herramientas de desarrollo que nos ayudan a satisfacer dicha demanda. Dentro de este documento se expone una poderosa tecnología de intercomunicación entre aplicaciones dentro de la nube conocida como Web Service, un entorno que nos ofrece flexibilidad, escalabilidad y estabilidad para nuestros desarrollos, mostraremos las características que definen a un web service, analizaremos los principales proveedores que nos ofrecen este servicio y se mostrará el desarrollo de un proyecto ejemplo dentro de AWS (Amazon Web Service).

Índice

1. Web Service

1.1. ¿Que es un web service?

1.2. ¿Para qué sirve?

1.3. Breve Historia

1.4. Características

1.5. Estándares y protocolos

1.6. Ventajas y desventajas

1.7. Organismos normalizadores

2. Proveedores

2.1. Principales proveedores

2.2. Marketplace

2.3. Servidores

2.4. Discos

2.5. Respaldos

2.6. Disponibilidad

2.7. Costos

3. Puesta en marcha

3.1. Proyecto

3.2. Contratación y confguración de AWS EC2

3.3. Desarrollo de web service

Programación NodeMcu

4. Conclusiones

1 Web Service

1.1 ¿Que es un web service?

En las bibliografías existen distintas definiciones para el concepto de web service, algunos autores lo definen como una vía de intercomunicación e interoperabilidad entre máquinas conectadas en Red, también se definen como un conjunto de protocolos y estándares para el intercambio de datos entre aplicaciones. Basicamente la funcion de un web service se lleva a cabo entre cliente y servidor donde el cliente hace una petición, el servidor la recibe, la procesa y entrega al cliente una respuesta, un ejemplo claro de webservice es google maps al cual le puedes hacer una petición a través de su API donde le envias tu direccion en formato de texto y este te contesta con las coordenadas latitud y longitud, a este proceso se le conoce como web service por lo cual se puede definir como el tráfico de mensajes entre dos máquinas.

1.2 ¿Para qué sirve?

El uso de web service conlleva a la centralización de los datos, esto quiere decir que todos los datos de tu aplicación se encuentren en un solo lugar y estos pueden ser consultados desde otros dispositivos en diferentes lugares del mundo solo teniendo una conexión a internet. imagina que tienes que desarrollar una aplicación en tu ordenador para administrar tu lista de tareas del día, si piensas en desarrollar la aplicación totalmente de escritorio, para acceder a tu lista de tareas necesitas tu computador en todo momento, el problema recae al momento de querer consultar remotamente la misma lista de tareas, desde un smartphone por ejemplo, esto sería muy complicado, sin embargo con la utilización de web services puedes centralizar los datos de tu aplicación en la nube, tu desarrollo de escritorio no tendría base de datos, esta estaría alojada en la nube, esto permitirá que tu lista de tareas también pueda ser consultada a través de una aplicación móvil sin importar donde te encuentres ni el sistema operativo de este, inclusive podría ser consultada por una aplicacin web.

1.3 Breve Historia

50s, 60s: La computación se basaba en una computadora múltiples usuarios conocida como computadoras de tiempo compartido ya que los equipos eran grandes y muy costosos.

70s: El paradigma computacional cambia a una computadora un usuario sin embargo los equipos siguen siendo costosos aun no llegaban a el público en general solamente eran utilizadas por empresas y escuelas.

80s: Los equipos se vuelven accesibles para el consumidor, llegando a ocupar un lugar en los hogares. fue a finales de los 80 cuando toman auge las redes de computadoras por lo que los sistemas de cómputo se vuelven descentralizados,

90s: El Internet y especialmente la Web se convierte en un medio masivo de comunicación.

2000: el paradigma de la computación cambia a un usuario múltiples computadoras. Las aplicaciones han migrado a lo que conocemos como “servicios Web”, por lo cual los datos de las aplicaciones se vuelven centralizados. comienzan a surgir proveedores de web service como AWS con novedades como la escalabilidad de servidores, lo cual permite que si tu demanda de recursos aumenta, también aumenta la capacidades de tu servidor, y inversamente funciona igual si tu demanda es baja las capacidades también bajan.

1.4 Características

Para que un desarrollo en la nube pueda ser considerado un web service este debe cumplir con las siguientes cualidades y características:

  • Cuenta con un protocolo de comunicación ya sea HTTP, SMTP, FTP, etc. HTTP es uno de los más utilizados ya que trabaja sobre TCP en el puerto 80, dado que por seguridad un firewall cierra distintos puertos de internet, la utilización del puerto 80 facilita la comunicación pues es el mismo puerto que utilizan los navegadores WEB.
  • Basado en tecnologías de intercambio de mensajes, esto quiere decir que un web service no ofrece al cliente una interfaz gráfica, o cualquier otro caso diferente al intercambio de mensajes, simplemente a cada solicitud corresponde a una respuesta.
  • Proporciona interfaces de comunicación establecidas, un web service presenta una funcionalidad de caja negra donde a solo se puede acceder a su contenido a través de sus interfaces bien definidas.

1.5 Estándares y protocolos

Como se definió anteriormente un web service establece la interfaz de comunicación por medio del protocolos HTTP, SMTP, FTP, etc. el estándar de la estructura de los mensajes puede variar, se debe de utilizar la estructura que más se ajuste al uso que se le dará, debemos tener en cuenta que todas las aplicaciones que se comuniquen con el web service deben manejar el estándar de comunicación establecido por el mismo. por ejemplo si la respuesta de tu web service es un XML, todas las aplicaciones que consumen este recurso deben estar diseñadas para escuchar y procesar una respuesta XML.

  • SOAP son usualmente utilizadas para la integración de sistema a sistema, y los equipos de operaciones de TI las prefieren debido a su estructuras de datos más precisas. solamente puede enviar mensajes con arquitectura XML.
  • REST son la preferencia actual de los desarrolladores móviles. las interfaces REST tienden a ser muy faciles de implementar, y aunque son configurables, no llevan estructuras de datos complejas fuertemente tipadas como lo es el SOAP. pueden enviarse estructuras de mensaje XML, JSON,
  • MQTT son las preferidas para ser utilizadas en Iot, ya que los requisitos para MQTT son mínimos, está diseñado para dispositivos integrados de recursos limitados, además fue diseñado para la eficiencia de la comunicación.

1.6 Ventajas y desventajas

Ventajas: Intercomunica o funge como intermediario entre aplicaciones desarrolladas en distintas plataformas, en distintos lenguajes, incluso alojadas en distintos sistemas operativos. Sus protocolos y estándares de comunicación están basados en texto plano por lo cual hace más fácil el entendimiento de su funcionamiento. (como lo es XML). centraliza la información en un solo lugar por lo cual el trabajar en seguridad de la de la misma se vuelve menos complejo al estar toda en un solo lugar.

Desventajas: Debido a que los mensajes pueden interpretarse como texto plano también lo vuelve una desventaja por ejemplo al hacer una transacción bancaria esto no es recomendado. Al ser muy prácticos a distintas plataformas y protocolos sacrifica su rendimiento si lo comparamos con otros modelos de computación distribuida dedicada como lo es RMI o COBRA. ya que utilizar HTTP, el firewall podría no auditar la comunicaciones entre aplicaciones y el web service.

1.7 Organismos normalizadores

Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los Web Services. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.

OASIS ( Organization for the Advancement of Structured Information Standards, es un consorcio internacional sin fines de lucro que se orienta al desarrollo, la convergencia y la adopción de los estándares de comercio electrónico y servicios web. Los miembros del consorcio deciden cómo y qué trabajo se realiza mediante un proceso abierto y democrático. El trabajo técnico se lleva a cabo en categorías tales como: Energía, Servicios Web, Comercio electrónico, Internet de las cosas, Seguridad, Leyes y Gobierno, Cadena de Suministro, Administración de Computación, Focos de Aplicación, Document-Centric, Procesamiento XML, Conformance/Interop y Dominios Industriales, entre otras áreas.

El Consorcio World Wide Web (W3C) es una comunidad internacional donde las organizaciones, miembros y el público en general trabajan conjuntamente para desarrollar estándares Web. Liderado por el inventor de la Web Tim Berners-Lee y el Director Ejecutivo (CEO) Jeffrey Jaffe, la misión del W3C es guiar la Web hacia su máximo potencial.

La Organización para la Interoperabilidad de Servicios Web (Web Services Interoperability Organization) es un esfuerzo de la industria en este sentido. Su objetivo es fomentar y promover la Interoperabilidad de Servicios Web (Web Services Interoperability - WS-I) sobre cualquier plataforma, sobre aplicaciones, y sobre lenguajes de programación. Su intención es ser un integrador de estándares para ayudar al avance de los servicios web de una manera estructurada y coherente. La WS-I ha organizado los estándares que afectan a la interoperabilidad de los servicios web en una pila basada en funcionalidades.

2 Proveedores

2.1 Principales proveedores

El pionero dentro del cloud fue Amazon quien en 2006 lanzó al mercado AWS, ser el primero le concedió una ventaja muy bien aprovechada, ya que aun con el tiempo amazon sigue liderando el mercado, cada vez con nuevas novedades y características lo que le ha ayudado a acaparar una gran cantidad de clientes, mientras que los sus competidores más fuertes (Microsoft Azure, Google Cloud) han tenido que evolucionar más rápido para competir contra el nivel de amazon, sin embargo han sabido escuchar las necesidades de sus clientes al grado obtener excelentes productos. Microsoft en 2010 publicó sus servicios de cloud computing “Azure” (4 años después que amazon), los primeros años su aproximación a amazon no fue muy buena, tardaron mucho en alcanzar la potencia con la que cuentan hoy en dia, pero han sabido responder bastante bien a los retos de ofrecer servicios de cloud. Google tiempo después, sin embargo es bien sabido que google cuenta con una tremenda infraestructura y experiencia, ademas tenian a dos grandes competidores que le sirven como base tanto en funcionalidades como en precios que necesitaba para entrar al mercado, además google contaba ya con una serie de servicios en la nube que supo integrar de manera inteligente (drive, docs, apps ect...), sin mencionar las interfaces profecionales y bien guiadas con las que cuenta.

2.2 Marketplace

Este en un punto que diferencia un proveedor de otro al ofertar web service, Marketplace se refiere a las sistemas pre configurados para funcionar con una plataforma en específico, por ejemplo necesitas disponer de un sistema especializado en Iot, Amazon te ofrece una serie de herramientas que facilitan tu trabajo desde las configuraciones de sistema hasta el software embebido para dispositivos electrónicos.

Amazon cuenta con un Marketplace de 3800 soluciones pre configuradas listas para despegar en su cloud. Azure cuenta con aproximadamente 3500 marketplace disponibles y google sin embargo les llama launcher y cuenta con más de 700 sistemas pre configurados, quizá sean muy pocos comparados con sus competidores pero es buen numero si tomamos en cuenta que fue el último en surgir.

El planteamiento del marketplace permite no solo agilizar los despliegues sino contratar las licencias necesarias en modo pago por uso, que es el modelo que actualmente se impone en cualquier tipo de aplicación.

2.3 Servidores

Los tres competidores manejan una serie de servidores pre configurados, no es posible que te generes un servidor a tu medida como se hace al montar una maquina virtual, si no que tienes que seleccionar una de las opciones que ellos te brindan, igualmente la escalabilidad permite brincar entre capacidades, por ejemplo si contrataste un servidor con 2 GB de ram y en temporada alta tus usuarios se duplican, no es necesario que contrates un nuevo servicio, automáticamente tu proveedor te ajusta el tamaño de tu ram o procesador según sea el caso, e inversamente funciona de igual forma si tu temporada alta ya paso regresarías a tu servicio normal, esto permite que tu tarifa solo te cobren por lo fue usado. Amazon Web Services cuenta con 63 tipos de servidor, Microsoft Azure con 62 tipos de servidor y Google Cloud Platform con 21 tipos de servidor, este último cuenta con la diferencia de que puedes seleccionar el procesador que deseas que cuente tu servidor. Cuantas más opciones de servidor más fácil es que encontremos la opción adecuada para nuestra carga de trabajo.

2.4 Discos

La tecnología de los discos es muy importante ya que determina la velocidad de lectura y escritura por lo cual determina la velocidad global de tu plataforma.

  • Discos óptico: Hasta 200 IOPS, hasta 90 Mbps
  • Discos SSD: Hasta 20000 IOPS, hasta 320 Mbps

AWS cuenta con ambos tipos de discos, incluso puedes seleccionar un disco SSD y ajustar su velocidad para que solo pagues por lo que necesites y no por toda la velocidad del disco. Azure también cuenta con ambos discos, sin embargo estos no se pueden seleccionar independientemente del equipo, estos ya estan pre seleccionados con el equipo, esto quiere decir que desde un principio al seleccionar el servidor debes identificar que tipo de disco te ofrece. Google Cloud Platform también cuenta con ambos tipos de discos y pueden ser aplicados a cualquier sistema elegido, sin embargo no es posible ajustar la velocidad del SSD.

2.5 Respaldos

La realización de respaldos periódicamente de todo el servidor es de suma importancia para lo cual los tres proveedores cuentan con diferentes herramientas para que tu información se encuentre siempre segura, en dado caso de un problema grave con el servidor sea posible cargar una versión anterior con toda normalidad sin tener que sufrir pérdidas graves. En este punto Azure tiene ventaja sobre los demás ya que ofrece copias de seguridad basadas en snapshots, esto quiere decir que crea una imagen de todo tu sistema para casos de emergencia, esta copia permite recuperar tanto la máquina virtual completa como todos los archivos y todo en un tiempo récord. Amazon y google por otra parte no cuenta con herramientas que programen de manera automáticamente la generación de snapshots, pero se pueden instalar módulos adicionales que lo haga, mientras que azure cuenta con una sencilla interfaz para programar la periodicidad de generación de respaldos. Por otra parte cuando se trata de restaurar un respaldo de sistema AWS tiene los tiempos más rápidos, además de generación de respaldos los tres proveedores también cuentan con la opción de contar con sistemas espejo en distintas zonas geográficas las cuales en caso de que uno de los servidores caiga otro pueda tomar su lugar sin ningún problema.

2.6 Disponibilidad

Este punto quizá no sea tan importante ya que los tres proveedores son de primer nivel por lo cual “regularmente” tienen disponibilidad en todo el mundo 24 hrs los 365 días del año, decimos regularmente porque claro nadie es perfecto y existen casos muy aislados en que los servicios no se encuentran disponibles. Amazon cuenta con 15 centros de datos en todo el mundo, ademas 78 puntos de distribución de contenido alrededor del mundo. Azure cuenta con 28 centros de datos, además de 44 puntos de distribución de contenido. La organización Cloudharmony cuenta con datos de disponibilidad de cloud alrededor del mundo. En 2016. Goolge en todo el año no estuvo disponible un total de 74 minutos, Amazon un total de 108 minutos y Microsoft 274 minutos. Cabe mencionar que los tiempos fueron calculados por la sumatoria de los tiempos en las distintas regiones, por ejemplo puede que el servicio no estuvo disponible en américa 5 minutos pero en el resto del mundo si se encontraba disponible y viceversa. Hay que notar que google aunque tenga el menor número de centros de datos, tiene más tiempo de disponibilidad, por lo cual el número de centros de datos solo hay que tomarlo como un dato más y no como algo significativo.

2.7 Costos

Dentro de este punto la función atractiva es que se paga solamente por lo que se usa, por ejemplo, En la empresa donde laboras solo usan el sistema en horario de oficina 10 hrs como maximo al dia de lunes a viernes, gracias a esta propiedad de pagar por lo que usas que los tres proveedores ofertan, ya no tendrías que pagar un servidor que funcione las 24 hrs del dia los 365 días del año esto causaría una ahorro significativo en cuanto a tu costo de alojamiento del sistema de tu empresa.

AWS cuenta con un plan tarifario donde te cobra por horas de uso, puedes contratar de un año hasta 3 años, obteniendo descuentos de hasta un 45% de descuento al pagar más años. Azure por su cuenta sus tarifas pueden ser por minutos, sin embargo este no cuenta con descuentos por pago en años por anticipado. Google por su cuenta también maneja tarifas en minutos y este si reduce sus costos conforme más tiempo contrates.

Los precios de los tres proveedores son muy similares al ser competencia codo a codo se ven obligados a ofrecer precios muy semejantes, amazon cuando inició en 2006 era el único en el mercado y tenía precios muy poco accesibles, sin embargo al aparecer Azure y Google cloud con precios mas bajos, Amazon bajo sus costes considerablemente, actualmente los precios de los tres son muy similares y las tarifas depende de los recusros consumidos.



3 Puesta en marcha

3.1 Proyecto

El ejercicio consiste en cómo realizar un proyecto básico implementando la tecnología de Amazon web service, desde cómo contratar el servicio hasta cómo consumir el web service desde un dispositivo NodeMcu con módulo wifi ESP8266. antes que nada Amazon web service se define a sí mismo como una plataforma de servicios de nube que ofrece potencia de cómputo, almacenamiento de bases de datos, entrega de contenido y la funcionalidad de escalar y crecer.

3.2 Contratación y configuración de AWS EC2

Amazon Elastic Compute Cloud (Amazon EC2) proporciona capacidad de computación escalable en la nube de Amazon Web Services (AWS). El uso de Amazon EC2 elimina la necesidad de invertir inicialmente en hardware, de manera que puede desarrollar e implementar aplicaciones en menos tiempo. Puedes usar Amazon EC2 para lanzar tantos servidores virtuales como necesite, configurar la seguridad y las redes, y administrar el almacenamiento. Amazon EC2 te permite escalar hacia arriba o hacia abajo para controlar cambios en los requisitos o picos de popularidad, con lo que se reduce la necesidad de prever el tráfico.

Desde la página de amazon web service, puedes explorar la variedad de productos disponibles, para este caso práctico fue seleccionado un servidor virtual en la nube EC2.



Como primer paso debemos registrarnos en AWS para poder contar con un Dashboard donde contrataremos y administramos nuestros servidores contratados.

Solo debemos llenar algunos datos para finalmente crear una cuenta.


Una vez dentro seleccionamos launch instance.


Se mostrará una lista con los distintos servidores que pueden ser contratados, para este caso práctico se seleccionó un servidor Ubuntu Server 16.04 de 64 bits, 1 CPU, 1 GB de ram y 8GB de disco SSD , y una conexión moderada. la velocidad del internet y el CPU son virtuales y escalables por lo cual amazon no provee la velocidad de estos. Esta configuración de servidor nos permite crear un proyecto de pruebas donde no habrá un gran tráfico ni procesamiento de datos, además es uno de los servicios gratuitos que ofrece AWS, sin embargo un servidor virtual con estas características no es recomendada cuando se va a someter a producción con multiples usuarios.



Una vez seleccionado y configurado el servidor debemos configurar el grupo de seguridad, donde nosotros debemos especificar los puertos que permaneceran abiertos. para este caso práctico solo utilizaremos los puertos 80(HTTP) y 22(SSH).


Después amazon nos pedirá que generemos una llave pem con la que podremos conectarnos vía SSH.


Con estos pasos ya tenemos un servidor configurado y listo para ser utilizado.

3.3 Desarrollo de web service

Procederemos con desarrollar un servicio web que pueda ser consumido por nuestro dispositivo, para esto debemos acceder via ssh al servidor y comenzar a gestionar los recursos del mismo, Este caso práctico se llevó a cabo desde un equipo linux por lo cual la conexión ssh se realizó mediante consola, para conectarnos debemos utilizar el comando ssh, la llave pem generada anteriormente y la dirección DNS del servidor.

$ ssh -i "4lfonsomedina.pem" ubuntu@ec2-18-191-48-211.us-east-2.compute.amazonaws.com

Una vez conectados vía ssh realizaremos un update y un upgrade a ubuntu server.

$ sudo apt -get update

$ sudo apt -get upgrade

Después procederemos con la instalación de Apache y PHP con los que posteriormente desarrollaremos el servicio web.

$ sudo apt -get install apache2

$ sudo apt-get install php libapache2-mod-php php-mcrypt

Con estos pasos ya tenemos corriendo un servidor HTTP en la DNS

ec2-18-191-48-211.us-east-2.compute.amazonaws.com

Ahora proseguimos con el desarrollo del servicio web para lo cual tenemos que dirigirnos con el comando cp a la carpeta de /var/www/html donde nos dispondremos a crear un archivo con el nombre test.php con el comando nano.

$ nano tests.php

Conteniendo las siguientes lineas de codigo.

<?php

$r = array(mensaje => 'Hola desde AWS');

echo json_encode($r);

?>

Cabe mencionar que lo que hace el código es solamente crear un objeto tipo JSON y enviarlo vía HTTP. De esta manera podemos visualizar nuestro mensaje desde la direccion:

ec2-18-191-48-211.us-east-2.compute.amazonaws.com/test.php

3.4 Programación NodeMcu

Ahora hace falta desarrollar nuestra aplicación para consumir el servicio web desarrollado, para lo cual para este caso práctico se seleccionó NodeMcu con modulo ESP8266, el cual es un microcontrolador de bajo coste capaz de conectarse a internet mediante una red Wifi y para visualizar el mensaje se utilizó una pantalla LCD SSD1306.



El módulo NodeMcu puede ser programado en lenguaje C desde un IDE especializado o también, con las librerías adecuadas, puede ser ser programado mediante el IDE de Arduino, para este caso práctico el dispositivo fue programado mediante el IDE de arduino. Código:

/* Autor: Alfonso Medina Duran 4lfonsomedina@gmail.com */

///////////////librerias conexion///////////////////////

#include <Arduino.h>

#include <ESP8266WiFi.h>

#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#include <ArduinoJson.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

////////////librerias para display//////////////////////

#include <Wire.h>

#include "SSD1306.h"

SSD1306 display(0x3c, D3, D5);

////////////variables de conexion y url/////////////////

char *ssid = "CAII";

char *pass = "*************";

char *url = "http://18.191.48.211/test.php";

/////////////Iniciando mensaje///////////

String mensaje_STR = "Conectando...";

void setup() {

//////Iniciando serial y conexion a intenet/////////////

USE_SERIAL.begin(115200);

for(uint8_t t = 4; t > 0; t--) {

USE_SERIAL.printf("Iniciando en %d...\n", t);

USE_SERIAL.flush(); delay(1000);

}

WiFi.mode(WIFI_STA);

WiFiMulti.addAP(ssid, pass);

////////////////////Iniciando display///////////////////

display.init(); display.flipScreenVertically(); }

void loop() {

/////////////En espera de conexion esxitosa///////////

if((WiFiMulti.run() == WL_CONNECTED)) {

HTTPClient http;

http.begin(url);

int httpCode = http.GET();

if(httpCode > 0) {

if(httpCode == HTTP_CODE_OK) {

////////////Respuesta web service///////////

String cadenaJSON = http.getString();

////////////buffer para desencriptacion JSON///////////

DynamicJsonBuffer jsonBuffer;

StaticJsonBuffer<300> JSONBuffer;

JsonObject& parsed = JSONBuffer.parseObject(cadenaJSON);

String mensaje = parsed["mensaje"];

mensaje_STR = mensaje;

}

} else {

USE_SERIAL.printf("Error: %s\n", http.errorToString(httpCode).c_str());

mensaje_STR = "Error.";

}

http.end();

//////////// Mostrar Mensaje ///////////

USE_SERIAL.println(mensaje_STR);

display.clear();

display.setTextAlignment(TEXT_ALIGN_LEFT);

display.setFont(ArialMT_Plain_16);

display.drawString(0, 20, mensaje_STR);

display.display();

}

delay(2000);

}

Una vez cargado el código en el NodeMcu este muestra el mensaje recibido desde el web service, con una latencia de 2 segundos.


4 Conclusiones

En este documento se describe ¿que es? y ¿para qué sirve? un web service a grandes rasgos ya que la documentación técnica sobre el tema es muy extensa para el lector, podríamos dedicar un artículo completo solamente al funcionamiento y descripción de los protocolos de comunicación que utiliza un web service, sin embargo esa no es la intención, este documento busca fomentar el uso de esta metodología de desarrollo mostrando sus cualidades y propiedades. El análisis de los principales proveedores nos ayuda a conocer un poco el mercado y nos abre las puertas a una variedad de servicios disponibles, cuya finalidad es seleccionar el que mejor se ajuste a nuestras necesidades. Al igual el desarrollo del ejercicio sobre AWS no muestra completamente la cantidad de funcionalidades con las que cuenta un web service, pero si muestra los fundamentos o esos primeros pasos, conocer de qué manera podemos enviar un mensaje por HTTP y como un dispositivo electrónico puede obtener el mensaje y procesarlo, esta práctica buscaba abarcar un poco sobre el internet de las cosas, por esa razón se utilizó un microcontrolador como ejemplo, pero el mismo recurso en el web service puede ser consumido desde cualquier dispositivo conectado a la red inclusive desde otro web service.

Interfaz fpga - cloud computing

Interfaz fpga - cloud computing Ing. Alfonso Medina Duran 4lfonsomedina@gmail.com Proyecto para la materia de Sistemas Inteligent...