Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Diseño de sistemas de informacion

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 14 Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Diseño de sistemas de informacion (20)

Anuncio

Más reciente (20)

Diseño de sistemas de informacion

  1. 1. INSTITUTO UNIVERSITARIO DE TECNOLOGIA DE ADMINISTRACION INDUSTRIAL ESPECIALIDAD: INFORMATICA SECCION: 204-A-3 UNIDAD CURRICULAR: DISEÑO DE SISTEMA DISEÑO DE LA ARQUITECTURA DE UN SISTEMA Profesora: Autores: Naydrubys Trejo Navarro José 17.603.195 Vásquez Jhonderson 20.595.241 Luis Sánchez 20.208.521 Guarenas, Julio del 2011
  2. 2. Introducción A continuación se presenta todo lo referente a lo que es el diseño de la arquitectura de un sistema de información, la cual es importante saber para un diseñador de sistema para mayor conocimientos tomaremos este concepto en cuenta. La etapa del diseño de la arquitectura se refiere a la planificación del hardware, software, y a la infraestructura de comunicaciones para el nuevo sistema, así como a la seguridad y al apoyo global. También se toma en cuenta que los programadores, diseñadores, ingenieros y analistas pueden trabajar bajo una línea común que les posibilite la compatibilidad necesaria para lograr el objetivo deseado. Algunos objetivos dentro de un esquema de Arquitectura de Software pueden ser: el software se debe mantener, esto es, fácilmente analizable, modificable, corregible; también puede ser un objetivo el nivel de interacción con otros sistemas informáticos, o su escalabilidad.
  3. 3. Desarrollo Diseño de la arquitectura del sistema La etapa del diseño de la arquitectura se refiere a la planificación del hardware, software, y a la infraestructura de comunicaciones para el nuevo sistema, así como a la seguridad y al apoyo global. La primera etapa de diseño de la arquitectura consiste en determinar el tipo de arquitectura del sistema: basada-en-el-servidor (served-based), basada-en-el-cliente (client- based) o cliente-servidor (client-server). Arquitectura de sistema de información Es la disciplina y arte encargada del estudio, análisis, organización, disposición y estructuración de la información en espacios de información, y de la selección y presentación de los datos en los sistemas de información interactivos y no interactivos. La Arquitectura de la Información trata indistintamente del diseño de: sitios web, interfaces de dispositivos móviles o gadgets (como los lectores de mp3), CDs interactivos, videoclips digitales, relojes, tableros de instrumentos de aviones de combate o civiles, interfaces de máquinas dispensadoras, interfaces de juegos electrónicos, etc. (Laverde, A. 2005) Su principal objetivo es facilitar al máximo los procesos de comprensión y asimilación de la información, así como las tareas que ejecutan los usuarios en un espacio de información definido. Arquitectura de software Las técnicas metodológicas desarrolladas con el fin de facilitar la programación se engloban dentro de la llamada Arquitectura de Software o Arquitectura lógica. Se refiere a un grupo de abstracciones y patrones que nos brindan un esquema de referencia útil para guiarnos en el desarrollo de software dentro de un sistema informático. Así, los programadores, diseñadores, ingenieros y analistas pueden trabajar bajo una línea común que les posibilite la compatibilidad necesaria para lograr el objetivo deseado.
  4. 4. Algunos objetivos dentro de un esquema de Arquitectura de Software pueden ser: el software debe ser mantenible, esto es, fácilmente analizable, modificable, corregible; también puede ser un objetivo el nivel de interacción con otros sistemas informáticos, o su escalabilidad. Estas Arquitecturas están definidas muchas veces por el tipo de tecnología a la cual se enfrenta un programador o grupo de programadores, por lo cual algunos tipos de arquitectura son más recomendables que otras para ciertas tecnologías. Cada tarea de computación es asignada a una computadora, por lo cual una Arquitectura determinada debe ser implementada físicamente y definir de forma abstracta los componentes que tomarán arte en las tareas y sus interfaces comunicativas. Todo esto se desarrolla a "alto nivel", ensamblando elementos para lograr la mayor funcionalidad posible siendo a la vez portable, logrando disponibilidad, escalabilidad y confiabilidad. Como ejemplos de Arquitecturas podemos citar las monolíticas (los grupos funcionales del software están altamente acoplados entre sí), cliente-servidor (se reparte la carga de cómputo en dos partes independientes), y la arquitectura de tres niveles (la carga se divide entre tres partes: presentación, cálculo y almacenamiento). Estilos de arquitectura sistema de información Cliente/Servidor La arquitectura cliente-servidor consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los
  5. 5. servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma. Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema. La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico. La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se esté utilizando en una red mixta. Peer to peer Una red Peer-to-Peer o red de pares o red entre iguales o red entre pares o red punto a punto (P2P, por sus siglas en inglés) es una red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. 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 parte de los usuarios lo utilicen para intercambiar archivos cuyo contenido está sujeto a las leyes de copyright, 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, y obtienen así más rendimiento en las conexiones y transferencias que con algunos métodos centralizados
  6. 6. 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. Dichas redes son útiles para diversos propósitos. A menudo se usan para compartir ficheros de cualquier tipo (por ejemplo, audio, vídeo o software). Este tipo de red también suele usarse en telefonía VoIP para hacer más eficiente la transmisión de datos en tiempo real. La eficacia de los nodos en el enlace y transmisión de datos puede variar según su configuración local (cortafuegos, NAT, ruteadores, etc.), velocidad de proceso, disponibilidad de ancho de banda de su conexión a la red y capacidad de almacenamiento en disco. De comunicación Al hablar de redes y de comunicaciones entre ordenadores resultan fundamentales 2 conceptos: Protocolos y Arquitectura de comunicación. Los protocolos se utilizan para la comunicación entre entidades de diferentes sistemas. Ejemplos de entidades son programas de aplicación de usuario, paquetes de transferencia de ficheros, sistemas de manejo de BD y terminales. Ejemplo de sistemas son ordenadores, terminales y sensores remotos. Podemos decir, que una entidad es algo capaz de enviar o de recibir información y un sistema es un objeto que contiene una o más entidades. Para que 2 entidades puedan comunicarse han de hablar el mismo idioma, mediante una serie de convenciones entre estas, a este conjunto de convenciones se le denomina protocolo, que puede definirse como el conjunto de reglas que gobiernan el intercambio de datos entre 2 entidades. En la realidad, la transferencia de datos desde una capa n de una máquina a la capa n de otra máquina no se realiza directamente, sino que los datos son pasados a la capa inmediatamente inferior de la máquina y así sucesivamente hasta llegar a la capa 1, donde nos encontramos el medio físico, por donde se realiza la comunicación con la otra máquina. Entre cada par de capas adyacentes hay una interfaz, la cual define los servicios y operaciones primitivas que la capa inferior ofrece a la superior. Al conjunto de capas con las interfaces y protocolos recibe el nombre de arquitectura de la red.
  7. 7. De capas y partición La metodología RPM presentada por C. Larman presupone una estructura de tres capas que es típica de los Sistemas de Información. Estas tres capas son: • La capa de la Presentación Esta capa reúne todos los aspectos del software que tiene que ver con las interfaces y la interacción con los diferentes tipos de usuarios humanos Estos aspectos típicamente incluyen el manejo y aspecto de las ventanas, el formato de los reportes, menúes, gráficos y elementos multimedia en general. • La capa del Dominio de la Aplicación Esta capa reúne todos los aspectos del software que tienen que automatizan o apoyan los procesos de negocio que llevan a cabo los usuarios. Estos aspectos típicamente incluyen las tareas que forman parte de los procesos, las reglas y restricciones que aplican. • La capa del Repositorio Esta capa reúne todos los aspectos del software que tienen que ver con el manejo de los datos persistentes, por lo que también se le denomina la capa de las Bases de Datos). En toda arquitectura de capa los elementos agrupados en una misma capa pueden comunicarse entre sí; pero existen variantes en cuanto a las comunicaciones permitidas entre elementos de capas diferentes:
  8. 8. 1. Arquitectura top-down de capas: Los elementos de una capa i+1 pueden enviar solicitudes de servicio a elementos de la capa inferior i. Típicamente se produce una cascada de solicitudes, es decir para satisfacer una solicitud a una capa i+2, ésta requiere enviar varias solicitudes a la capa i+1; cada una de estas solicitudes a la capa i+1 genera a su vez un conjunto de solicitudes a la capa i y así sucesivamente. Una arquitectura top-down es laxa (o no estricta) si los elementos de una capa i+1 pueden enviar solicitudes de servicio directamente a un elemento de cualquiera de las i capas inferiores. 2. Arquitectura bottom-up de capas: Cada elemento de una capa i puede notificar a elementos de la capa superior i+1 de que ha ocurrido algún evento de interés (ej. manejadores de dispositivos). La capa i+1 puede juntar varios eventos antes de notificar a su vez an elemento de la capa i+2. Una arquitectura bottom-up tambien puede ser no estricta si el elemento de la capa i puede notificar a cualquier elemento de cualquier capa superior a la capa i. 3. Arquitectura bidireccional de capas En su forma más común involucra dos pilas de N capas que se comunican entre si. El ejemplo más conocido es el de los protocolos en Redes de Computadores. Al implementar una arquitectura top-down de capas, se deben tomar en cuenta los siguientes factores: 1. ¿Cuál es el criterio de abstracción para agrupar servicios/clases en una capa?
  9. 9. Mencionar el criterio Presentación-Dominio de Aplicación-Repositorio de Sistemas de Información. 2. Determinar el número de capas En términos simplistas, a más capas más flexibilidad pero menor desempeño. 3. Típicamente las capas más internas ofrecen menos servicios. Esto ayuda la reutilización de capas ("pirámide invertida de reuso"). 4. El grado de encapsulamiento de las capas. A mayor encapsulamiento, menor dependencia externa sobre la estructura de una capa. 5. Estructura interna de cada capa. 6. ¿Cuánta información pasar de una capa a otra? Tomemos el caso de la arquitectura top-down. Es muy posible que, de acuerdo con el tipo de servicio solicitado, la capa inferior requiera una cantidad de información variable. En un modelo puro "empujado" (push), la capa superior está obligada a enviarle toda la información que pueda llegar a hacerle falta a la capa inferior en la solicitud.
  10. 10. Esto no siempre es posible (piense por ejemplo en una solicitud de servicio a una base de datos que no logra completarse por estar fuera de línea. ¿Qué se hace: reintentar, abandonar, usar una fuente alterna?). En el modelo contrario, "halado" (pull o por demanda), la capa inferior solicita mayor información sólo si le hace falta --¿pero de quién la pida? El modelo desolicitudes top-down presupone un invocador anónimo y un invocado conocido. La solución la proporciona el patrón Editorial-Suscriptor (Publish- Subscribe) que encapsula la idea del callback. Este patrón de diseño lo estudiaremos más adelante. 7. Diseñe la estrategia de manejo de errores. Este es un aspecto que es frecuentemente obviado, aunque tiene impacto fuerte tanto en el tiempo de procesamiento como en el esfuerzo de programación. Típicamente se recomienda manejar el error en el nivel que lo descubrió, si esto no es posible, dejar que lo resuelva la capa más arriba, pero generalmente abstrayendo el tipo de error para que sea comprensible en término de los servicios de la capa superior. Aplicaciones en capas 3 y 4 La estrategia tradicional de utilizar aplicaciones compactas causa gran cantidad de problemas de integración en sistemas software complejos como pueden ser los sistemas de gestión de una empresa o los sistemas de información integrados consistentes en más de una aplicación. Estas aplicaciones suelen encontrarse con importantes problemas de escalabilidad, disponibilidad, seguridad, integración... Para solventar estos problemas se ha generalizado la división de las aplicaciones en capas que normalmente serán tres: una capa que servirá para guardar los datos (base de datos), una capa para centralizar la lógica de
  11. 11. negocio (modelo) y por último una interfaz gráfica que facilite al usuario el uso del sistema. Si establecemos una separación entre la capa de interfaz gráfica (cliente), replicada en cada uno de los entornos de usuario, y la capa modelo, que quedaría centralizada en un servidor de aplicaciones, obtenemos una potente arquitectura que nos otorga algunas ventajas: • Centralización de los aspectos de seguridad y transaccionalidad, que serían responsabilidad del modelo. • No replicación de lógica de negocio en los clientes: esto permite que las modificaciones y mejoras sean automáticamente aprovechadas por el conjunto de los usuarios, reduciendo los costes de mantenimiento. • Mayor sencillez de los clientes. Si intentamos aplicar esto a las aplicaciones web, debido a la obligatoria sencillez del software cliente que será un navegador web, nos encontramos con una doble posibilidad: • Crear un modelo de 4 capas, separando cliente, servidor web, modelo y almacén de datos. Esto nos permite una mayor extensibilidad en caso de que existan también clientes no web en el sistema, que trabajarían directamente contra el servidor del modelo. Modelo vista controlador Modelo-Vista-Controlador (Model-View-Controller) es un patrón de desarrollo que separa la parte lógica de una aplicación de su presentación. Básicamente sirve para separar el lenguaje de programación del HTML lo máximo posible y para poder reutilizar componentes fácilmente. El Modelo es el objeto que representa los datos del programa. Maneja los datos y controla todas sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia el Modelo.
  12. 12. La Vista es el objeto que maneja la presentación visual de los datos representados por el Modelo. Genera una representación visual del Modelo y muestra los datos al usuario. Interactúa con el Modelo a través de una referencia al propio Modelo. El Controlador es el objeto que proporciona significado a las órdenes del usuario, actuando sobre los datos representados por el Modelo. Cuando se realiza algún cambio, entra en acción, bien sea por cambios en la información del Modelo o por alteraciones de la Vista. Interactúa con el Modelo a través de una referencia al propio Modelo. Se trata de realizar un diseño que desacople la vista del modelo, con la finalidad de mejorar la reusabilidad. De esta forma las modificaciones en las vistas impactan en menor medida en la lógica de negocio o de datos.
  13. 13. Conclusión Al concluir Podemos decir que el diseño está determinado como el fin a que se dirige o encamina una acción u operación, que a su vez está formada por requisitos y diversas técnicas de trabajo. Cuando nos referimos a un “objeto de diseño” estamos hablando de algo especial, de algo con ciertas características, dándole un significado más intenso al objeto en cuestión. Debemos tener en cuenta que también el objeto de diseño no depende tanto de su apariencia en sí, sino busca que su forma y su función formen un todo coherente, armónico e impactante. Esto se debe a que cotidianamente estamos rodeados de muchos objetos, y obviamente que un consumidor o espectador se inclinará por el objeto que llame un poco más la atención y que sobresalga del resto. Para concluir, podemos señalar que continuamente estamos rodeados de objetos de diseño y del diseño en sí, desde las cosas más mínimas e insignificantes hasta los edificios y construcciones más grandes que día a día vemos en la ciudad. Por eso, el diseño forma parte de nuestras vidas desde que nacemos hasta el fin de la misma, por lo tanto es importante tener en cuenta al objeto de diseño, como una parte más de lo que nosotros somos.
  14. 14. Referencias Bibliográficas Diseño de la arquitectura del sistema http://ntaula0.tripod.com/ads/disarquit.htm Arquitectura de la Información http://es.wikipedia.org/wiki/Arquitectura_de_la_informaci%C3%B3n Arquitectura de capas http://ldc.usb.ve/~teruel/ci3715/clases/arqCapas.html

×