Arquitectura de una aplicación

34
Arquitectura de una aplicación Arquitectura: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería: proyecta la estructura física interna, dando forma a los objetivos definidos por la arquitectura; considerando la eficiencia y la eficacia del proyecto. Construcción: elabora la estructura, con el uso de herramientas y datos

Transcript of Arquitectura de una aplicación

Page 1: Arquitectura de una aplicación

Arquitectura de una aplicación

• Arquitectura: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas.

• Ingeniería: proyecta la estructura física interna, dando forma a los objetivos definidos por la arquitectura; considerando la eficiencia y la eficacia del proyecto.

• Construcción: elabora la estructura, con el uso de herramientas y datos

Page 2: Arquitectura de una aplicación

Arquitectura de la Aplicación

• Ofrece una estructura para pensar, proyectar, elaborar y desarrollar aplicaciones que se integren y funcionen bien.

• Arquitectura Cliente/Servidor en dos capas:• Front/end

• Back/end

Page 3: Arquitectura de una aplicación

Modelo de ArquitecturaCliente/Servidor

• Front/end– Es la parte de la aplicación que interactúa con el

usuario.

– Basados en una interfaz gráfica con el usuario (GUI). El Cliente corre la aplicación que ofrece la interfaz con el usuario.

• Back/end– Es la parte no-interactiva de la aplicación. La mayor

parte reside en las Bases de Datos (relacionales o no).

Page 4: Arquitectura de una aplicación

Modelo de ArquitecturaCliente/Servidor

• Aplicaciones Simples: no requieren una gran Base de Datos compartida, pueden ser elaboradas solamente en el Cliente.

• Aplicaciones Complejas: exigen dos capas,

una para la aplicación del usuario (Cliente) y

otra para la base de datos (Servidor).

Eventualmente, el Cliente y el Servidor podrán estar en el mismo equipamiento.

Page 5: Arquitectura de una aplicación

Procesos de Negocios• Las organizaciones, independientemente de su

tamaño, utilizan sus recursos y su tiempo en Procesos de Negocios complejos.

• Un Proceso de Negocio consiste en reglas y en la ejecución de un conjunto de pasos.

• ¿Quién mantiene funcionando a los procesos de negocios?

Los Sistemas de Información Computarizados

• Pensar los procesos en términos de reglas permite que la computadora pueda automatizar las parte mecánicas.

Page 6: Arquitectura de una aplicación

Conductor de los Procesos deNegocios

• La actividad principal de los Sistemas de Información Computarizados, es la de:– Conducir a los Procesos de Negocios.– Mantener a la BD,Poner a disposición de toda

la empresa los datos que precisan los usuarios y Coordinar el acceso a los datos.

• Lo ideal es que los PN estén automatizados

Page 7: Arquitectura de una aplicación

Reingeniería de los Procesos de Negocio (RPN)

• Uno de los más importante principios de RPN es la eliminación de las filas. Las esperas cuestan dinero y demoran el Negocio.

• En la Reingeniería de un proceso, se analiza cada paso, cada intervención y cada decisión .

• ¿Los pasos de: Decisión e intervención pueden ser automatizados?

• ¿Las reglas pueden ser transcriptas a un programa para ser ejecutadas por una computadora, a fin de evitar la intervención humana?

Page 8: Arquitectura de una aplicación

Reingeniería de los Procesos de Negocio (RPN)

• El objetivo no es conseguir la automatización total; pero sí disminuir toda intervención humana innecesaria.

• Las computadoras y las personas harán su parte correspondiente en el proceso de toma de decisiones.

• Esto destaca la diferencia entre las computadora y las personas.

Page 9: Arquitectura de una aplicación

Arquitectura Cliente / Servidor

Nivel Contenido

Aplicativo del Usuario Aplicaciones de PC einterfaces gráficas

Reglas del negocio Reglas del negocio yprocesos de cálculo

Administración dedatos

Base de Datos(relacionales y SQL)

Page 10: Arquitectura de una aplicación

Arquitectura Cliente / ServidorEsquemaExterno

EsquemaExterno

EsquemaExterno

EsquemaConceptual

EsquemaInterno

Diccionariode Datos

Lista de eventosCursograma

