**MIDDLEWARE**
Middleware es un software de computadora que conecta componentes de software o aplicaciones para que puedan intercambiar datos entre éstas. Es utilizado a menudo para soportar aplicaciones distribuidas. Esto incluye servidores web, servidores de aplicaciones, sistemas de gestión de contenido y herramientas similares. Middleware es especialmente esencial para tecnologías como XML, SOAP, servicios web y arquitecturas orientada a servicios.
Historia de Middleware
Los Middleware han aparecido
de manera relativamente reciente en el mundo de la informática, hoy en día
tecnologías móviles (celulares) están aplicando esta tecnología para el soporte
de llamadas VOIP. En el pasado ganaron popularidad en la década de los 80, ya
que eran la solución de cómo integrar las nuevas aplicaciones con los sistemas
heredados (legacy systems), en todo caso, el termino ha sido usado desde
1968. También facilitaba la computación distribuida, mediante conexión de
múltiples aplicaciones para crear una mucha mayor, sobre una red.
El origen de la palabra
Middleware se remonta al año 1968, en donde la palabra es usada durante la NATO
Software Engineering Conference, siendo una idea de cómo conectar el nuevo
software con sistemas más antiguos. Durante las décadas previas a los 90s, fue
solamente descrito como un software para la gestión de conexión en redes, pero
para cuando las tecnologías en redes alcanzaron una penetración y visibilidad suficiente,
el software middleware' había evolucionado en un conjunto de
paradigmas y servicios. De esta forma se estaba ofreciendo una manera más
fácil, robusta y controlable, para construir aplicaciones distribuidas.
En la década de los 80`s el
desarrollo de nuevas aplicaciones fue ganando terreno y popularidad en el
mercado de las telecomunicaciones, los primeros sistemas de información eran
obsoletos y los nuevos equipos no contaban con el software necesario para
acceder a tan precarios sistemas. El acceso a la información era hostil y
tediosa, es cuando surge la necesidad de un "mediador", un puente
entre los sistemas de información de antaño y los más nuevos y modernos.
A este puente se le conoce como Middleware, un ejemplo sencillo de la aplicación de middleware podría ser cuando conectamos nuestra PC nueva, recién salida de fábrica a una impresora antigua ó viceversa, esto compañeros permite la funcionalidad total a la cual estamos acostumbrados entre los diferentes dispositivos a los que tenemos acceso, hoy en día esto facilita el acceso entre diversos sistemas de información.
Actualmente, la
existencia de nuevas arquitecturas, sistemas y plataformas más potentes y
económicas hacen que muchas organizaciones se planteen la idea de trasladar sus
aplicaciones corporativas, que residen en servidores centrales o mainframes,
hacia nuevas plataformas. Sin embargo, los rápidos cambios de las tecnologías,
hace necesario garantizar que la inversión que se realiza en el proyecto de
rediseño de la aplicación tengan un resultado esperado.
El software que proporciona un
enlace entre aplicaciones de software independientes. Middleware a veces se
llama a la vía que conecta dos aplicaciones y pasa los datos entre ellas. Los
Middleware permiten que los datos contenidos en una base de datos puedan ser
accedidos a través de otra. Ahorra el tiempo a los programadores.
Taxonomía de los software Middleware
La taxonomía o clasificación
del software middleware puede ser descrita en dos grandes categorías una de integración
y otra de aplicación. Esta a su vez es desarmada en otras, las cuales son
descritas a continuación:
Categoría
de Integración
El tipo de integración que
incluyen, posee la capacidad de unirse con sistemas heterogéneos. Cada
middleware posee diferentes protocolos de comunicación o formas de operar en
diferente software, los tipos de integración se pueden ver como:
Orientados
a procedimiento o procesos
Los middleware que son orientados a procesos,
utilizan a una comunicación sincronizada (como por ejemplo el teléfono). Una de
las características de estos, es que utilizan el “Client Stub” y el “Server
Skeleton”. El “client stub”, convierte la petición en un mensaje que es mandado
al servidor, luego el “server skeleton” recibe el mensaje, lo convierte en la
petición y llama a la aplicación del servidor donde esta es procesada.
Terminado el procesamiento el proceso inverso ocurre.
El “client stub” chequea los
errores, envía los resultados al software que inicio la petición y entonces
suspenden el proceso. Las ventajas de estos middleware es que usan un tipo
estándar en nombres de servicios, procesos remotos, pueden retornar respuesta
aun con problemas en la red, pueden manejar múltiples tipos de formatos para
datos y niveles heterogéneos de sistemas de servicio. Las desventajas son que
no poseen escalabilidad, no pueden retornar la información aun programa
diferente del que realizo la solicitud (reflexión) y poseen procesos muy
rígidos.
Orientados
a objetos
Soportan pedidos de objetos
distribuidos. La comunicación entre los objetos puede ser sincronizada,
sincronizada diferida o no sincronizada. Soportan múltiples pedidos similares
realizados por múltiples clientes en una transacción. La forma de operar es
primero con el objeto cliente que llama a un método lógico para obtener un
objeto remoto. Un ORB Proxy (también conocido como stub) pone en orden la
información y la transmite a través del agente (broker). El agente actúa como
punto medio que contacta un número de fuentes de información, obtener sus referentes
IDs, recolectar información y a veces reorganizarla. El objeto servidor recibe
el mensaje desde el agente y el proxy remoto (también conocido como Skeleton)
desordena la información. La información es ingresada a un objeto servidor
sirviente en donde un particular procesos es realizador. El resultado es
devuelto de forma inversa a lo explicado. Las ventajas es que permiten generar
reflexión y escalabilidad. También opera con múltiples tipos de información y
estados y soporta procesos múltiples. Las desventajas incluyen pre vínculos
antes de la ejecución y la necesidad de un código contenedor para algunos
sistemas heredados.
Orientados
a mensajes (MOM)
Se pueden dividir en dos
tipos, espera y publicación/suscripción. El paso de espera se puede dividir en
mensaje y espera. El paso de mensaje, inicia con que la aplicación envía un
mensaje a uno o más clientes, con el MOM del cliente. El servidor MOM, recoge
las peticiones de la cola (Message
Broker) en un orden o sistema de espera predeterminado. Los actos del
servidor MOM son como un router y usualmente no interactúan con estas. El MOM
de publicación y suscripción actúa de manera ligeramente diferente. Es más
orientado a eventos. Si un cliente quiere participar por primera vez, se une al
bus de información. Dependiendo de su función, si es como publicador,
suscriptor y ambas, este registra un evento. El publicador envía una noticia de
un evento al bus de memoria. El servidor MOM envía un anuncio al subscriptor
registrado cuando la información es disponible.
Orientados
a componentes
Un componente es
"programa que realiza una función específica, diseñada para operar e
interactuar fácilmente con otros componentes y aplicaciones". El
middleware en este caso en una configuración de componentes Los puntos fuertes
de este middleware es que es configurable y reconfigurable. La reconfiguración
se puede realizar en tiempo de ejecución, lo que ofrece una gran flexibilidad
para satisfacer las necesidades de un gran número de aplicaciones.
Agentes
Los agentes son un tipo de
middleware que posee varios componentes: entidades, los medios de comunicación
y las leyes. Las entidades pueden ser objetos o procesos, los medios pueden ser
canales, tuberías, etc. Mientras que las leyes identifican la naturaleza
interactiva de los agentes, como son la sincronización o el tipo de esquema.
Las fortalezas de los middleware agentes son que pueden realizar una gran
cantidad de tareas en nombre del usuario y que pueden cubrir una amplia gama de
estrategias basadas en el entorno que les rodea. Sin embargo su implementación
es complicada debido a la complejidad y dificultades que se necesita para
entender las operaciones que manejan.
Categoría
de Aplicación
La clasificación por
aplicación incluye los middleware que son ajustados para aplicaciones
específicas.
DAM
Los middleware para acceso a
información (Data Access middleware DAM), tienen la característica de poder
interactuar con diversas fuentes de datos. En este tipo de middleware se
encuentran los que procesan transacciones, Gateway de bases de datos y sistemas
distribuidos de transacción/procedimiento.
Middleware
de escritorio
Los middleware de escritorio
pueden hacer variaciones en la presentación de la información pedida por el
usuario por aplicaciones de rastreo y asistencia, controlar cualquier servicio
de transporte y provee una copia de seguridad y otras operaciones de fondo.
Middleware
basados en la web
Este tipo de middleware asiste
al usuario con la navegación web, el uso de interface que le permiten encontrar
páginas de su interés y detectar cambios de interés del usuario basado en su
historial de búsquedas. Provee de un servicio de identificación para un gran
número de aplicaciones y comunicación inter procesos independiente del sistema
operativo, protocolo de red y plataforma de hardware. Los middleware que se
encuentran fuertemente unido a la red se llaman servidores de aplicaciones, ya
que mejorar el rendimiento, disponibilidad, escalabilidad, seguridad,
recuperación de información, y soportan la administración colaborativa y su
uso.
Middleware
a tiempo real
La información en tiempo real
es caracterizada por que la información correcta de este instante, puede no
serlo en otro. Los middleware en tiempo real soportan las peticiones sensibles
al tiempo y políticas de planificación. Esto se realiza con servicios que
mejoran la eficiencia de las aplicaciones de usuario. Los middleware en tiempo
real se pueden dividir en diferentes aplicaciones (aplicación de base de datos
en tiempo real, sensor de procesamiento y transmisión de información). La
información que pasa a través de un middleware en tiempo real se ha
incrementado dramáticamente con la introducción de Internet, redes inalámbricas.
Evolución Middleware
El funcionamiento del Web está basado en el paradigma El funcionamiento del Web está basado en el paradigma cliente/servidor.
El funcionamiento del Web está basado en el paradigma El funcionamiento del Web está basado en el paradigma cliente/servidor.
La evolución de la Web ha
pasado de ser un medio de publicar y emitir documentos electrónicos a soportar
aplicaciones cliente/servidor más interactivas.
La tecnología Middleware ha evolucionado proveyendo interoperabilidad en la arquitectura cliente / servidor. Usualmente, utilizado para brindar soporte a aplicaciones distribuidas y complejas.
Dentro del concepto Middleware se incluyen los servidores Web, servidores de aplicación, sistemas de “content management”, y herramientas similares que dan
Soporte al desarrollo y entrega de aplicaciones. Middleware, esencialmente, integra modernas tecnologías de la información basadas en XML, SOAP, servicios Web y SOA.
Protocolos Middleware
UDP y TCP
·
Protocolos de nivel de transporte de Internet
·
Ambos permiten un paso de mensajes básicos.
o
UDP: con fallos por omisión:
o
TCP: garantiza la entrega en condiciones
normales, pero al coste de una bajada en el rendimiento
Generalmente, usamos TCP sobre IP, o TCP/IP
Aunque TCP/UDP abstraen del nivel de red, no abstraen perfectamente de los niveles de hardware y SSOO.
**Distinto almacenamiento de números (little endian/big endian)
**Distinta codificación de caracteres (ASCII/Unicode).
Los protocolos de recursos y conectividad manejan todas las transacciones de red “específicas para grid” que se desarrollan entre los computadores y los recursos de grid. Por ejemplo, los computadores contribuyendo en una grid específica deben reconocer los mensajes de grid relevantes e ignorar el resto. Esto se hace mediante protocolos de comunicación que permiten a los recursos comunicarse unos con otros, permitiendo el intercambio de datos, y protocolos de autenticación, que proveen mecanismos seguros para verificar la identidad de los usuarios y los recursos.
Los servicios colectivos también se basan en protocolos: protocolos de información que obtienen información acerca de la estructura y el estado de los recursos en la grid, y protocolos de manejo, que negocian el acceso a los recursos de un modo uniforme. Los servicios colectivos incluyen: directorios de actualización de recursos disponibles,recursos negociables (para aquellos que disfrutan de las negociaciones en la bolsa, se trata de las negociaciones entre aquellos que quieren “comprar” recursos y aquellos que quieren “vender”) monitoreo y diagnóstico de problemas réplica de datos para que múltiples copias puedan estar disponibles en diferentes locaciones para facilitar su uso provisión de servicios de membresía/política para saber a quién se le ha permitido hacer qué y cuándo.
Aplicaciones
Los servicios de middleware
proporcionan un conjunto más funcional de la API s para permitir una aplicación
a:
Localizar claramente a través de la red,
proporcionando así una interacción con otro servicio o aplicación.
Los datos filtrados para que sean utilizables
en un ambiente público a través de anonymization process para la protección de
la privacidad.
Ser independiente del servicio de red.
Ser fiable y siempre disponible
Añadir los atributos complementarios como
semántica en comparación con el sistema operativo y servicios de red.
Middleware ofrece algunas
ventajas únicas tecnológicas para los negocios y la industria. Por ejemplo, los
sistemas tradicionales de bases de datos suelen ser desplegados en entornos
cerrados, donde los usuarios acceden al sistema sólo a través de una red
restringida o intranet (por ejemplo, red interna de una empresa).Con el
crecimiento de la World Wide Web, los usuarios pueden acceder a prácticamente
cualquier base de datos para las que tengan derechos de acceso adecuados desde
cualquier parte del mundo. Middleware aborda el problema de diferentes niveles
de interoperabilidad entre las estructuras de base de datos diferente.
Middleware facilita el acceso a la herencia de un sistema de gestión de bases
de datos (DBMS) o aplicaciones a través de un servidor web, sin tener en cuenta
las características específicas de base de datos.
Los desarrolladores de redes
inalámbricas pueden utilizar middleware para afrontar los retos asociados a los
de sensores inalámbricos de red (WSN), o tecnologías WSN. La implementación de
una aplicación de middleware permite WSN [[Los analistas Middleware desarrolladores].
Para integrar los sistemas operativos y hardware con la amplia variedad de
aplicaciones diferentes que están disponibles actualmente.
En la actualidad existen miles de Apps activas, por lo que se deben tener en cuenta muchos factores a la hora de crear una y así garantizar su éxito y que supere a las ya existentes.
ResponderBorrarPara lograr esto, la App debe ser funcional, original, novedosa, multiplataforma y lo suficientemente atractiva para atraer a los usuarios y que la conviertan en una de las más descargadas.
Para la fase de desarrollo es importante pasar por un proceso de investigación, para estar seguro de que la App tendrá éxito y no será una más del montón para eso contrata a programadores en Mexico