sábado, 11 de noviembre de 2017

ARQUITECTURA DE APLICACIONES SEGURIDAD EN SISTEMAS DE INFORMACIÓN

Introducción

La seguridad informática es un tema al que mucha gente no le da la importancia que realmente tiene; muchas veces por el hecho de considerar que es inútil o que jamás la utilizara. Pero en el mundo moderno, cada día más y más personas mal intencionadas intentan tener acceso a los datos de nuestros ordenadores. La seguridad es un factor imprescindible en todos los ámbitos profesionales y en la informática, es especialmente importante porque en los ordenadores es donde está almacenada la información confidencial de una empresa o de cualquier otro particular.

Por ello el trabajo se divide en 5 capítulos, el primer capítulo se presenta los principales conceptos de la seguridad de sistemas. El segundo capítulo trata de tipos de medidas de seguridad. En el tercero se desarrolla conceptos relacionados con la seguridad en redes e Internet el cuarto trata sobe los delitos informáticos y por último el quinto es de plan de seguridad de seguridad y plan de contingencias.

Es importante porque muchas empresas son amenazadas constantemente en sus activos lo que pudiera representar miles o millones de Soles en pérdidas. Las vulnerabilidades en los sistemas de información pueden representar problemas graves, por ello es muy importante comprender los conceptos necesarios para combatirlos y defender los posibles ataques a la información.

El acceso no autorizado a una red informática o a los equipos que en ella se encuentran puede ocasionar en la gran mayoría de los casos graves problemas. Uno de las posibles consecuencias de una intrusión es la pérdida de datos. Es un hecho frecuente y ocasiona muchos trastornos, sobre todo si no estamos al día de las copias de seguridad. Y aunque estemos al día, no siempre es posible recuperar la totalidad de los datos.

Otro de los problemas más dañinos es el robo de información sensible y confidencial. La divulgación de la información que posee una empresa sobre sus clientes puede acarrear demandas millonarias contra esta, o un ejemplo más cercano a usted es el de nuestras contraseñas de las cuentas de correo por las que intercambiamos información con otros.

Amenazas


Un sistema informático se ve expuesto a un gran número de amenazas y ataques. En este apartado veremos una pequeña introducción a las clasificaciones más importantes.
Para identificar las amenazas a las que está expuesto un sistema informático realizaremos tres clasificaciones: la primera de los tipos de atacantes, la segunda de los tipos de ataques que puede sufrir y la tercera de cómo actúan estos ataques. La Tabla inferior recoge, en la primera columna, los nombres con los que se han denominado a las personas que llevan a cabo los ataques; en la segunda columna, verás una pequeña definición que los caracteriza.


Nombre de los atacantes  y Definición
Hackers :
 Expertos informáticos con una gran curiosidad por descubrir las                                             vulnerabilidades de los sistemas pero sin motivación económica o                                                        dañina.

Crackers :                                 
  Un hacker que, cuando rompe la seguridad de un sistema, lo hace con                                                    intención maliciosa, bien para dañarlo o para obtener un beneficio                                                          económico.

Phreakers:                                  
Crackers telefónicos, que sabotean las redes de telefonía para                                                                  conseguir llamadas gratuitas.

Sniffers :                                    
Expertos en redes que analizan el tráfico para obtener información                                                          extrayéndola de los paquetes que se transmiten por la red.

Lammers:                                  
 Chicos jóvenes sin grandes conocimientos de informática pero que se                                                    consideran a sí mismos hackers y se vanaglorian de ello.

Newbie:                                      
Hacker novato.

Ciberterrorista:                           
Expertos en informática e intrusiones en la red que trabajan para                                                            países y organizaciones como espías y saboteadores informáticos.

Programadores de virus:            
Expertos en programación, redes y sistemas que crean programas                                                          dañinos que producen efectos no deseados en los sistemas o                                                                    aplicaciones.

Carders:                                     
 Personas que se dedican al ataque de los sistemas de tarjetas, como                                                       los cajeros automáticos.

Principales ataques que puede sufrir un sistema si se aprovechan sus vulnerabilidades.

Nombre del ataque y Definición

Interrupción:
 Un recurso del sistema o la red deja de estar disponible debido a un ataque.

Intercepción:
 Un intruso accede a la información de nuestro equipo o a la que enviamos por la red.

Modificación:
 La información ha sido modificada sin autorización, por lo que ya no es válida.

Fabricación:
 Se crea un producto (por ejemplo una página Web) difícil de distinguir del auténtico y que puede utilizarse para hacerse, por ejemplo, con información confidencial del usuario.

Los tipos de amenazas pueden clasificarse también en función de cómo actúan los ataques:

Ataque y ¿Cómo actúa?


Spoofing:
 Suplanta la identidad de un PC o algún dato del mismo (coma su dirección MAC).


Sniffing: Monitoriza y analiza el tráfico de la red para hacerse con información.


Conexión no autorizada:
 Se buscan agujeros de la seguridad de un equipo o un servidor, y cuando se descubren, se realiza una conexión no autorizada a los mismos.

