28
Aplicaciones Distribuidas Trabajo Monográfico Álvarez Pedro Javier I.

Aplicaciones Distribuídas

Embed Size (px)

Citation preview

Page 1: Aplicaciones Distribuídas

Aplicaciones DistribuidasTrabajo Monográfico

Álvarez Pedro Javier I.

Page 2: Aplicaciones Distribuídas

Aspectos a evaluarse a la hora de diseñar una aplicación distribuida:

• Concurrencia: las aplicaciones distribuidas serán utilizadas por un alto número de usuarios por lo que hay que tener presente los bloqueos de recursos o el uso de CPU, para lograr la máxima eficiencia.

• Topología de Red: el tráfico de red es un aspecto importante que condiciona el tiempo de respuesta, se debe escoger una topología de red que lo soporte.

• Ubicación de la Lógica: es necesario decidir en que procesos físicos se sitúan los componentes lógicos.

• Homogeneidad de las Plataformas: la utilización de estándares entre los sistemas operativos o lenguajes de desarrollo puede ayudar a evitar la heterogeneidad.

• Seguridad: es necesario establecer políticas de seguridad para impedir el acceso no autorizado a los datos.

Page 3: Aplicaciones Distribuídas

Tipos de Aplicaciones Distribuidas:

• Cliente – Servidor• Aplicaciones de N-capas

Page 4: Aplicaciones Distribuídas

Aplicaciones Cliente-Servidor: son las llamadas “tradicionales” y en las cuales podemos distinguir dos procesos.

Servidor: proporciona los datos que se le solicitan y procesa los datos que se le envían. Se le llama servidor tanto al proceso como al equipo en el que el proceso esta alojado.

Cliente: se ejecuta en el equipo del usuario que maneja la aplicación y las funciones son las de solicitar datos al servidor para que realice cierto trabajo con ellos y enviar los cambios si es que es necesario.

Page 5: Aplicaciones Distribuídas
Page 6: Aplicaciones Distribuídas

Las funciones de los SGBD:• Manutención de la integridad de los datos.• Proporcionar seguridad.• Permitir incluir lógica de negocios de la

aplicación en forma de:

Procedimiento almacenados

Disparadores

Reglas intrínsecas

Page 7: Aplicaciones Distribuídas

Ventajas del Modelo Cliente-Servidor:• Incluye dentro de si los componentes de

validación, presentación y manipulación de datos.

• Posee arquitectura simple.• El coste de implementación es mas bajo

que una aplicación n-capas.• Al existir menos capas los datos asan mas

rápido.

Page 8: Aplicaciones Distribuídas

Desventajas de Modelo Cliente- Servidor:• La conectividad se realiza desde cada una

de las estaciones de trabajo lo que consume recursos del servidor.

• La conectividad entre las estaciones de trabajo y el servidor es especifica para cada SGBD, mayor esfuerzo a la hora de configurar los sistemas.

• Dificultad a la hora de trabajar con diferentes SGBD.

• Minima reutilización de codigo.

Page 9: Aplicaciones Distribuídas

Aplicaciones de N-capas: en una aplicación de n-capas los diferentes procesos están distribuidos en diferentes capas no solo lógicas, si no también físicas. Los procesos se ejecutan en diferentes equipos que también puedan estar en diferentes plataformas o S.O.

Page 10: Aplicaciones Distribuídas
Page 11: Aplicaciones Distribuídas

Arquitecturas de las Aplicaciones distribuidas:

Considerando el papel que cada elemento juega dentro de la aplicación se distinguen tres grupos lógicos donde podemos agrupar elementos según su funcionalidad:

• La Capa de Servidor• La Capa de Negocios• La Capa de Presentación

Page 12: Aplicaciones Distribuídas
Page 13: Aplicaciones Distribuídas

La Capa Servidor

Servicios: Los servicios son procesos que se ejecutan en equipos servidores y se mantienen a la espera de que los procesos clientes le soliciten funcionalidades de datos.

Page 14: Aplicaciones Distribuídas

Los servicios poseen ciertas características que los diferencian de una aplicación de escritorio:

• Ejecución desatendida.• Conectividad

a) Acceso simultaneo

b) Acceso serializado• Seguridad

Page 15: Aplicaciones Distribuídas

Servicios de Base de datos:

Son los mas frecuentes en las aplicaciones distribuidas. Los SGBD disponen de la infraestructura necesaria de servicios para crear reglas de negocios.

