Seguidores

miércoles, 23 de mayo de 2012

ASPECTOS LEGALES DEL COMERCIO ELECTRONICO

MIDDLEWARE

Middleware es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, software, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones que son necesarias en los sistemas distribuidos. De esta forma se provee una solución que mejora la calidad de servicio, seguridad, envío de mensajes, directorio de servicio, etc.
Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El middleware abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas. Dependiendo del problema que resolver y de las funciones necesarias, serán útiles diferentes tipo de servicios de middleware. Por lo general el middleware del lado cliente está implementado por el Sistema Operativo, el cual posee las bibliotecas que ejecutan todas las funcionalidades para la comunicación a través de la red.
Definición

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..

Historia

El origen de la palabra Middleware se remonta al año 1968, en donde la palabra es usada durante la 1968 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, 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.

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 a un 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 actua 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, gateways de bases de datos y sistemas distribuidos de transacción/procedimiento. Las fortalezas que posee este tipo de middleware es la comunicación que tiene 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 provee una copia de seguridad y otras operaciones de fondo. Otras pueden ser mantención e graficas, 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 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 interprocesos 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. 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, emails, cadenas de suministros de gran tamaño, accesos remotos a información, descargar archivos, accesos a programas y acceso aplicaciones remotas.
 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, y las nuevas "aplicaciones basadas en la difusión". Las fortalezas de este tipo de middleware son que proveen un proceso de decisión que determinar el mejor criterio para resolver procesos sensibles al tiempo y puedes ayudar a los sistemas operantes en la localización de recursos cuando tienen tiempos límites de operación. Los multimedia middleware es 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 como lógicos, en el caos de los físicos están los parlantes, cámaras, micrófonos, etc.

SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS POR LOTES.

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
·         Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
·         Permiten poca o ninguna interacción usuario/programa en ejecución.
·         Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
·         No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
·         Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.
·         Se encuentra en muchos computadores personales combinados con procesamiento serial.
·         Planificación del procesador sencilla, típicamente procesados en orden de llegada.
·         Planificación de memoria sencilla,  generalmente se divide en dos: parte residente del S.O. y programas transitorios.
·         No requieren gestión crítica de dispositivos en el tiempo.
·         Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.



Figura. Trabajos más comunes que realiza el Sistema Operativo por lotes.



  Sistemas Operativos de tiempo real.



Los Sistemas Operativos de tiempo real son aquelos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.



Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:



·         Control de trenes.



·         Telecomunicaciones.



·         Sistemas de fabricación integrada.



·         Producción y distribución de energía eléctrica.



·         Control de edificios.



·         Sistemas multimedia.



Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:



·         Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sisterma computacional, en breve tiempo o dentro de ciertos plazos.



·         Se utlizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.



·         Objetivo es proporcionar rápidos tiempos de respuesta.



·         Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.



·         Proceso se activa tras ocurrencia de suceso, mediante interrupción.



·         Proceso de mayor  prioridad expropia recursos.



·         Por tanto generalmente se utliza planificación expropiativa basada en prioridades.



·         Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.



·         Población de procesos estática en gran medida.



·         Poco movimiento de programas entre almacenamiento secundario y memoria.



·         Gestión de archivos se orienta  más a velocidad de acceso que a utlización eficiente del recurso.



Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).



Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.



Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.



Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.



Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:



·         Mejora productividad del sistema y utilización de recursos.



·         Multiplexa recursos entre varios programas.



·         Generalmente soportan múltiples usuarios (multiusuarios).



·         Proporcionan facilidades para mantener el entorno de usuarios inndividuales.



·         Requieren validación de usuario para seguridad y protección.



·         Proporcionan contabilidad del uso de los recursos por parte de los usuarios.



·         Multitarea sin soprte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.



·         Sistemas multiprocesadores son sistemas multitareas por definición  ya que  soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores.



·         En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.



Sistemas Operativos de tiempo compartido.



Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.



Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.



Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.



Características de los Sistemas Operativos de tiempo compartido:



·         Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.



·         Dan la ilusión de que cada usuario tiene una máquina para  sí.



·         Mayoría utilizan algoritmo de reparto circular.



·         Programas se ejcutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.



·         Evitan monopolización del sistema asignando tiempos de procesador (time slot).



·         Gestión de memoria proporciona protección a programas residentes.



·         Gestión de archivo  debe proporcionar protección y control de acceso debido a que  pueden existir múltiples usuarios accesando un mismo archivos.



Sistemas Operativos distribuidos.



Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.



Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.



Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.



Caracteristicas de los Sistemas Operativos distribuidos:



·         Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .



·         Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.



·         Objetivo clave es la transparencia.



·         Generalmente proporcionan medios para la compartición global de recursos.



·         Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).



Sistemas Operativos de red.



Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.



El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.



Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.



Figura. Se muestra un Sistema Operativo en red.






En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.



En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, sinulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.



Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.