Malware:
 Se introducen programas malintencionados (virus, troyanos o gusanos) en nuestro equipo, dañando el sistema de múltiples formas.

Keyloggers:
 Se utiliza una herramienta que permite conocer todo lo que el usuario escribe a través del teclado, e incluso pueden realizar capturas de pantallas.

Denegación de Servicio:
 Interrumpe el servicio que se está ofreciendo en servidores o redes de ordenadores. También denominado DoS (denial of Service).

Ingeniería social:
 Se obtiene información confidencial de una persona u organismo para utilizarla con fines maliciosos. 
Los ejemplos más llamativos son el phishing y el spam.

Phishing:
 Se engaña al usuario para obtener su información confidencial suplantando la identidad de un organismo o página web de Internet.

Elementos a asegurar

Confidencialidad:

Se refiere a la privacidad de los elementos de información almacenados y procesados en un sistema informático.
Basándose en este principio, las herramientas de seguridad informática deben proteger al sistema de invasiones, intrusiones y accesos, por parte de personas o programas no autorizados.
Este principio es particularmente importante en sistemas distribuidos, es decir, aquellos en los que usuarios, ordenadores y datos residen en localidades diferentes, pero están física y lógicamente interconectados.

Integridad: 


Se refiere a la validez y consistencia de los elementos de información almacenados y procesados en un sistema informático.
Basándose en este principio, las herramientas de seguridad informática deben asegurar que los procesos de actualización estén sincronizados y no se dupliquen, de forma que todos los elementos del sistema manipulen adecuadamente los mismos datos.
Este principio es particularmente importante en sistemas descentralizados, es decir, aquellos en los que diferentes usuarios, ordenadores y procesos comparten la misma información.


Disponibilidad:


Se refiere a la continuidad de acceso a los elementos de información almacenados y procesados en un sistema informático.
Basándose en este principio, las herramientas de Seguridad Informática deben reforzar la permanencia del sistema informático, en condiciones de actividad adecuadas para que los usuarios accedan a los datos con la frecuencia y dedicación que requieran.
Este principio es particularmente importante en sistemas informáticos cuyo compromiso con el usuario, es prestar servicio permanente.



Mecanismos que ofrecen los gestores

Básicamente, el gestor controla cualquier operación ejecutada por el usuario contra la base de datos. Para ello, se utilizan herramientas específicas, como sistemas de búsqueda y de generación de informes, además de distintas aplicaciones.

Igualmente, permite la definición de bases de datos a distintos niveles de abstracción, así como su manipulación, garantizando tanto la seguridad como la integridad y consistencia de los mismos. Siempre de forma separada a los programas o aplicaciones que los gestionan, sin tener que modificar éstos.




Seguridad en aplicaciones de acceso a datos


    
           Comunicación de red * Acceso completo a red:
Permite que las aplicaciones cree sockets de red y utilice protocolos de red personalizados. El navegador y otras aplicaciones proporcionan los medios necesarios para el envío de datos a Internet, por lo que no hace falta utilizar este permiso para eso.
Básicamente este permiso lo que hace es que una aplicación se pueda conectar a Internet para enviar y recibir datos. Prácticamente todas las aplicaciones hacen uso de este permiso, ya que es obligatorio si se quiere mostrar publicidad. Este permiso por si solo no puede acceder a nuestros datos personales, pero si lo podrá hacer si viene acompañado sus correspondientes permisos.
Básicamente este permiso lo que hace es que una aplicación se pueda conectar a Internet para enviar y recibir datos. Prácticamente todas las aplicaciones hacen uso de este permiso, ya que es obligatorio si se quiere mostrar publicidad. Este permiso por si solo no puede acceder a nuestros datos personales, pero si lo podrá hacer si viene acompañado sus correspondientes permisos.

Almacenamiento * Editar o borrar contenido de USB: Permite escribir en el almacenamiento USB. * Consultar el contenido del almacenamiento USB: Permite que la aplicación lea el contenido del almacenamiento USB.
En el permiso Editar o borrar contenido de USB también permite la lectura del almacenamiento externo. A partir de Android 4.1 se introdujo el segundo permiso Consultar el contenido del almacenamiento USB para que solo las aplicaciones puedan leer el almacenamiento.
A partir de Android 4.4 las aplicaciones que solo vayan a leer y/o escribir en su carpeta privada (Android/data/nombre.paquete.aplicacion) del almacenamiento externo ya no tienen que solicitar estos permisos. Si ya quieren leer datos de otras carpetas si que tendrán que pedir los permisos anteriores.

Llamadas de teléfono * Consultar la identidad y el estado del teléfono: Permite que la aplicación acceda a las funciones de teléfono del dispositivo. La aplicación puede utilizar este permiso para descubrir identificadores de dispositivos y números de teléfono, para saber si una llamada está activa y para conocer el número remoto con el que se ha establecido conexión mediante una llamada.
El permiso Consultar la identidad y el estado del teléfono es uno de lo más usados por videojuegos, ya que este permiso permite poner en pausa una partida cuando recibimos una llamada. Este permiso también permite a las aplicaciones acceder a nuestro IMEI (identificador de teléfono GSM), IMSI (identificador tarjeta SIM), al identificador único de 64 bits que Google asigna a cada dispositivo y saber quién nos está llamando.

