Você está na página 1de 6

Middleware:

Middleware hace parte muy importante de la arquitectura del internet de las cosas, es as como la
organizacin IETF lo define Un Middleware puede ser visto como un conjunto de servicios y
funciones reutilizables, expandibles, que son comnmente utilizadas por muchas aplicaciones para
funcionar bien dentro de un ambiente interconectado
(http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/Middleware_Recorrido.pdf), la anterior
definicin permite entender la funcionalidad del middleware, la cual es la de interconectar
procesos y servicios para el correcto funcionamiento de una aplicacin.

Por eso el middleware (es un software) permite incrementar la reusabilidad, gracias a las
soluciones rpidas que este propone. La definicin del middleware se centra en asuntos o
problemas propios de la aplicacin especfica en la cual se est trabajando, gracias a que los
problemas comunes ya estn solucionados por este software.

Algunas de las caractersticas principales del Middleware son: la abstraccin de programacin y la


infraestructura, las cuales si se desglosan se pueden ver como: independencia del servicio de su
implantacin, del sistema operativo, y de los protocolos de comunicaciones, la anterior
caracterstica hace referencia a la abstraccin propia del middleware la cual permite establecerlo
como un software compatible con diferentes sistemas operativos y protocolos de comunicaciones.
Otra caracterstica es la de la convivencia de distintos servicios en un mismo sistema, esta
caracterstica menciona la flexibilidad del middleware para trabajar con varios servicios a la vez.

Las soluciones completas del middleware requieren de 4 componentes: Programacin abstracta:


define las interfaces con el middleware para la aplicacin del programador. Servicios del sistema:
hace uso de funciones que permiten las abstracciones de programacin. Soporte de tiempo de
ejecucin: extensiones del sistema operativo especfico que permiten dar soporte a los servicios
del middleware. QoS (Quality of service Calidad del servicio): asegura la fluidez del trfico en la
red dependiendo de cada sistema.

Como se puede ver la programacin de abstracciones es parte fundamental del middleware e


involucra tres componentes fundamentales: nivel de abstraccin, se refiere a la forma como el
programador interpreta o ve el sistema. Paradigma de programacin: hace referencia al modelo
usado para la programacin de la aplicacin. Y por ltimo la interfaz de programacin, esta define
el mecanismo por el cual la aplicacin va a acceder a las funciones del middleware.

Los niveles de abstraccin se representan tanto a nivel global (abstraccin a nivel del sistema)
como a nivel local (abstraccin a nivel de nodos). La abstraccin global menciona que un solo
programa centralizado se puede expresar como un grupo de subprogramas que pueden ser
ejecutados en nodos locales, y como su nombre lo indica la abstraccin global permite al
programador concentrarse en la aplicacin evitando detalles de los nodos. La abstraccin local se
centra en los nodos permitiendo alcanzar una alta eficiencia y flexibilidad en las comunicaciones
entre los nodos, adems de que el acceso a cada nodo se hace de forma individual.

Los paradigmas de programacin permiten ver la forma de la que una red de sensores inalmbrica
va a ser analizada, algunas de las formas son: los datos que genera un sensor son almacenados
como informacin en una base de datos. Un servicio de publicacin o suscripcin en la que los
datos de los sensores generan un evento en la aplicacin. Una interfaz de usuario grafica que
incluye un Query-Builder (la cual es una interfaz grfica que permite crear y ejecutar sentencias
SQL
https://www.ibm.com/support/knowledgecenter/es/SS9NWR_3.1.0/com.ibm.ims.explorer31.doc/
wb_csqlbldr.htm) y una pantalla de resultado.

El tipo de interfaz hace referencia a la forma como la aplicacin se relaciona con el middleware, y
esta puede ser de dos formas: declarativa, provee datos acerca de la informacin se sea requerida,
se basa en lenguajes SQL (Structured Query Language o lenguaje de consultas estructuradas, es
un lenguaje de programacin estndar e interactivo para la obtencin de informacin desde una
base de datos y para actualizarla http://searchdatacenter.techtarget.com/es/definicion/SQL-o-
lenguaje-de-consultas-estructuradas), o en lenguaje XML (lenguaje de etiquetado extensible, es
muy simple y se parece al HTML, tiene como funcin principal describir datos). Otra forma de
interfaz es la imperativa, la cual se relaciona con los comandos que deben ser mostrados, esta
interfaz es usada para el paradigma de suscripcin y o publicacin.

El espacio de diseo del middleware consiste de 10 pasos. El primero, soporte de abstraccin, gran
nmero de sensores heterogneos, consiste en conocer los problemas y caractersticas de todos
los posibles sensores que pueden ser utilizados en la aplicacin. El segundo, fusin de datos, hace
referencia a las diferentes formas en las que se pueden recolectar los datos provenientes de los
sensores, adems de encontrar la forma ms eficiente de comunicar estos datos con bases de
datos, aplicaciones, usuarios. Tercero, restricciones de recursos, se trata del bajo uso de energa y
del espacio de utilizacin de memoria reducido, por lo anterior se dice que se requiere un diseo
ligero que permita garantizar las condiciones anteriormente dichas, este diseo es diferente al
middleware tradicional, como por ejemplo el CORBA. El cuarto es la tipologa dinmica, ambiente
y aplicacin, consiste en la distribucin y acceso a los nodos, teniendo en cuenta su movilidad, el
reporte de fallos y los posibles fallos en la comunicacin. Quinto, conocimiento de la aplicacin,
intenta generalizar a pesar de los recursos limitados, y relaciona los conocimientos de la aplicacin
en los servicios provistos. El sexto se refiere al paradigma de programacin, el cual fue
mencionado anteriormente. Los cuatro pasos siguientes en orden son, Adaptabilidad,
Escalabilidad, Seguridad, y el soporte de la calidad del servicio.

