Está en la página 1de 44

DESARROLLO DE APLICACIONES DE AMBIENTES DISTRIBUIDAS

OBJETIVO DE LA UNIDAD
EL ESTUDIANTE RECONOCER LA EVOLUCIN, CARACTERSTICAS Y LA NATURALEZA DE LAS APLICACIONES DISTRIBUIDAS.

EVOLUCIN DE LAS APLICACIONES INFORMTICAS

NECESIDADES A CUBRIR
TRABAJO A DISTANCIA COMPARTIR INFORMACIN

ACCESIBILIDAD
SEGURIDAD EN LA PROTECCIN DE LA INFORMACIN (TENER LA BASE DE DATOS PARTICIONADA EN DOS O MAS NODOS) INDEPENDENCIA LUGARES

CUALQUIER APLICACIN ACTUAL CUENTA GENERALMENTE CON TRES PARTES DIFERENCIADAS:


UNA INTERFAZ DE USUARIO: ELEMENTO CON EL QUE INTERACCIONA EL USUARIO DE LA APLICACIN, EJECUTANDO ACCIONES, INTRODUCIENDO U OBTENIENDO INFORMACIN.

LGICA REGLAS DE NEGOCIO: SON LAS QUE PROCESAN LA INFORMACIN PARA GENERAR LOS RESULTADOS QUE PERSIGUEN, SIENDO EL ELEMENTO FUNDAMENTAL QUE DIFERENCIA UNAS APLICACIONES DE OTRAS.

GESTIN DE DATOS: SE OCUPA DEL ALMACENAMIENTO

APLICACIONES MONOLTICAS
Una nica aplicacin de software en niveles en los que la interfaz de usuario y cdigo de acceso a datos se combinan en un solo programa de una plataforma nica.

Todas las entradas de usuario, verificacin, lgica de negocio y acceso de datos podran encontrarse juntas. Esto era apropiado en el mundo del mainframe y centros de datos corporativos porque todo era controlado.
En este rubro estn considerados las distintas aplicaciones para escritorio: sistemas operativos, ofimtica, juegos monousuario, etc.

APLICACIN MONOLTICA
Por ejemplo, suponiendo que una base de cliente tuviera un tamao medio de 5Mb y se efecta una bsqueda muy simple de un cliente en particular, el servidor no efectuar la bsqueda por s sino que devuelve la tabla de 5Mb completa, luego el equipo del usuario procesa la bsqueda en su equipo para seleccionar 1 registro de digamos unos 1Kb y descarta el resto de la informacin

Una aplicacin monoltica duplica en cada computadora todos sus elementos: interfaz de usuario, lgica o reglas de negocio y acceso a datos.

Interface de usuario Lgica de negocio

Datos

APLICACIN MONOLTICA
VENTAJAS
FCIL DE DESARROLLAR. DIFCIL DE MANTENER, POCO ESCALABLE Y QUE PRECISA DE CIERTA POTENCIA DE PROCESO.

DESVENTAJAS
REQUIEREN MS Y MEJOR HW EN LAS ESTACIONES DE TRABAJO

SON INFINITAMENTE MS LENTOS EN EL PROCESAMIENTO DE PETICIONES SENCILLAS


OCUPAN MAYOR ANCHO DE BANDA, PROVOCANDO CONGESTIONAMIENTO EN LA RED LOCAL

REQUIEREN HABILITAR EL ACCESO REAL A LA CARPETA DE DATOS PARA TODOS LOS USUARIOS DE LA APLICACIN SU ACTUALIZACIN ES MS COSTOSA
NO PERMITEN EL ACCESO EN LNEA DESDE FUERA DE LA RED LOCAL REQUIEREN DE IMPLEMENTACIONES DE SOLUCIONES DE CONECTIVIDAD MUY COSTOSAS

APLICACIONES CLIENTE/SERVIDOR
Es un modelo para construir sistemas de informacin, que se sustenta en la idea de repartir el tratamiento de la informacin y los datos por todo el sistema informtico, permitiendo mejorar el rendimiento del sistema global de informacin. Esta arquitectura consiste bsicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. En esta arquitectura la capacidad de proceso est repartida entre los clientes y los servidores. La separacin entre cliente y servidor es una separacin de tipo lgico, donde el servidor no se ejecuta necesariamente sobre una sola mquina ni es necesariamente un slo programa. Los tipos especficos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propsitos varan de unos servicios a otros, la arquitectura bsica seguir siendo la misma.