Tus mensajes: * Leer tus mensajes de texto (SMS o MMS): Permite que la aplicación lea mensajes SMS almacenados en el teléfono o en la tarjeta SIM. La aplicación puede utilizar este permiso para leer todos los mensajes SMS, independientemente de cual sea su contenido o su nivel de confidencialidad. * Editar tus mensajes de texto (SMS o MMS): Permite que la aplicación escriba en mensajes SMS almacenados en el teléfono o en la memoria SIM. Las aplicaciones malintencionadas pueden borrar los mensajes. * Recibir mensajes de texto (MMS): Permite que la aplicación reciba y procese mensajes MMS, lo que significa que podría utilizar este permiso para controlar o eliminar mensajes enviados al dispositivo sin mostrárselos al usuario. * Recibir mensajes de texto (SMS): Permite que la aplicación reciba y procese mensajes SMS, lo que significa que podría utilizar este permiso para controlar o eliminar mensajes enviados al dispositivo sin mostrárselos al usuario. * Recibir mensajes de texto (WAP): Permite que la aplicación reciba y procese mensajes WAP, lo que significa que podría utilizar este permiso para controlar o eliminar mensajes enviados al dispositivo sin mostrárselos al usuario.
Esta serie de permisos permiten a las aplicaciones gestionar nuestros SMS/MMS. Son unos de los permisos con los que tenemos que tener más cuidado y sólo permitir que aplicaciones de confianza puedan usarlos. Si una aplicación que no es de mensajería requiere alguno de estos permisos hay que desconfiar y no instalarla.

Tu ubicación * Ubicación aproximada (basada en red): Permite que la aplicación obtenga tu ubicación aproximada. Esta ubicación se deriva de los servicios de ubicación que utilizan fuentes de ubicación de red, como torres de telefonía y redes Wi-Fi. Estos servicios de ubicación deben estar activados y disponibles para que la aplicación pueda utilizarlos. Las aplicaciones pueden utilizar este permiso para determinar tu ubicación de 

forma aproximada. * Ubicación precisa (basada en red y GPS): Permite que la aplicación obtenga tu ubicación precisa mediante el Sistema de posicionamiento global (GPS) o fuentes de ubicación de red como torres de telefonía y redes Wi-Fi. Estos servicios de ubicación deben estar activados y disponibles para que la aplicación pueda utilizarlos. Las aplicaciones pueden utilizar este permiso para determinar tu ubicación y es posible que el dispositivo consuma más batería.
Estos permisos, como pone en la descripción de cada uno, es para que una aplicación pueda acceder nuestra ubicación. Este permiso además de aplicaciones de mapas y navegadores GPS, también lo usan las aplicaciones deportivas, del tiempo, redes sociales, buscadores y cía. Es muy usado para ofrecernos información respecto a nuestra ubicación.

Tu información social * Consulta tu actividad social: Permite que la aplicación acceda a novedades de redes sociales tuyas y de tus amigos y las sincronice. Ten cuidado al compartir información, ya que la aplicación puede utilizar este permiso para leer conversaciones privadas con tus amigos en las redes sociales sin tener en cuenta si son confidenciales. Nota: este permiso no se puede utilizar en todas las redes sociales. * Consultar tus contactos: Permite que la aplicación consulte información sobre contactos almacenados en el teléfono, incluida la frecuencia con la que has llamado, les has enviado un correo o te has puesto en contacto con ellos de otro modo. Este permiso permite guardar los datos de los contactos, y las aplicaciones malintencionadas pueden utilizarlo para compartir datos de contactos del usuario sin su consentimiento. * Leer el registro de llamadas: Permite que la aplicación consulte el registro de llamadas del teléfono, incluidos datos sobre llamadas entrantes y salientes. Este permiso permite guardar los datos de registro de llamadas, y las aplicaciones malintencionadas pueden utilizarlo para compartir datos del registro de llamadas sin el consentimiento del usuario. * Escribir en el registro de llamadas: Permite que la aplicación modifique el registro de llamadas del teléfono, incluidos datos sobre llamadas entrantes y salientes. Las aplicaciones malintencionadas pueden usar este permiso para borrar o modificar el registro de llamadas. * Escribir en tu actividad social: Permite que la aplicación muestre novedades de redes sociales de tus amigos. Ten cuidado al compartir información, ya que la aplicación puede utilizar este permiso para generar mensajes que parezcan proceder de tus amigos. Nota: este permiso no se puede utilizar en todas las redes sociales. * Modificar tus contactos: Permite que la aplicación modifique los datos de los contactos almacenados en el teléfono, incluida la frecuencia con la que los has llamado, les has enviado un correo electrónico o te has puesto en contacto con ellos de otro modo. Las aplicaciones pueden utilizar este permiso para eliminar datos de contactos.

