sábado, 19 de mayo de 2012

Arquitectura Cliente-Servidor


Se  basa en un sistema distribuido entre múltiples procesadores donde hay clientes que solicitan servicios y servidores que los proporcionan. Separa los servicios situando cada uno en su plataforma respectiva ó más adecuada.
La arquitectura Cliente/Servidor agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo. 




Desde el ámbito funcional, se puede definir la arquitectura Cliente/Servidor como una arquitectura distribuida que permite a los usuarios obtener acceso a la información de forma transparente aún en entornos multiplataforma.


Un sistema basado en Cliente/Servidor es un Sistema de Información distribuido el cual consta de las siguientes características:


-Servicio: unidad básica de diseño. El servidor lo(s) proporciona y el cliente lo(s) utiliza.
-Recursos compartidos: Muchos clientes utilizan los mismos servidores y, a través de ellos, comparten tanto recursos lógicos como físicos.
-Protocolos asimétricos: Los clientes inician “conversaciones”. Los servidores esperan su establecimiento pasivamente.
-Transparencia de localización física de los servidores y clientes: El cliente no tiene por qué saber dónde se encuentra situado el recurso que desea utilizar.
-Independencia de la plataforma HW y SW que se emplee.
-Sistemas débilmente acoplados. Interacción basada en envío de mensajes.
-Encapsulamiento de servicios. Los detalles de la implementación de un servicio son transparentes al cliente.
-Escalabilidad horizontal (añadir clientes) y vertical (ampliar potencia de los servidores).
-Integridad: Datos y programas centralizados en servidores facilitan su integridad y mantenimiento.



Para entender en forma más ordenada y clara los conceptos y elementos involucrados en esta Arquitectura se puede aplicar una descomposición por niveles. Esta descomposición principalmente consiste en separar los elementos estructurales de esta arquitectura en función de aspectos más funcionales de la misma:


-Nivel de Presentación: Agrupa a todos los elementos asociados al componente Cliente.
-Nivel de Aplicación: Agrupa a todos los elementos asociados al componente Servidor.
-Nivel de comunicación: Agrupa a todos los elementos que hacen posible la comunicación entre los componentes Cliente y servidor.
-Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los datos.







MIDDLEWARE
El middleware es un módulo intermedio que actúa como conductor entre sistemas permitiendo a cualquier usuario de sistemas de información comunicarse con varias fuentes de información que se encuentran conectadas por una red. En el caso que nos concierne, es el intermediario entre el cliente y el servidor y se ejecuta en ambas partes.

viernes, 11 de mayo de 2012

Arquitectura de Software

Según la IEEE 1471-2000: 
La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución.





La Arquitectura de Software es el diseño de nivel mas alto de la estructura del sistema organizacional.
Es la consecuencia de armar cierto número de elementos ó componentes arquitectónicos de forma adecuada y así cumplir con los requerimientos de desempeño y funcionalidad  de un sistema, así como los requerimientos no funcionales, como la , escalabilidad, confiabilidad, portabilidad y disponibilidad.


En la Arquitectura de Software se dan los siguientes estilos de arquitectura:


-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