Arquitectura del middleware:


[1]

Como se puede ver el middleware puede ser localizado tanto en los nodos, como en el alto nivel
de aplicacin terminal, entre otros, y tiene como funcion brindar servcios que permiten establecer
una correcta comunicacin en los niveles que hacen parte de una aplicacin.

De forma mas reducida se puede ver el siguiente esquema:

[2]

Lo anterior vuelve a ratificar lo dicho anteriormente, establecendo al middlware como el medio de


interconextion que permite un intercambio adecuado de informacion entre los sensores y las
aplicaciones, y su estructura depender de la abstraccion propia de la aplicacin a disear.
Enfoques del Middleware: dependiendo del enfoque con el cual va a funcionar el middleware, este
se define en siete casos. 1). Basado en mquina virtual, est compuesto por una mquina virtual y
un intrprete, la mquina virtual es la encargada de ejecutar un proceso concreto, como por
ejemplo una aplicacin basada en Java. Lo anterior tiene la ventaja de funcionar para varias
plataformas debido a que la misma mquina virtual se encarga de la compatibilidad con el sistema
operativo. Algunos ejemplos de middleware son Mate y Magnet. 2). Basado en base de datos, usa
una base de datos virtual, la cual permite contener varios componentes, usados para integrar
informacin desde mltiples fuentes de datos. Adems cuenta con una interfaz fcil de usar,
algunos ejemplos de middleware son TinyDB, Cougar, SINA, Dsware. 3). Programacin modular, se
trata de la descomposicin de la aplicacin, lo que significa dividirla en mdulos o subprogramas,
con el fin de hacerla ms manejable. Algunos ejemplos son Impala, Agilla. 4). Dirigido por la
aplicacin, modifica o ajusta la red dependiendo de las bases del requerimiento, como por ejemplo
ejemplo MiLAN. 5).Orientado a mensajes, usa el mecanismo de publicacin/suscripcin, el cual
consiste en que la aplicacin que enva y la aplicacin que recibe no necesitan conocer nada acerca
de la una y la otra para hacer un correcto intercambio de informacin, un ejemplo de middleware
es Mire. 6).Orientado a evento, consiste en un sistema de solicitud-respuesta, lo que significa que
si se detecta un evento se genera una respuesta casi inmediata anunciando el evento, ejemplo de
esto es Garnet. 7). Orientado a servicio, reflexivo, flexible, centradas en el servicio, es un estilo de
arquitectura que requiere de un proveedor de servicios, mediacin y un solicitante del servicio.

Algunos ejemplos de enfoques de middleware son:

Impala: Dirigido por la aplicacin. El proyecto Zebranet consiste en un estudio a largo plazo de la
migracin de la vida salvaje usando el modelo de programacin basado en eventos. Tiene como
ventajas la modularidad de cdigo, esto hace referencia a la modularidad de la programacin. La
adaptabilidad y la constante actualizacin, debido a que debe estar al tanto de los datos recogidos
por los sensores. Es tolerante a fallas, es eficiente con el gasto de energa y tiene largo tiempo de
implementacin. Pero tiene como desventajas que no hay fusin de datos, lo que se refiere a que
solo hay una forma de recoleccin de datos. Tampoco tiene heterogeneidad debido a que la
aplicacin es aplicable nicamente a un sensor.

Mate: usa una mquina virtual que corre en TinyOs (sistema operativo basado que se basa en
redes de sensores inalmbricos), distribuye su arquitectura en pilas. Descompone el programa en
pequeas capsulas capaces de replicarse a s mismas las cuales contienen 24 instrucciones. Las
capsulas son capaces de reenviarse y de propagarse ellas mismas. Ventajas, brindan alta seguridad,
y son un modelo de programacin simple pequeo y conciso, pero tiene como desventajas el
hecho de la gran cantidad de energa que consume y la poca flexibilidad al amplio rango de
aplicaciones.

TinyDB: consiste en un procesamiento de consulta (query), est compuesto por una red de
sensores que recopilan informacin, y dependiendo de la consulta que se quiera hacer se
obtendrn los datos deseados. Tiene como ventajas el reducir el nmero de mensajes, tiene un
muy buen modelo de abstraccin, y un buen modelo de agregacin. Pero tiene una desventaja que
es muy importante considerar la cual es su falta de funcionalidad.
Agilla: basado en agentes mviles y en la arquitectura basada en pilas, permite mover agentes
desde un nodo a otro usando dos instrucciones las cuales son clonar y mover; el nmero mximo
de agentes que pueden funcionar sobre un nodo son 4.

[3]

Algunas ventajas son el bajo consumo de energia, la gran flexibilidad del programa, y el reducido
tamao del codigo. Aunque cuenta con desventajas como la baja seguridad y la dificultad para leer
y mantener programas.

MiLAN: es una aplicacin diseada para monitorear la salud personal, y los datos obtenidos
enviarlos a un doctor o enfermera que esten a cargo de este monitoreo. Tiene como metas
maximizar la vida util de la aplicacin, y la aplicacin de un soporte para la calidad del servicio. Este
programa recibe una descripcion de los requerimientos a aplicar por medio de graficas
especializadas, y su funcionamiento se puede dar sobre muchas redes como por ejemplo el
bluetooth, wifi, etc. Convierte los comandos a protocolos especificos que permiten transmitirse a
traves de un protocolo de pilas de red usual.
[4]

Como se pyuede ver MiLAN puede trabajar sobre diferentes redes, con diferentes protocolos,
garantizando una alta compatibilidad y correcto funcionamiento sobre cualquier red.

file:///C:/Users/Pc/Documents/Downloads/Internet-of-the-Things-Middleware-Introduction-ICTP-
March2013-latest%20(1).pdf

Você também pode gostar