Tu información personal * Consultar tu propia tarjeta de contacto: Permite que la aplicación consulte la información del perfil personal almacenada en el dispositivo (como el nombre o la información de contacto), lo que significa que la aplicación puede identificar al usuario y enviar la información de su perfil a otros usuarios. * Leer eventos de calendario e información confidencial: Permite que la aplicación consulte todos los eventos de calendario almacenados en el teléfono, incluidos los de amigos y compañeros de trabajo. La aplicación puede utilizar este permiso para compartir o guardar datos del calendario del usuario sin tener en cuenta si son privados o confidenciales. * Reconocimiento de actividad: Permite que una aplicación reciba actualizaciones periódicas de tu nivel de actividad de Google (por ejemplo, si vas a pie, en coche, en bici o estás parado). * Añadir o modificar eventos de calendario y enviar mensajes a los invitados sin el consentimiento de los propietarios; Permite que la aplicación añada, elimine y cambie eventos que se pueden modificar en el teléfono, incluidos los de amigos o compañeros de trabajo. La aplicación puede utilizar este permiso para enviar mensaje que parezcan proceder de propietarios de un calendario o para modificar eventos sin conocimiento de los propietarios. * Modificar tu propia tarjeta de contacto: Permite que la aplicación modifique la información del perfil personal almacenada en el dispositivo (como el nombre o la información de contacto) o que añada contenido a esa información, lo que significa que puede identificar al usuario y enviar la información de u perfil a otros usuarios.
Los permisos de Tu información social y Tu información personal permiten a las aplicaciones a acceder datos ya muy personales nuestros, como nuestros contactos, actividad social, registro   de llamadas, calendarios y cía. Algunos de estos permisos los piden las aplicaciones para gestionar   nuestros calendarios, historial de llamadas o integrarse con algunas de nuestras redes sociales.   Hay que tener cuidado con que aplicaciones permitimos que accedan a nuestra información   personal.

 Marcadores e historial * Consultar tu historial y tus marcadores web: Permite que la   aplicación consulte el historial de todas las URL visitadas por el navegador y todos sus   marcadores. Nota: este permiso no pueden utilizarlo navegadores externos ni otras aplicaciones   que tengan funciones de navegación por Internet. * Escribir en el historial y en los marcadores   web: Permite que la aplicación modifique el historial o los marcadores del navegador   almacenados en el teléfono. La aplicación puede utilizar este permiso para borrar o modificar   datos del navegador. Nota: este permiso no pueden utilizarlo navegadores externos ni otras   aplicaciones que tengan funciones de navegación por Internet.
Estos dos permisos permiten a una aplicación leer y modificar nuestro historial de navegación y a los marcadores, aunque Google prohíbe a los desarrolladores que los modifiquen sin nuestra autorización para evitar el spam.











http://www.monografias.com/trabajos103/seguridad-sistemas-informacion/seguridad-sistemas-informacion.shtml

file:///C:/Users/Desktop/Downloads/965-3375-1-PB.pdf

https://infosegur.wordpress.com/unidad-1/amenazas-y-fraudes-en-los-sistemas-de-la-informacion/

http://repository.ucatolica.edu.co/bitstream/10983/1305/1/RIESGOS%20AMENAZAS%20Y%20VULNERABILIDADES%20DE%20LOS%20SISTEMAS%20DE%20INFORMACION%20GEOGRAFICA%20GPS.pdfseguridadaefausto.blogspot.com/2013/10/analisis-de-elementos-de-la-seguridad.html




MIDDLEWARE

Introducción


Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos que se ejecutan en distintas máquinas a través de una red. Ocultan la heterogeneidad, abstrae la complejidad subyacente y proveen de un modelo de programación conveniente para los desarrolladores de aplicaciones. • La organización IETF (Internet Engineering Task Force) en mayo de 1997 lo definió como sigue: – “Un Middleware puede ser visto como un conjunto de servicios y funciones reutilizables, expandibles, que son comúnmente utilizadas por muchas aplicaciones para funcionar bien dentro de un ambiente interconectado”. • Es un software que puede incrementar significativamente la reusabilidad mediante soluciones utilizables rápidamente y basadas en estándares aplicables a problemas y tareas comunes en programación. Permite concentrarse en asuntos propios de la aplicación y olvidarse de problemas comunes, estructurales o no, ya resueltos previamente de forma elegante y satisfactoria

Características
  • Independiza el servicio de su implantación, del sistema operativo y de los protocolos de comunicaciones. 
  • Permite la convivencia de distintos servicios en un mismo sistema. 
  • Permite la transparencia en el sistema. 

Clasificación
Orientados a procedimiento o procesos