APLICACIONES CLIENTE/SERVIDOR
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus caractersticas son: Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicacin. Espera y recibe las respuestas del servidor. Por lo general, puede conectarse a varios servidores a la vez. Normalmente interacta directamente con los usuarios finales mediante una interfaz grfica de usuario. La ubicacin de los datos o de las aplicaciones es totalmente transparente para el cliente

APLICACIONES CLIENTE/SERVIDOR
Al receptor de la solicitud enviada por el cliente se conoce como

servidor. Sus caractersticas son:


Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempean entonces un papel pasivo en la comunicacin. Tras la recepcin de una solicitud, la procesan y luego envan la respuesta al cliente. Por lo general, aceptan conexiones desde un gran nmero de clientes (en ciertos casos el nmero mximo de peticiones puede estar limitado). No es frecuente que interacten directamente con los usuarios finales. Dan formato a los resultados y los trasmiten al cliente. Llevan a cabo la verificacin de integridad y proporcionan control de acceso concurrente.

VENTAJAS DEL MODELO CLIENTE/SERVIDOR


Uno de los aspectos que ms ha promovido el uso de sistemas Cliente/Servidor, es la existencia de plataformas de hardware cada vez ms baratas. La posibilidad de utilizar mquinas considerablemente ms baratas que las requeridas por una solucin centralizada, basada en sistemas grandes. El esquema Cliente/Servidor facilita la integracin entre sistemas diferentes y comparte informacin, De esta manera, podemos integrar PCs con sistemas medianos y grandes, sin necesidad de que todos tengan que utilizar el mismo sistema operacional. Al favorecer el uso de interfaces grficas interactivas, los sistemas construidos bajo este esquema tienen mayor interaccin ms intuitiva con el usuario. Ms rpido el mantenimiento y el desarrollo de aplicaciones. La estructura inherentemente modular facilita adems la integracin de nuevas tecnologas y el crecimiento de la infraestructura computacional, favoreciendo as la escalabilidad de las soluciones.

DESVENTAJAS DEL MODELO CLIENTE/SERVIDOR


Tiene escasas herramientas para la administracin y ajuste del desempeo de los sistemas. Los clientes y los servidores debern utilizar el mismo mecanismo (por ejemplo sockets o RPC). Hay que tener estrategias pare el manejo de errores y para mantener la consistencia de los datos. La seguridad de un esquema Cliente/Servidor es muy importante.

Desempeo. Problemas de este estilo pueden presentarse por congestin en la red, dificultad de trfico de datos.
Un aspecto directamente relacionado con lo anterior es el de cmo distribuir los datos en la red. Hay que tener en cuenta que en algunos casos, por razones de confiabilidad o eficiencia, se pueden tener datos replicados, y que puede haber actualizaciones simultneas.

APLICACIONES EN DOS CAPAS


La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas fallas, todava no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en aprovecharse de la estructura cliente-servidor.

APLICACIONES EN DOS CAPAS


Las capas que esta arquitectura presenta son las siguientes: Nivel de aplicacin Este nivel es en el que se encuentra toda la interfaz del sistema y es la que el usuario puede disponer para realizar su actividad con el sistema.

Nivel de la base de datos.


Este nivel de la Base de Datos tambin llamado el Repositorio de Datos, es la capa en donde se almacena toda la informacin ingresada en el sistema y que se deposita en forma permanente. EXISTEN HERRAMIENTAS PARA EL DESARROLLO

APLICACIONES EN DOS CAPAS

Presentacin y Lgica

Datos

APLICACIONES EN DOS CAPAS


Normalmente esta arquitectura se utiliza en las siguientes situaciones:

o Cuando se requiera poco procesamiento de datos en la organizacin. o Cuando se tiene una base de datos centralizada en un solo servidor. o Cuando la base de datos es relativamente esttica. o Cuando se requiere un mantenimiento mnimo.

APLICACIONES EN TRES CAPAS


Consiste en una capa de la Presentacin, otra capa de la lgica de la aplicacin y otra capa de la base de datos.