Diagrama de Flujo de Datos

Modelo Relacional

TransformadorConceptual / Interno

Transformador Externo /Conceptual

TransformadorInterno / Almacenado

Operativo

Planeamiento

EstratégicoSistemaEjecutivo

SistemaApoyo a lasDecisiones

SistemasTransacciones

BasedeDatos

Page 11: Arquitectura de una aplicación

Funciones de los Niveles en la ArquitecturaNivel Responsabilidad Funciones Herramientas

Aplicativo delUsuario

Interfazcomprensible yeficiente

Presentación,navegación,manejo y análisis

Herramientasgráficas ylenguaje deprogramación

Regla deNegocio

Política: reglas yheurística

Toma dedecisiones,políticas,administraciónde recursos

Lenguaje deprogramación

Base de Datos Datosconsistentes yseguros

Mantenimiento,actualización,integridad,seguridad

Base de Datos,lenguaje de BD

Page 12: Arquitectura de una aplicación

Arquitectura de tres Niveles

• La Arquitectura de tres niveles es lógica y no física. Se preocupa con las funciones y no con la implantación.

• La Arquitectura puede ser utilizada para desarrollar sistemas Centralizados o Distribuidos.

• La Arquitectura facilitará la distribución de los componentes del sistema.

Page 13: Arquitectura de una aplicación

Beneficios

• Estructura para la elaboración de aplicativos flexibles y fáciles de modificar, según las necesidades del negocio(cambio).

• Alto nivel de reutilización del software y datos.• fácil y rápido desarrollo de aplicativos grandes y

complejos, para las transacciones y los SSD.• Fácil y rápido desarrollo de sistemas distribuidos

que dan soporte a la administración central y a equipos autogestionados

Page 14: Arquitectura de una aplicación

Niveles de abstracción

Base de Datos

Reglas del Negocio

Aplicaciones del Usuario

Page 15: Arquitectura de una aplicación

Beneficios de la abstracción

• Esconde de cada nivel los detalles contenidos en los niveles inferiores:– Desarrollo simplificado del aplicativo:

• al desarrollar un nivel no precisa preocuparse por el otro

– Mayor seguridad y protección:• el desarrollador de un nivel no puede controlar

físicamente otra camada en ningún nivel de detalle

Page 16: Arquitectura de una aplicación

Interfaz entre las camadas

• Es la superficie entre los componentes adyacentes de un aplicativo y el dispositivo por medio del cual ellos interactúan a través de las siguientes funciones:– Informa lo que el otro componente debe hacer,

pregunta el estado actual del otro componente, recibe el resultado de las operaciones solicitadas.

Page 17: Arquitectura de una aplicación

Tipos de interfaces

Aplicativo del Usuario

Reglas del Negocio

Base de DatosActualización de consultas

Pedido de proceso

Interacción con el usuario

Interacción con los componentesde la mismacamada

Interacción con los componentesde otracamada

Page 18: Arquitectura de una aplicación

Proyecto de cada nivelNivel Interfaz Foco del

proyectoAplicativo delUsuario

GUI Objetos delaplicativoindependientedel proyecto

Proceso deReglas delnegocio

Proceso Solicitud dedecisionesindependientesde la interfazusuario ydatos

Administración de Base deDatos

Transacción yconsultas

Datosindempendientes de ladecisión.

Page 19: Arquitectura de una aplicación

Interfaz Base de Datos

• Funciones de las transacciones:– Ejecutar actualizaciones consistentes con los datos.– Imponer reglas básicas del negocio.– Evitar cambios no autorizados o inválidos

• Funciones de las consultas:– Facilitar consultas complejas– Asegurar consistencia– Garantizar seguridad

Page 20: Arquitectura de una aplicación

Base de Datos independientes de las Reglas del Negocio

• Proyecte la base de datos usando un modelo de planeamiento.

• Desarrolle consultas y transacciones que ofrezcan un buen acceso a la base de datos.

• Solo permita que las transacciones bien elaboradas actualicen la base de datos.

• Aisle a los usuarios de los detalles y de la localización de las base de datos fundamentales.

Page 21: Arquitectura de una aplicación

Interfaz de las reglas del proceso del negocio