Los middleware que son orientados a procesos, utilizan 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 ésta es procesada. Terminado el procesamiento, ocurre el proceso inverso. El client stub verifica los errores, envía los resultados al software que inició la petición y entonces suspenden el proceso. Las ventajas de estos middleware es que usan un tipo estándar en nombres de servicios y procesos remotos, pueden retornar respuesta aún con problemas en la red y 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 a un programa diferente del que realizó 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:
El objeto cliente 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 (marshalling o serialización) y la transmite a través del agente (broker).
El agente actúa como punto medio y contacta con diversas fuentes de información, obtiene sus referentes IDs, recolecta información y, en ocasiones, la reorganiza.
El proxy remoto (también conocido como skeleton) desordena (unmarshalling o deserialización) la información que le llega del agente y se la pasa al objeto servidor.
El objeto servidor procesa la información y genera un resultado que es devuelto al cliente siguiendo los pasos inversos.

Las ventajas son que permiten generar reflexión y escalabilidad, que opera con múltiples tipos de información y estados y que soporta procesos múltiples. Las desventajas consisten en obtener la existencia de vínculos antes de la ejecución y de un código contenedor para algunos sistemas heredados.

Orientados a mensajes (MOM, Message-oriented middleware)

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 está disponible.
Orientados a componentes

Un componente es un «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.Lógicas de Mediación de Datos


Lógicas de Mediación de Datos



Categoría de aplicación

La clasificación por aplicación incluye los middleware que son ajustados para aplicaciones específicas.
Middleware para acceso a información (DAM, Data Access middleware)

Los middleware para acceso a información tienen la característica de poder interactuar con diversas fuentes de datos. En este tipo de middleware se encuentran los que procesan transacciones, gateways de bases de datos y sistemas distribuidos de transacción/procedimiento.

Sus ventajas residen en la comunicación que tienen entre múltiples fuentes de datos, la conversión del lenguaje de programación de la aplicación a un lenguaje aceptado por la fuente de datos de destino y la capacidad de respuesta en un formato y lenguaje aceptable para el solicitante.
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 proveer una copia de seguridad y otras operaciones de fondo. Otras pueden ser manutención y gráficas, ordenamientos, directorios de servicios, manejo de información de la base de datos, manejo de procesos, calendarización de trabajos, notificación de eventos de servicios, manejo de instalación de software, servicios de cifrado y control de accesos.
Middleware basados en la web

Este tipo de middleware asiste al usuario con la navegación web, el uso de interfaces 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 entre procesos independiente del sistema operativo, protocolo de red y plataforma de hardware. Los middleware que se encuentran fuertemente unidos a la red se llaman servidores de aplicaciones, ya que mejoraran el rendimiento, disponibilidad, escalabilidad, seguridad, recuperación de información, y soportan la administración colaborativa y su uso. Los middleware pueden contactar directamente a la aplicación ganando mejor comunicación entre el servidor y el cliente. Otros servicios importantes dados por este tipo de middleware son servicios de directorios, correos electronicos, cadenas de suministros de gran tamaño, accesos remotos a información, descarga de archivos, accesos a programas y acceso a aplicaciones remotas.
Middleware a tiempo real

La información en tiempo real es caracterizada porque la información correcta en un 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.
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, y las nuevas aplicaciones basadas en la difusión.

Las ventajas de este tipo de middleware son que proveen un proceso de decisión que determina el mejor criterio para resolver procesos sensibles al tiempo, y la posibilidad de ayudar a los sistemas operantes en la localización de recursos cuando tienen tiempos límites de operación.

Los middleware multimedia son una rama mayor en los middleware en tiempo real. Estos pueden manejar una gran variedad de información. Estos tipos pueden ser textos, imágenes de todo tipo (GPS, imágenes, etc.), procesadores de lenguajes naturales, música y video. La información debe ser recopilada, integrada y entonces enviada al usuario sensible del tiempo. Los dispositivos multimedia pueden incluir una mezcla de dispositivos tanto físicos (parlantes, cámaras, micrófono) como lógicos.


Lógicas de Mediación de Comunicación


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 (por ejemplo)
  • 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. Middlewareaborda 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.

Las empresas frecuentemente utilizan las aplicaciones de middleware para vincular la información de bases de datos de sus departamentos, tales como nóminas, ventas y contabilidad, o bases de datos alojadas en múltiples localizaciones geográficas.​ En el mercado de la salud que es altamente competitivo, los laboratorios hacen un amplio uso de aplicaciones de middleware para minería de datos y sistema informático del laboratorio (LIS), y para combinar los sistemas de información durante fusiones de hospitales. Los Middleware ayudan a reducir la brecha entre LISs separados en una red de salud recién formado a raíz de una compra del hospital.​

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 desarrolladores. Para integrar los sistemas operativos y hardware con la amplia variedad de aplicaciones diferentes que están disponibles actualmente.

Los middleware pueden ayudar a los desarrolladores de software a no tener que escribir APIs para todos los programas de control, que actúa como una interfaz de programación independiente para sus aplicaciones. Para la Internet del Futuro, el funcionamiento de la red a través del monitoreo de tráfico en escenarios multi-dominio, utilizando herramientas de mediación (middleware) es una poderosa ayuda, ya que permiten operadores, investigadores y proveedores de servicios para supervisar Calidad de servicioy analizar los eventuales fracasos en servicio de telecomunicaciones.