APLICACIONES EN TRES CAPAS


Nivel de Aplicacin La diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semntica propia de aplicacin, sin tener que preocuparse de cmo esta implementado este ni de su estructura fsica. Nivel de Dominio de la aplicacin. En cambio este nivel se encarga de toda la estructura fsica y el dominio de aplicacin. Algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora nicamente se cambia la regla en el servidor de dominio de aplicacin y esta actuar en todos los clientes, cosa que ni suceda con la arquitectura en dos capas que si alguna regla se la cambia, se tena que ir a cada cliente a realizar el cambio. Nivel de Repositorio. Sigue siendo la capa en donde se almacenan los datos y toda la informacin.

APLICACIONES EN TRES CAPAS

Presentacin

Lgica

Datos

APLICACIONES EN TRES CAPAS


Normalmente esta arquitectura se utiliza en las siguientes situaciones:

o Cuando se requiera mucho procesamiento de datos en la aplicacin.


o En aplicaciones donde la funcionalidad este en constante cambio. o Cuando los procesos no estn muy relacionados con los datos. o Cuando se requiera aislar la tecnologa de la base de datos para que sea fcil de cambiar. o Cuando se requiera separar el cdigo del cliente para que se facilite el mantenimiento. o Esta muy adecuada para utilizarla con la tecnologa orientada a objetos.

APLICACIN EN N-CAPAS
En una aplicacin distribuida en n-capas los diferentes procesos estn distribuidos en diferentes capas no slo lgicas, sino tambin fsicas. Los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. Cada equipo posee una configuracin distinta y est optimizado para realizar el papel que le ha sido asignado dentro de la estructura de la aplicacin, de modo que tanto los recursos como la eficiencia global del sistema se optimicen.

APLICACIN EN N-CAPAS

APLICACIN EN N-CAPAS
Ventajas del modelo Desarrollos paralelos (en cada capa). Aplicaciones ms robustas debido al encapsulamiento. Mantenimiento y soporte ms sencillo (es ms sencillo cambiar un componente que modificar una aplicacin monoltica). Mayor flexibilidad (se pueden aadir nuevos mdulos para dotar al sistema de nueva funcionalidad)

Alta escalabilidad . Que puede manejar muchas peticiones con el mismo rendimiento simplemente aadiendo ms hardware. El crecimiento es casi lineal y no es necesario aadir ms cdigo para conseguir esta escalabilidad.

QU ES UNA APLICACIN

DISTRIBUIDA

DISEANDO APLICACIONES DISTRIBUIDAS

EL DISEO DE APLICACIONES MODERNAS INVOLUCRA LA DIVISIN DE UNA APLICACIN EN MLTIPLES CAPAS; LA INTERFAZ DE USUARIO, LA CAPA MEDIA DE OBJETOS DE NEGOCIOS, Y LA CAPA DE ACCESO A DATOS. PUEDE SER TIL IDENTIFICAR LOS TIPOS DE PROCESAMIENTO QUE PODEMOS ESPERAR QUE UNA APLICACIN REALICE..

DISEANDO APLICACIONES DISTRIBUIDAS.


MUCHAS APLICACIONES PUEDEN, AL MENOS, HACER LO SIGUIENTE:

CLCULOS U OTROS PROCESOS DE NEGOCIOS. EJECUCIN DE REGLAS DE NEGOCIOS. VALIDACIN DE DATOS RELACIONADOS AL NEGOCIO.

MANIPULACIN DE DATOS.
EJECUCIN DE LAS REGLAS DE DATOS RELACIONAL. INTERACTUAR CON APLICACIONES EXTERNAS O SERVICIOS. INTERACTUAR CON OTROS USUARIOS.

DISEANDO APLICACIONES DISTRIBUIDAS.


SISTEMAS DISTRIBUIDOS (DEFINICIN).
"SISTEMAS CUYOS COMPONENTES HARDWARE Y SOFTWARE, QUE ESTN EN COMPUTADORAS CONECTADAS EN RED, SE COMUNICAN Y COORDINAN SUS ACCIONES MEDIANTE EL PASO DE MENSAJES, PARA EL LOGRO DE UN OBJETIVO. SE ESTABLECE LA COMUNICACIN MEDIANTE UN PROTOCOLO PREESTABLECIDO.