Page 16: Aplicaciones Distribuídas

Reglas de Negocios según su modo:• Procedimientos Almacenados: Se

ejecutan como una consecuencia de una llamada directa de un cliente.

• Disparadores: Se ejecutan como consecuencia indirecta de una sentencia SQL efectuada por el cliente, normalmente.

• Procedimientos Programados: Los SGBD disponen de proceso programados por calendario.

Page 17: Aplicaciones Distribuídas
Page 18: Aplicaciones Distribuídas

La Capa de Negocios:

En esta capa se sitúan las normas de acceso a datos, la lógica de tratamiento de los mismos y cualquier elemento de aplicación que pueda reutilizarse.

Por lo general, lo componen dos tipos de elementos, según la función que desempeñan en la capa.

Page 19: Aplicaciones Distribuídas
Page 20: Aplicaciones Distribuídas

Lógica de Acceso a Datos:

Incluye los elementos necesarios para que la aplicación se conecte a orígenes de datos y recupere estructuras que serán utilizadas.

Los únicos elementos que se conectan a la base de datos son los objetos de acceso a datos.

Page 21: Aplicaciones Distribuídas

Los motivos para encapsular todo el acceso a datos en la lógica de acceso a datos son múltiples:

No será necesario distribuir la información de conexión por todo el sistema.

La aplicación sea agnóstica respecto al origen de datos.

Ignora la estructura real de los orígenes de datos.

La reutilización es el factor más importante.

Page 22: Aplicaciones Distribuídas

Componentes Principales de la Lógica de Acceso a Datos:

1. Entidades de Negocios: Son estructuras de datos que la aplicación maneja y que representan a las entidades de datos definidas en los orígenes de datos.

2. Objetos de Acceso a Datos: Son los intermediarios entre la aplicación y los orígenes de datos. Un objeto de acceso de datos encapsula el acceso a una sola entidad de datos del origen.

Page 23: Aplicaciones Distribuídas

Entidades de Negocios, según la utilización:

• Entidades de Mantenimiento: Se utilizan para leer, insertar, actualizar o eliminar registros del origen de datos.

• Entidades de Lista: Se utilizan para recuperar estructuras de datos obtenidas como consecuencia de una consulta.

Page 24: Aplicaciones Distribuídas

Un Objeto de Datos puede exponer tres tipos de métodos de acceso a datos:

• Métodos de CRUD (Create, Read, Update, Delete).

• Métodos de Lista.• Métodos de Procedimientos.

Los Objetos de Datos han de ser simples y directos en su funcionamiento. Han de afectar a una sola entidad de datos.

Page 25: Aplicaciones Distribuídas

Lógica de Negocios:Utilizan los objetos de acceso a datos y las

entidades de negocio, siendo una especie de cliente de la lógica de acceso a datos.

Podemos encontrar:• Objetos de Negocios: Encapsula el

acceso a varios objetos de acceso a datos en un único objeto.

• Fachada de Negocio: Aparecen en grandes aplicaciones con muchos objetos de acceso a datos y muchos objetos de negocios.

Page 26: Aplicaciones Distribuídas

La Capa de Presentación:

Es un sistema de presentación y manejo de datos, que se obtienen y se actualizan con los objetos de negocios comunes para todas las aplicaciones que los usan.

Debe ser independiente de las reglas del negocio y su función se limitó a la presentación y manejo de datos de una aplicación

Page 27: Aplicaciones Distribuídas

Factores que Influyen en la Distribución Física:

• Infraestructura de Comunicaciones.• Dependencias.• Impacto en las Modificaciones

Posteriores.• Reutilización.• Rendimiento.• Dificultad de Implantación.

Page 28: Aplicaciones Distribuídas

Conclusión:Las aplicaciones distribuidas ofrecen la solución

más optimizada para grandes sistemas que requieren alta concurrencia o máxima reutilización de código. Los procesos se ejecutan en máquinas dedicadas que se configuran de la manera más adecuada para ofrecer los servicios que requiere cada parte de la aplicación.

Ciertamente, crear una aplicación distribuida en varias capas requiere cierto sobresfuerzo en términos de diseño y conlleva una cierta pérdida de rendimiento frente a las aplicaciones cliente-servidor tradicionales, pero su implantación soluciona tantos problemas que su uso es imprescindible en sistemas muy complejos.

Gracias