Por último, el comercio electrónico utiliza middleware para ayudar en el manejo de transacciones rápidas y seguras a través de muchos tipos diferentes de entornos informáticos.​ En resumen, el middleware se ha convertido en un elemento crítico en una amplia gama de industrias, gracias a su capacidad de reunir los recursos a través de diferentes redes o plataformas de computación.

En 2004 los miembros de la unión europea de radiodifusión (UER), han realizado un estudio de middleware con respecto a la integración de sistemas en entornos de difusión. Se trataba de sistema de expertos en ingeniería de diseño de 10 principales cadenas europeas, se trabajó durante un período de 12 meses para entender el efecto de productos, principalmente de software, basado en técnicas de producción de medios de comunicación y el diseño del sistema de radiodifusión. Los informes resultantes 3300S Tecnología 3300 y Tech fueron publicados y están disponibles gratuitamente desde el sitio web de la UER.








http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/Middleware_Recorrido.pdf
https://es.m.wikipedia.org/wiki/Middleware
http://sistemasdistribuidosjosecastro.blogspot.com.co/2016/05/v-behaviorurldefaultvmlo.html





ARQUITECTURA DE APLICACIONES WEB

Estilos de Arquitectura:

Son esquemas de organización general de un sistema que especifican una serie de subsistemas y sus responsabilidades. Incluyen reglas para organizar las relaciones entre ellos.

Estilos de Flujo de Datos
Tubería y filtros
Estilos Centrados en Datos
Arquitecturas de Pizarra o Repositorio
Estilos de Llamada y Retorno
Model-View-Controller (MVC)
Arquitecturas en Capas
Arquitecturas Orientadas a Objetos
Arquitecturas Basadas en Componentes
Estilos de Código Móvil
Arquitectura de Máquinas Virtuales
Estilos heterogéneos
Sistemas de control de procesos
Arquitecturas Basadas en Atributos
Estilos Peer-to-Peer
Arquitecturas Basadas en Eventos
Arquitecturas Orientadas a Servicios
Arquitecturas Basadas en Recursos

Arquitectura N-capas:


Cuando se escribe una aplicación, normalmente se diseñan y escogen los objetos comunicándolos a través de mensajes en código de alto nivel. Los protocolos que utilizan los objetos distribuidos manejan lo rudo, los detalles de bajo nivel, tales como los parámetros de ordenamiento, localización de objetos remotos, manejo de transacciones, etc.

En una arquitectura de n-capas se requiere diseñar objetos realmente reutilizables, que puedan usarse para proyectos futuros. Si los requisitos para un proyecto cambian es necesario reescribir el código; aún más importante es el hecho que, dejando la seguridad que proporciona una arquitectura por capas, se corre el riesgo de diseñar un sistema que sea más complejo que el pensado originalmente. Esto evita el avance, puesto que una decisión descuidada en el diseño puede tener aspectos no considerados. Sin embargo, la transmisión de aplicaciones de objetos distribuidos en CORBA no es tan rápida como aquellas diseñadas con protocolos de socket estándar; CORBA es lento por que necesita ser general, y su gran fortaleza es su mayor debilidad.






Revisión histórica:

Características e importancia:

  • Permite el desarrollo en paralelo de cada capa 
  • Permite el desarrollo de aplicaciones más robustas 
  • El mantenimiento es más sencillo 
  • Es más flexible se pueden añadir nuevos módulos para agregar mas funcionalidades. 
  • Alta escalabilidad, puede manejar muchas peticiones con el mismo rendimiento simplemente añadiendo mas hardware 
  • El crecimiento es lineal no es necesario añadir mas código para conseguir escalabilidad. 
  • La separación de la presentación, lógica de negocio y datos es realizada en un número indefinido de capas lógicas 
  • Su diseño permite que cada capa sea desarrollad, mejora, gestionada y desplegada de forma independiente. 
  • La multicapa funciona consistentemente a lo largo de un variado conjunto de hardware.

Arquitectura distribuida


En arquitectura distribuida, los componentes se presentan en diferentes plataformas y varios componentes pueden cooperar uno con el otro a través de una red de comunicación con el fin de alcanzar un objetivo o meta específica.

Concepto de arquitectura distribuida


Un sistema distribuido se puede demostrar por la arquitectura cliente-servidor, que forma la base para las arquitecturas de múltiples niveles; las alternativas son la arquitectura de intermediario como CORBA, y la arquitectura orientada a servicios (SOA). En esta arquitectura, el procesamiento de información no se limita a una sola máquina sino que se distribuye en varios ordenadores independientes.


Hay varios marcos de tecnología para apoyar las arquitecturas distribuidas, incluyendo .NET, J2EE, CORBA, .NET servicios Web, servicios Web AXIS Java, y los servicios Globus Grid. El middleware es una infraestructura que soporte adecuadamente el desarrollo y ejecución de aplicaciones distribuidas. Proporciona una barrera entre las aplicaciones y la red.