APLICACIONES DISTRIBUIDAS.
CARACTERSTICAS. CONCURRENCIA.- ESTA CARACTERSTICA DE LOS SISTEMAS DISTRIBUIDOS PERMITE QUE LOS RECURSOS DISPONIBLES EN LA RED PUEDAN SER UTILIZADOS SIMULTNEAMENTE POR LOS USUARIOS Y/O AGENTES QUE INTERACTAN EN LA RED. CARENCIA DE RELOJ GLOBAL.- LAS COORDINACIONES PARA LA TRANSFERENCIA DE MENSAJES ENTRE LOS DIFERENTES COMPONENTES PARA LA REALIZACIN DE UNA TAREA, NO TIENEN UNA TEMPORIZACIN GENERAL, EST MS BIEN DISTRIBUIDA EN LOS COMPONENTES. FALLOS INDEPENDIENTES DE LOS COMPONENTES.- CADA COMPONENTE DEL SISTEMA PUDIERA FALLAR DE MANERA INDEPENDIENTEMENTE, Y LOS DEMS CONTINUAR EJECUTANDO SUS ACCIONES. ESTO PERMITE EL LOGRO DE LAS TAREAS CON MAYOR EFECTIVIDAD, PUES EL SISTEMA EN SU CONJUNTO CONTINUA TRABAJANDO.

NO CONFUNDIR
ALGO QUE SE TIENE QUE DEJAR CLARO ES QUE NO PODEMOS CONFUNDIR UNA APLICACIN DISTRIBUIDA CON UN SISTEMA DISTRIBUIDO

UN SISTEMA DISTRIBUIDO SE DEFINE COMO UNA COLECCIN DE COMPUTADORES AUTNOMOS CONECTADOS POR UNA RED, CON EL SOFTWARE DISTRIBUIDO ADECUADO PARA QUE EL SISTEMA SEA VISTO POR LOS USUARIOS COMO UNA NICA ENTIDAD CAPAZ DE PROPORCIONAR FACILIDADES DE COMPUTACIN

EJEMPLO:

EVOLUCIN TECNOLGICA PARA DESARROLLO DE APLICACIONES DISTRIBUIDAS.


LA EVOLUCIN DE LAS TECNOLOGAS PARA DESARROLLO DE APLICACIONES HA SIDO NOTORIA, YA QUE CON FORME VAN PASANDO LOS AOS BUENAS Y NUEVAS TECNOLGICAS HAN VENIDO A REVOLUCIONAR LA MANERA DE TRABAJO DESDE LAS MONOLTICAS QUE FUERON LA PRIMERA QUE SE DESARROLLARON, ESTAS RESULTABAN CARAS Y LOS COSTOS POR MANTENER ESTE TIPO DE EQUIPO ES MUY ELEVADO, PASANDO DESPUS A LAS APLICACIONES CLIENTESERVIDOR, APLICACIONES DE 3 CAPAS ASTA LA ACTUALIDAD APLICACIONES EN N-CAPAS.

EVOLUCIN DE LAS TECNOLOGAS PARA EL DESARROLLO DE APLICACIONES DISTRIBUIDAS DE INTERFAZ DE USUARIO

DE INTERFAZ DE USUARIO
Hasta 1945: se haca acceso directo de forma manual al hardware. 1945-1955. La primera generacin de interfaces no era interactiva, ya que la interaccin entre el sistema y el usuario se restringa. 1955-1965: lenguajes de mandatos. Tambin denominadas interfaces en lnea. Cuando el usuario pulsaba la tecla de antro (retorno o entre), no se poda modificar la entrada. De forma similar, cuando el ordenador presentaba una salida al usuario, no se poda modificar para reflejar cambios en los datos. La interaccin se limitaba a dilogos pregunta respuesta.

1980-1995: ventanas, iconos, mens y ratn. Tambin denominadas interfaces grficas de usuario.

DE INTERFAZ DE USUARIO
1995-futuro: interfaces no basadas en mandatos. . Todos los estilos de interfaz hasta ahora han tenido en comn, al menos, el concepto de mandato, y se basaban en el principio de un dilogo explcito entre el usuario y el ordenador en el que el usuario ordenaba al ordenador que hiciese ciertas acciones especficas. En estos sistemas futuros, el ordenador se encargar de tomar la responsabilidad de la interaccin, basando sus acciones en sus observaciones del usuario, utilizando tecnologas como el seguimiento del ojo, reconocimiento de gestos y anlisis sema-inteligente de las acciones del usuario.