• Inter operabilidad:– Capacidad de compartir trabajo, compartir software

y hacer cosas consistente para toda la organización.

• Reutilización:– Uno de los principales motivos que imposibilita la

reutilización de códigos es la falta de separación entre la interfaz del usuario, las reglas del negocio, y la administración de la base de datos en un mismo programa.

Page 22: Arquitectura de una aplicación

Flexibilidad=Interoperabilidad + reutilizabilidad

InterfazUsuario

Base deDatos Reglas

delNegocio

BD

RN

IU

Independencia y mocularidad de los procesosReutilización del código

Page 23: Arquitectura de una aplicación

Flexibilidad de las Reglas del Negocio

• Un único módulo de software trata de una tarea específica.

• Este módulo es independiente de la BD y de la interfaz del Usuario.

• Todas las aplicaciones de la organización utilizan este módulo para realizar esa misma tarea.

Page 24: Arquitectura de una aplicación

Interfaz de la Aplicación del Usuario

• Libertad para los Usuarios:– Modelan el sistema según sus necesidades sin afectar

las reglas del negocio y la base de datos.

• Libertad para la Organización:– La aplicación del usuario envía solicitudes de procesos

formales para ejecutar las reglas del negocio, transacciones y consultas en la Base de Datos.

– Las Reglas del Negocio y la Base de Datos quedan aislados de los cambios en la interfaz de los Usuarios.

Page 25: Arquitectura de una aplicación

División del trabajo

• El desarrollo de un buen sistema Cliente / Servidor exige especialización de:– Interfaz gráfica– Redes de computadora– Programación de Negocios– Base de Datos– Programación de Base de Datos– Distribución de sistemas

Page 26: Arquitectura de una aplicación

Es posible desarrollar un Sistema Distribuido

• Distribución de Datos

• Distribución de Procesamiento

• Interfaz gráfica con el usuario

Page 27: Arquitectura de una aplicación

Existen los Sistemas Distribuidos

Page 28: Arquitectura de una aplicación

Cambios en la Naturaleza de los sistemas de aplicación

• Históricamente el área de informática elabora los sistemas de aplicación de forma completa, estando los usuarios obligados a “tomarlos o dejarlos”.

• En el futuro, el área informática elaborará la infraestructura, o sea: La base de Datos, los módulos de los procesos de negocio, y kits de herramientas; para que el usuario pueda elaborar sus propias aplicaciones.

Page 29: Arquitectura de una aplicación

Función del área Informática

• Proveer los procesos de las reglas del negocio.

• Proveer las estructuras fundamentales de las Bases de Datos

• Proveer los elementos de la interfaz

• Proveer la infraestructura general de los sistemas, sobre la cual los equipos de trabajo puedan montar sus aplicaciones.

Page 30: Arquitectura de una aplicación

Metodología actual de proyectos

Requisitos

Modelo de Datos Modelo Funcional

Proyecto de la Aplicación

Page 31: Arquitectura de una aplicación

Un modelo para el planeamiemto y desarrollo

Conceptual Lógico Físico

Aplicacióndel Usuario

Flujo detrabajo

Secuencia deFormularios

Formularios

Reglas delNegocio

Flujo deProcesos

Modelo deprocesos

Programas

Base deDatos

Modelo deDatos

Esquema deBase de Datos

Tablas eíndices

Page 32: Arquitectura de una aplicación

Del Modelo Conceptual a lo Físico

Modelo de Negocios

Modelo de Datos

Base de Datos

Flujo de Procesos

Interacción de Procesos

ProgramaFormularios

Pantalla

Secuencia de Formulario

Flujo de Trabajo

Conceptual

Lógico

Físico

Reglas

Desempeño

Page 33: Arquitectura de una aplicación

Diagrama para un Proyecto de SistemasRequisitos

Base deDatos

Arquitectura

Proyecto de la Aplicación

Proceso deNegocios

Interfaz, flujode trabajo

Reglas del Negocio Estructura General

Page 34: Arquitectura de una aplicación

Arquitectura

• Considera como los tres niveles de la aplicación se relacionan

• Focaliza sobre la estructura y la adaptación

• Determina que entra en cada nivel y como la aplicación se relaciona con otras aplicaciones.