Se encuentra en el medio del sistema y gestiona o apoya los diferentes componentes de un sistema distribuido. Ejemplos son monitores de transacción de procesamiento, convertidores de datos y los controladores de comunicación, etc.


Middleware como una infraestructura de sistema distribuido 




Base de la arquitectura distribuida

La base de una arquitectura distribuida es su transparencia, fiabilidad y disponibilidad.

Tiene las siguientes ventajas:

  • El intercambio de recursos - Puesta en común de los recursos de hardware y software. 
  • La apertura - Flexibilidad de la utilización de hardware y software de diferentes proveedores. 
  • Concurrencia - El procesamiento simultáneo para mejorar el rendimiento. 
  • Escalabilidad - el aumento del rendimiento mediante la adición de nuevos recursos. 

  • La tolerancia a fallos - La posibilidad de continuar en funcionamiento después de haberse producido un fallo. 
Sus desventajas son: 
  • Complejidad - Son más complejos que los sistemas centralizados. 
  • Seguridad - más susceptibles a ataques externos. 
  • Manejabilidad - Más esfuerzo que se requiere para la gestión del sistema. 
  • La imprevisibilidad - respuestas impredecibles, dependiendo de la organización del sistema y la carga de la red.


Arquitectura cliente-servidor

La arquitectura cliente-servidor es la arquitectura de sistema distribuido más común que se descompone el sistema en dos grandes subsistemas o procesos lógicos:


Client - Este es el primer proceso que emite una solicitud para el segundo proceso es decir, el servidor.
Servidor - Este es el segundo proceso que recibe la solicitud, lo lleva a cabo, y envía una respuesta al cliente.

En esta arquitectura, la aplicación se modela como un conjunto de servicios que están reguladas por los servidores y un conjunto de clientes que utilizan estos servicios. Los servidores no necesitan saber acerca de los clientes, pero los clientes deben conocer la identidad de los servidores.

Arquitectura cliente-servidor se puede clasificar en dos modelos en base a la funcionalidad del cliente:

Modelo de cliente ligero
En el modelo de cliente ligero, toda la gestión de la tramitación del expediente y los datos se realiza por el servidor. El cliente es simplemente responsable de ejecutar el software de interfaz gráfica de usuario. Se utiliza cuando los sistemas heredados se migran a las arquitecturas cliente-servidor en el que sistema heredado actúa como un servidor en su propio derecho, con una interfaz gráfica implementada en un cliente.

Sin embargo, una desventaja importante es que pone una carga de procesamiento en el servidor y la red.

Fat-cliente modelo de espesor /

En el modelo de espesor-cliente, el servidor está a cargo de la gestión de datos. El software en el cliente implementa la lógica de la aplicación y las interacciones con el usuario del sistema. Es más adecuado para los nuevos sistemas de cliente-servidor donde se sabe que las capacidades del sistema cliente con antelación.

Sin embargo, es más complejo que un modelo de cliente ligero especialmente para la gestión, ya que todos los clientes deben tener la misma copia / versión de la aplicación de software.

Arquitectura Cliente/Servidor de 2 niveles

La arquitectura en 2 niveles se utiliza para describir los sistemas cliente/servidor en donde el cliente solicita recursos y el servidor responde directamente a la solicitud, con sus propios recursos. Esto significa que el servidor no requiere otra aplicación para proporcionar parte del servicio.


Arquitectura Cliente/Servidor de 3 nivelesEn la arquitectura en 3 niveles, existe un nivel intermediario. Esto significa que la arquitectura generalmente está compartida por:
Un cliente, es decir, el equipo que solicita los recursos, equipado con una interfaz de usuario (generalmente un navegador web) para la presentación
El servidor de aplicaciones (también denominado software intermedio), cuya tarea es proporcionar los recursos solicitados, pero que requiere de otro servidor para hacerlo
El servidor de datos, que proporciona al servidor de aplicaciones los datos que requiere


Arquitectura Cliente/Servidor multinivel

En la arquitectura en 3 niveles, cada servidor (nivel 2 y 3) realiza una tarea especializada (un servicio). Por lo tanto, un servidor puede utilizar los servicios de otros servidores para proporcionar su propio servicio. Por consiguiente, la arquitectura en 3 niveles es potencialmente una arquitectura en N-niveles

Red Peer to Peer(P2P)

Forma coloquial de referirse a las denominadas redes entre iguales, redes entre pares o redes punto a punto. En estas redes no existen ni ordenadores cliente ni ordenadores que hagan de servidor. Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados. El hecho de que sirvan para compartir e intercambiar información de forma directa entre dos o más usuarios ha propiciado que hayan sido, y estén siendo, utilizadas para intercambiar archivos cuyo contenido está sujeto a las leyes decopyright, lo que ha generado una gran polémica entre defensores y detractores de estos sistemas.