DE APLICACIN
En la capa de aplicacin ( servicios de aplicacin) es la capa de mantenimiento general, se encarga normalmente de los requerimientos de calidad de servicios, como las caches, la gestin de excepciones, rendimiento, entre otros. En la actualidad se ha aumentado la reusabilidad del diseo de las aplicaciones distribuidas en la cual redujo la cantidad de recursos y costos de desarrollo y mantenimiento .

DE BASES DE DATOS
La evolucin de las bases de datos se debe a las organizaciones ya que han solicitado mayores capacidades de almacenamiento de informacin en las bases de datos y a su vez que puedan integrar informacin desde distintos sitios distribuidos. El desarrollo de las tecnologas de comunicacin ha permitido enlazar datos con aplicaciones que se encuentran en sitios distintos y remotos. Los primeros sistemas de procesamiento de datos ejecutaron las tareas administrativas para reducir el papeleo.

EVOLUCIN DE BASES DE DATOS

EVOLUCIN DE COMUNICACIN DE DATOS


UNA RED DE TRANSMISIN DE DATOS ES UN CONJUNTO DE ELEMENTOS FSICOS Y LGICOS QUE PERMITEN LA INTERCONEXIN DE EQUIPOS Y SATISFACEN TODA LAS NECESIDADES DE COMUNICACIN DEL DATOS ENTRE LOS MISMOS.

REDES DE REA LOCAL


LAS REDES DE REA LOCAL (RAL O LAN) HAN SIDO CREADAS PARA RESPONDER A ESTAS NECESIDADES DE TRATAMIENTO DE INFORMACIN A PEQUEAS DISTANCIAS.

REDES DE REA EXTENSA


SON AQUELLAS QUE SURGEN PARA SATISFACER LAS NECESIDADES DE TRANSMISIN DE DATOS A DISTANCIA SUPERIOR A UNOS POCOS KILMETROS.

ESTE TIPO REDES PERMITE CONEXIONES ENTRE MLTIPLES USUARIOS Y DISPOSITIVOS DE TODO TIPO.

ESCENARIOS DE UTILIZACIN DE LAS APLICACIONES DISTRIBUIDAS

EJEMPLOS DE APLICACIONES DISTRIBUIDAS

Concurrencia: de igual forma que en las aplicaciones centralizadas, las aplicaciones distribuidas sern utilizadas por cierto nmero de usuarios concurrente mente aspectos como las transacciones, los bloqueos de recursos o el uso de la CPU de los equipos a los que acceden muchos usuarios son determinantes a la hora de disear una arquitectura con la mxima eficacia. Patologa de la red: a pesar de que a da de hoy los anchos de banda cada vez son ms amplios, el trfico de red puede ser un aspecto importante que condicione el tiempo de respuesta de la aplicacin. En muchos casos tambin ser necesario tener en cuenta el tipo de red (LAN o WAN), o si la aplicacin ser o no accesible a travs de internet. La forma de distribuir los procesos de la aplicacin tendr que tomar en consideracin el tipo de red que soportar el trfico de datos.

PROBLEMAS COMUNES EN EL DESARROLLO Y USO DE APLICACIONES DISTRIBUIDAS.

Ubicacin de la lgica: dado que en una aplicacin distribuida intervienen varios procesos, ser necesario decidir en cul de los posibles procesos fsicos se sita cada componente lgico de la aplicacin. Mientras que algunos procesos, como la presentacin de datos o la recuperacin de los mismos, tienen un sitio natural, otros, como la validacin o la navegacin, pueden ocupar diversos lugares dentro del diagrama que conforma la estructura de la aplicacin. Plataformas: en una aplicacin distribuida los sistemas operativos involucrados o los lenguajes de desarrollo utilizados pueden ser un factor a tener en cuenta a la hora de decidir algunos aspectos importantes, como por ejemplo el modo de pasar datos entre procesos. Disponibilidad de los servidores. Capacidad de los equipos donde se almacenan las fuentes.

También podría gustarte