Las redes peer-to-peer aprovechan, administran y optimizan el uso del ancho de banda de los demás usuarios de la red por medio de la conectividad entre los mismos, obteniendo más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales, donde una cantidad relativamente pequeña de servidores provee el total del ancho de banda y recursos compartidos para un servicio o aplicación.



Arquitectura Orientada a Servicios
Un servicio es un componente de la funcionalidad de negocio que está bien definido, autónomo, independiente, publicó, y disponible para ser utilizado a través de una interfaz de programación estándar. Las conexiones entre los servicios se llevan a cabo mediante protocolos comunes y universales orientados a mensajes tales como el protocolo de servicios web SOAP, que puede entregar las solicitudes y respuestas entre los servicios sin apretar.

arquitectura orientada a servicios es un diseño cliente / servidor que apoyan el enfoque de TI alineada con el negocio en el que una aplicación se compone de servicios de software y los consumidores de servicios de software (también conocido como clientes o solicitantes de servicios).


Características de SOA

Una arquitectura orientada al servicio proporciona las siguientes características -

  • Implementación distribuida - La exposición datos de la empresa y la lógica de negocio tan libremente, unido, detectable, estructurado, sin estado, unidades de la funcionalidad de los servicios de llamadas de grano grueso basado en estándares,.
  • Compuestabilidad - Montar los nuevos procesos de servicios existentes que están expuestos a una granularidad deseada a través de bien definido, publicado y las interfaces normalizados de queja.
  • Interoperabilidad - Acciones capacidades y servicios compartidos de reutilización a través de una red, independientemente de los protocolos subyacentes o la tecnología de aplicación.
  • Reutilización - Elegir un proveedor de servicios y el acceso a los recursos existentes expuestas como servicios.
Arquitecturas para cloud computing

Elementos comunes de la arquitectura de cloud computing

Aunque las nubes varían ampliamente en cuanto a detalles de implementación, la arquitectura de cloud computing suele incluir estos elementos comunes:
Nivel de virtualización. La virtualización de los servidores y la virtualización del almacenamiento juegan un papel clave en la arquitectura de cloud computing, puesto que ofrecen una de las principales ventajas de la nube: la agilidad. Un nivel de virtualización permite a los proveedores aprovisionar o desaprovisionar rápidamente servidores en la nube para satisfacer las necesidades de los usuarios del servicio.
Almacenamiento escalable horizontalmente. La escalabilidad es otro rasgo distintivo de la arquitectura de cloud computing y desde el punto de vista del almacenamiento, se suele derivar de tecnologías que aprovechan grandes grupos de componentes de hardware de consumo que se pueden ampliar de manera sencilla y económica según crece la demanda de infraestructura y recursos de almacenamiento.
Mecanismos para admitir varios inquilinos. Un servicio de cloud computing debe permitir la segregación física o virtual de los datos almacenados según el inquilino y ser capaz de hacer un seguimiento del uso del servicio por inquilino. Es importante destacar que el uso de varios inquilinos es una característica integral incluso en nubes privadas: en este contexto, los inquilinos son los diferentes departamentos o grupos de trabajo dentro de la empresa.
API web. Otro elemento clave de la arquitectura de cloud computing es un conjunto de API web (con métodos estándar, como llamadas HTTP RESTful, XML y SOAP) a través de las cuales se puede llamar a los servicios en la nube. Esto permite que los servicios estén disponibles a través de un navegador web estándar o de otra aplicación cliente HTTP.

Arquitecturas para dispositivos móviles
A diferencia de las computadoras “tradicionales”, los dispositivos móviles tienen características particulares que incluyen:
Duración limitada de la batería.
Posible tamaño pequeño de la pantalla.
Conectividad intermitente.
Posibilidad de que el dispositivo se pierda fácilmente.
Posibilidad de realizar cálculos demandantes.
Variedad de sensores que permiten recolectar información.
Acceso a infraestructura que facilita la instalación y actualización de aplicaciones (mercados de apps).

Los puntos descritos previamente aunados al hecho de que los dispositivos móviles están siempre a la mano, ha dado lugar a distintos tipos de aplicaciones con drivers particulares. Recordemos que en el contexto de arquitectura de software, los drivers, se refieren a los requerimientos que influyen en el diseño de la arquitectura. Estos drivers generalmente incluyen requerimientos funcionales primarios, atributos de calidad y restricciones.








https://www.polibits.gelbukh.com/2006_34/Arquitecturas%20en%20n-Capas_%20Un%20Sistema%20Adaptivo.pdf
https://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas
download.microsoft.com/.../050608-Architect%20Academy%20Webcast%201.ppt

http://desarrollowebydesarrolloweb.blogspot.com.co/2015/02/descripcion-de-las-caracteristicas-los.html
http://www.w3ii.com/es/software_architecture_design/distributed_architecture.html
http://es.ccm.net/contents/147-redes-arquitectura-cliente-servidor-en-3-niveles
https://www.ecured.cu/Red_Peer_to_Peer
https://www.akamai.com/es/es/resources/cloud-computing-architecture.jsp