Вы находитесь на странице: 1из 29

Instituto Tecnolgico Superior de la Montaa

MATERIA:
BASES DE DATOS DISTRIBUIDAS

TRABAJO DE INVESTIGACIN:
UNIDAD I

DOCENTE:
Ing. Noel Domnguez Cardona

ALUMNOS:
Marina Solano Galeana

Tlapa de Comonfort, Gro, a 24 de Marzo de 2012

ndice
Actividad Introduccin -----------------------------------------------------------------------------------Pg. 1

1.1 Evolucin de las aplicaciones informticas ----------------------------------------- 2 1.1.1 Aplicaciones monolticas -------------------------------------------------------------- 3 1.1.2 Aplicaciones cliente/servidor--------------------------------------------------------1.1.3 Aplicaciones de 2,3 y n capas ------------------------------------------------------4 8

1.1.4 Aplicaciones distribuidas -------------------------------------------------------------- 15 1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas --------------------------------------------------------------------------------------1.2.1 De interfaz de usuario ----------------------------------------------------------------1.2.2 De aplicacin ---------------------------------------------------------------------------1.2.3 De base de datos ----------------------------------------------------------------------1.2.4 De comunicacin de datos ----------------------------------------------------------1.2.5 De conexin entre capas ------------------------------------------------------------20 20 21 22 23 19

1.3 Escenarios de utilizacin de las aplicaciones distribuidas ---------------------- 24 1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas --- 25 Conclusin --------------------------------------------------------------------------------------Bibliografa --------------------------------------------------------------------------------------26 27

Introduccin Como inicio la evolucin de las aplicaciones informticas y las necesidades de implementar esta aplicacin como tambin los beneficios y uso de cada aplicacin. Se menciona algunos conceptos y ejemplos de la evolucin de las aplicaciones informticas mencionaremos desde sus inicios y como ha sufrido muchos cambios, desde las aplicaciones monolticas, cliente/servidor, aplicaciones de dos, tres y n capas hasta las aplicaciones distribuidas, tambin se menciona la evolucin de las tecnolgicas para el desarrollo de aplicaciones distribuidas en este tema sedar a conocer las interfaces de usuarios, base de datos, conexin por capa y de comunicacin y de aplicacin. Las ventajas y desventajas de usar una aplicacin, su uso, los componentes de cada aplicacin, las arquitecturas que forma cada aplicacin y su evolucin.

1.1 Evolucin de las aplicaciones informticas


En sus orgenes la programacin de los ordenadores era hecho slo, para y por los mismos cientficos que las construan para propsitos muy especficos. El clculo de la trayectoria de los proyectiles usados en la II Guerra Mundial, y posteriormente usos muy parecidos, hasta que mucho despus que fue utilizada en el Censo de los Estados Unidos fue reconocindose su valor en el campo administrativo donde estuvo hasta hace 2 dcadas, cuando gracias a la Computadora Personal pasaron al dominio pblico donde con tantas necesidades fueron surgiendo las aplicaciones diversas para cada oficio. A diferencia de algunos aos atrs, hoy existe una infinidad de aplicaciones para satisfacer desde diversiones o entretenimiento de nios hasta sofisticados programas de investigacin cientfica; ms sin embargo, para las necesidades de la mayora de los mortales que trabajan en Instituciones o Empresas y an para los particulares existe un nmero preciso de aplicaciones, que como herramientas no deben faltar en ninguna computadora de uso personal. La evolucin de las aplicaciones informticas se dio debido a los siguientes factores: 1. Trabajo a distancia. 2. Compartir informacin. 3. Accesibilidad. 4. Seguridad en la proteccin de la informacin (tener la base de datos particionada en dos o ms nodos). 5. Independencia lugares. En la actualidad cualquier aplicacin cuenta generalmente con tres partes diferenciadas: 1. Una interfaz de usuario: Elemento con el que interacciona el usuario de la aplicacin, ejecutando acciones, introduciendo u obteniendo informacin. 2. 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. 3. Gestin de datos: Se ocupa del almacenamiento y recuperacin de la informacin.
2

1.1.1 Aplicaciones monolticas


En una aplicacin monoltica las tres partes forman un todo y se ejecutan en la misma mquina. 1. Datos 2. Lgica de negocio 3. Interface de usuario

Ejemplo: Resulta caro y los costos de mantenimiento son tambin altos. Una aplicacin monoltica duplica en cada computadora todos sus elementos: interfaz de usuario, lgica o reglas de negocio y acceso a datos. Funcionan ms rpido. Fcil de desarrollar. Difcil de mantener, poco escalable y que Precisa de cierta potencia de proceso. 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.

1.1.2 Aplicaciones cliente/servidor


Aplicacin cliente-servidor en donde el cliente es una mquina que solicita un determinado servicio y se denomina servidor a la mquina que lo proporciona. Los servicios pueden ser: Ejecucin de un determinado programa. Acceso a un determinado banco de informacin. Acceso a un dispositivo de hardware. La presencia de un medio fsico de comunicacin entre las mquinas, es un elemento primordial, y depender de la naturaleza de este medio la viabilidad del sistema. Categoras de Servidores: A continuacin se presenta una lista de los servidores ms comunes: Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sera una gran opcin de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se los enva. Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la informacin que se enva est ya resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae slo la informacin pertinente y enva esa respuesta al cliente. Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrnico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo enva al resto del grupo. Servidores WEB.- Son los que guardan y proporcionan pginas HTML. El cliente desde un browser o navegador hace un llamado de una pgina (link) y el servidor recibe el mensaje para despus enviar la pgina solicitada. Servidores de correo.- Gestiona el envo y recepcin de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor slo debe utilizar un protocolo de correo. Servidor de objetos.- Permite almacenar objetos que pueden ser activados de manera remota. Los clientes pueden ser capaces de activar los objetos que se encuentren en el servidor. Servidores de impresin.- Gestionan las solicitudes de impresin de los clientes. El cliente enva la solicitud de impresin, el

servidor recibe la solicitud y la ubica en la cola de impresin, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresin. Servidores de aplicacin.- En el pasado refera a un servidor que se dedicaba a una nica aplicacin. Era bsicamente una aplicacin a la que podan acceder los clientes. En la actualidad refiere ms a un servidor Web con capacidad de procesamiento, por lo que suele ser a la vez servidor Web con algunas funciones de lgica de negocio.

Componentes de Software: Se distinguen tres componentes bsicos de software: Presentacin.- Tiene que ver con la presentacin al usuario de un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor. Lgica de aplicacin.- Esta capa es la responsable del procesamiento de la informacin que tiene lugar en la aplicacin. Base de datos.- Esta compuesta de los archivos que contienen los datos de la aplicacin. Arquitecturas Cliente / Servidor A continuacin mostramos las arquitecturas cliente-servidor ms populares: Arquitectura Cliente-Servidor de Dos Capas.Consiste en una capa de presentacin y lgica de la aplicacin; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: Cuando se requiera poco procesamiento de datos en la organizacin. Cuando se tiene una base de datos centralizada en un solo servidor. Cuando la base de datos es relativamente esttica. Cuando se requiere un mantenimiento mnimo. Arquitectura Cliente-Servidor de Tres CapasConsiste en una capa de la Presentacin, otra capa de la lgica de la aplicacin y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: Cuando se requiera mucho procesamiento de datos en la aplicacin. En aplicaciones donde la funcionalidad este en constante cambio.

Cuando los procesos no estn relativamente muy relacionados con los datos. Cuando se requiera aislar la tecnologa de la base de datos para que sea fcil de cambiar. Cuando se requiera separar el cdigo del cliente para que se facilite el mantenimiento. Esta muy adecuada para utilizarla con la tecnologa orientada a objetos. Clasificacin de los sistemas cliente servidor: A continuacin mostramos la clasificacin de de los sistemas cliente/servidor de acuerdo al nivel de abstraccin del servicio que ofrecen: 1. Representacin distribuida.- La interaccin con el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor.

2. Representacin Remota.-La lgica de la aplicacin y la base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario.

3. Lgica Distribuida.- El cliente se encarga de la interaccin con el usuario y de algunas funciones triviales de la aplicacin. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicacin, junto con la base de datos, estn en el servidor.

4. Gestin Remota de Datos.- El cliente realiza la interaccin con el usuario y ejecuta la aplicacin y el servidor es quien maneja los datos.

5. Base de Datos Distribuidas.- El cliente realiza la interaccin con el usuario, ejecuta la aplicacin, debe conocer la topologa de la red, as como la disposicin y ubicacin de los datos. Se delega parte de la gestin de la base de datos al cliente.

6. Cliente servidor a tres niveles.- El cliente se encarga de la interaccin con el usuario, el servidor de la lgica de aplicacin y la base de datos puede estar en otro servidor.

1.1.3 Aplicaciones de 2,3 y n capas


La construccin de aplicaciones n-tier (n-capas) distribuidas ha emergido como la arquitectura predominante para la construccin de aplicaciones multiplataforma en la mayor parte de las empresas. Este cambio radical en los modelos de computacin, desde los sistemas monolticos basados en mainframe y los tradicionales sistemas cliente-servidor, hacia sistemas distribuidos multiplataforma altamente modularles, representa el desarrollo rpido y avance de la investigacin en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las ltimas tendencias de las grandes empresas de tecnologa, como Sun con su estrategia Sun One, o Microsoft con DotNET (.Net). El modelo presenta algunas ventajas entre ellas: 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.

La principal ventaja de una aplicacin distribuida bien diseada es su buen escalador, es decir, 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. Como tecnologa, las arquitecturas de n-capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y fiables para resolver complejos problemas inmersos en cambios constantes. Todas las aplicaciones basadas en n-capas permitirn trabajar con clientes ligeros, tal como navegadores de Internet, WebTV, Telfonos Inteligentes, PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchos otros dispositivos preparados para conectarse a Internet. De este modo, las arquitecturas de n-capas se estn posicionando rpidamente como la piedra angular de los desarrollos de aplicaciones empresariales y las
8

compaas estn adoptando esta estrategia a una velocidad de vrtigo como mecanismo de posicionamiento en la economa emergente que tiene su base en la red (lo que se ha venido a denominar "Nueva Economa"). Actualmente, la Red (Internet, intranets y extranets) es el ordenador o, como dira Sun Microsystems, el ordenador es la Red. Este paradigma est creando un cambio fundamental en los modelos de computacin que, a su vez, proporciona desafos y oportunidades como nunca antes haba se haban producido. Realmente, los componentes distribuidos de una arquitectura de n-capas es una tecnologa esencial para crear la siguiente generacin de aplicaciones e-business, aplicaciones que son altamente escalables, fiables y que proporcionan un alto rendimiento y una integracin sin fisuras con los sistemas de back-end heredados. A diferencia de lo que se pudiera pensar, el desarrollo en n-capas no es un producto o un estndar, es un concepto estratgico que ayuda a la construccin y despliegue lgico de un sistema distribuido. Los sistemas de n-capas subdivididos ayudan a facilitar el desarrollo rpido de aplicaciones y su posterior despliegue, con beneficios incrementales fruto de los esfuerzos del desarrollo en paralelo coordinado y del outsourcing inteligente, resultando un enorme decremento del tiempo de desarrollo y de sus costes. Muchas de las aplicaciones de e-business que se utilizan actualmente simplemente utilizan un navegador de Internet como cliente ligero que implementa una interfaz universal. Una arquitectura basada en clientes ligeros desplaza la capa de presentacin de la aplicacin en el lado del cliente, mientras que la lgica de negocio y los datos residen en el middleware y los servidores de back-end. El diseo para clientes ligeros minimiza los problemas de despliegue de las aplicaciones, mientras que maximiza la accesibilidad a la misma desde una amplia variedad de plataformas heterogneas. Los frameworks basados en n-capas se crean para obtener las ventajas de los estndares abiertos de la industria que permiten a las aplicaciones resultantes operar en entornos distribuidos multiplataforma. Caractersticas. Las aplicaciones que se construyen con una arquitectura multicapa tienen entre otras las siguientes caractersticas: Acceso a bases de datos (BD) o Normalmente con BD relacionales Transaccionales o Propiedades ACID (Atomicity-Consistency-Isolation-Durability)

Operaciones atmicas (Atomicity) son operaciones que se completan en su totalidad o no se completan en absoluto. As, en el ejemplo anterior de la transferencia tanto el crdito como el dbito deben haber sido exitosos para que el estado de transformacin sea exitoso (para que haga efectos), de otro modo el estado de la transformacin falla, y el sistema es regresado a su ltimo estado conocido. Transformaciones consistentes (Consistency) preservan la integridad interna de los recursos involucrados. Por ejemplo, el borrar registros de una tabla primaria viola la integridad referencial de la base de datos si hay registros relacionados que concuerden. Transformaciones aisladas (Isolation) parecen ocurrir serialmente, una detrs de otra, creando la ilusin de que ninguna transformacin est siendo ejecutada al mismo tiempo. La durabilidad (Durability) se refiere a la habilidad para almacenar los resultados de una transformacin de estado, usualmente en un disco, de tal modo que los resultados de una transformacin puedan ser recuperados en caso de una falla del sistema. Escalables. - Deberan poder soportar ms carga de trabajo sin necesidad de modificar el software (slo aadir ms mquinas) Disponibilidad o Idealmente no deben dejar de prestar servicio Seguras. - No todos los usuarios pueden acceder a la misma funcionalidad Integracin. - Es preciso integrar aplicaciones construidas con distintas tecnologas. Tipo de interfaz. - De entorno de ventanas (clientes desktop): normalmente slo tiene sentido en intranets. - Web: En Internet y en intranets. Separacin clara entre la interfaz grfica y la Capa de componentes. - Capa de componentes: encapsulan la lgica de negocio. - Ejemplo => aplicacin bancaria destruirlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc. - La capa de componentes debera ser reusable con distintas interfaces grficas - En el ejemplo de la aplicacin bancaria podra haber dos clientes: uno Web y otro desktop.

10

Aplicaciones de una Capa. Las capas dentro de una arquitectura son nada ms que un conjunto de servicios especializados que pueden ser accesibles por mltiples clientes y fcilmente reutilizables. Este tipo de arquitectura se caracteriza por tener en una sola asociacin lgica y en ella a la presentacin, la lgica de negocios y los datos; que si los ponemos como servicios se convierten en capas, lo veremos ms adelante.

Aplicaciones de 1 Capa Ejemplos de esta arquitectura son desarrollos realizados en Excel, Access, Fox, entre otros.

Aplicaciones de dos capas Se caracterizan por tener 2 asociaciones lgicas, que prestan servicios y que a la final son capas.

11

Arquitectura de 2 capas En la primera capa se incluye a la presentacin (Interface grafica) y a la lgica de negocios, toda la lgica la escribimos en las formas (en el onClick del botn por ejemplo), y accedemos a un servicio de datos para la gestin de los mismos, por lo general a un servidor de Base de Datos. Esta arquitectura es comnmente llamada cliente servidor, puesto que tambin el programa fuente puede residir en un servidor y muchos cliente pueden acceder a l para ejecutar una copia del programa.

Aplicaciones de 3 Capas Una aplicacin de tres capas es una aplicacin cuya funcionalidad puede ser segmentada en tres niveles lgicos (capas):

Los servicios de presentacin. Los servicios de negocios (Lgica de Negocios). Los servicios de datos.

12

Arquitectura de Aplicaciones de 3 capas La capa de servicios de presentacin es responsable de: Obtener informacin del usuario. Enviar la informacin del usuario a los servicios de negocios para su procesamiento. Recibir los resultados del procesamiento de los servicios de negocios. Presentar estos resultados al usuario. El nivel de servicios de negocios es responsable de: Recibir la entrada del nivel de presentacin. Interactuar con los servicios de datos para ejecutar las operaciones de negocios para los que la aplicacin fue diseada a automatizar (por ejemplo, la preparacin de impuestos por ingresos, el procesamiento de ordenes y as sucesivamente). Enviar el resultado procesado al nivel de presentacin. El nivel de servicios de datos es responsable de: Almacenar los datos. Recuperar los datos. Mantener los datos. La integridad de los datos.

13

Arquitectura de 3 capas Al ser la primera capa un servicio, se puede inferir que las aplicaciones no solo podran ser de escritorio, si quisiramos que nuestra aplicacin tenga una interface web, pues solamente bastara con cambiar la capa de presentacin y de all en adelante nada tiene porque cambiar. Entonces nuestras pginas web estaran alojadas en un Servidor Web las mismas que se conectan a la lgica de negocios y de all a los servicios de datos.

Aplicaciones de n Capas Podramos ir separando nuestra aplicacin en mas niveles lgicos, por ejemplo, vamos a querer que nuestra aplicacin tenga mltiples interfaces, es decir interface grfica (standalone o desktop) y tambin interface Web. Lo aconsejado en esta circunstancia es separar al Servidor Web encargado de alojar las pginas Web en una capa ms. En este caso se tendran 4 capas.

14

Arquitectura de 4 capas Mientras ms servicios coloquemos a nuestra aplicacin y mientras ms escalable lo imaginemos, mas capas lgicas van a irse aadiendo a nuestra arquitectura; all est el inicio del estudio de las siguientes secciones del curso, LOS PATRONES DE DISEO. *La arquitectura en 3 capas es la ms usada * La arquitectura en 4 capas puede ser ms escalable

1.1.4 Aplicaciones distribuidas


Mucho tiempo ha transcurrido ya desde que en la dcada de los ochenta la tecnologa de la informacin comenzara tmidamente a ocupar el lugar que hoy en da posee. En aquellos das, que tal vez algunos veteranos recuerden con cierta nostalgia, la mayora de los sistemas informticos estaban constituidos por enormes sistemas centrales que ejecutaban todos las aplicaciones dentro de s mismos, y en el mejor de los casos los usuarios interactuaban con esas aplicaciones mediante terminales tontos, que no eran sino simples pantallas con teclado que permitan enviar caracteres al sistema central y mostrar las respuestas, tambin basadas en caracteres, que los monstruos generaban y enviaban a travs de un cable. El advenimiento de los ordenadores personales constituy la primera revolucin. Ahora los usuarios disponan de un procesador y de un sistema de almacenamiento autnomo, capaz de procesar datos e incluso de mostrar grficos por pantalla adems de caracteres. Surgieron multitud de aplicaciones de escritorio que independizaron a los usuarios de los grandes sistemas y el coste del hardware se redujo a niveles tan aceptables que empresas que no hubieran podido afrontar la inversin en un sistema informtico centralizado comenzaron a introducir en sus procesos de negocio la gestin informtica de los datos. Pero en el fondo los modos de ejecucin de aplicaciones no haban cambiado. De la ejecucin en un sistema centralizado se pas a la ejecucin en sistemas ms pequeos e independientes, pero al fin y al cabo las aplicaciones seguan siendo islas incomunicadas entre si, y los usuarios no podan contar ms que con las capacidades del propio ordenador para procesar los datos. Por un lado, la necesidad de compartir datos no quedaba resuelta con sistemas independientes, y la opcin de las aplicaciones centralizadas segua siendo la nica viable en entornos multiusuario. Por el otro, cuando los datos eran generados por un ordenador central no haba forma de tratarlos localmente y toda la potencia de los ordenadores personales no serva para nada. El avance en las tecnologas de redes comenz a dibujar un horizonte en el que las aplicaciones se comunicaran entre s y en el que los procesos de una aplicacin se distribuiran entre diferentes equipos, cada uno con caractersticas

15

que les permitieran aumentar la eficacia y la disponibilidad de la aplicacin. Se comenz a separar la lgica de las aplicaciones para situarla en el nivel ms conveniente y conceptos como cliente y servidor fueron cobrando cada vez ms sentido. Tras algunos aos de indecisin, los protocolos de red se estandarizaron y hacia mediados de los aos 90 Internet se convirti en la primera revolucin autntica del siglo XXI, provocando no slo un vuelco en las relaciones sociales y econmicas sino tambin, por supuesto, un cambio completo de paradigma en la arquitectura de las aplicaciones informticas. Las aplicaciones se convierten, as, en aplicaciones distribuidas. Sin arriesgarnos a proporcionar una definicin acadmica que puede encontrarse muy fcilmente en Internet, diremos informalmente que una aplicacin distribuida es aquella cuyo objetivo final se alcanza mediante la ejecucin de diversos procesos independientes que por lo general se ejecutan en equipos diferentes y que de una forma u otra se pasan datos entre ellos mediante protocolos de comunicaciones bien establecidos. En esta primera seccin examinaremos las formas arquitectnicas (o de diseo) que adquieren las aplicaciones distribuidas. Cada una de ellas plantea ciertas ventajas e inconvenientes que ser necesario tener en cuenta a la hora de crear el cdigo para los diferentes componentes de la aplicacin. Caractersticas de las aplicaciones distribuidas. Independientemente de su arquitectura, todas las aplicaciones distribuidas comparten ciertas caractersticas que las diferencian notablemente de las aplicaciones centralizadas y de las aplicaciones de escritorio. Conocer esas caractersticas y evaluar su impacto en las aplicaciones es primordial para escoger el diseo ms adecuado de las mismas. No es cierto que una aplicacin se pueda disear de cualquier manera. Aspectos primordiales que han de evaluarse a la hora de disear una aplicacin distribuida: 1. Concurrencia: De igual forma que en las aplicaciones centralizadas, las aplicaciones distribuidas sern utilizadas por cierto nmero de usuarios concurrentemente. 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. 2. Topologa de la red: A pesar de que a da de hoy los anchos de banda cada vez son ms s 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.

16

3. 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. En muchas ocasiones la ubicacin de los componentes lgicos impacta sobre el rendimiento, sobre la reutilizacin del cdigo o sobre la facilidad de programacin.

4. Homogeneidad de las 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. La utilizacin de estndares puede ser muy til a la hora de crear aplicaciones distribuidas que permanezcan abiertas a diversos sistemas heterogneos, pero si las plataformas son similares es posible alcanzar mejor rendimiento sacrificando interoperabilidad.

5. Seguridad: Una aplicacin distribuida mantiene procesos que de una forma u otra estn a la escucha en una red, lo que aumenta la vulnerabilidad de la aplicacin. Ser necesario establecer polticas de seguridad que impidan el acceso no autorizado a los procesos. Pedir al usuario un nombre y una contrasea al iniciar el programa es probable que no sea suficiente. No existe una solucin nica para todos los problemas. A pesar de que en la actualidad se priman ciertas arquitecturas sobre otras, la realidad es que la decisin final depender de todos los factores anteriormente citados, y de otros que a veces no se tienen mucho en cuenta pero que tambin poseen su importancia, como el coste total de la aplicacin o la complejidad de la solucin respecto al problema planteado. Ni es recomendable subestimar las necesidades de una aplicacin compleja, ni tampoco conviene sobredimensionar la estructura de una aplicacin sencilla que puede resolverse con medios ms asequibles. Con las aplicaciones distribuidas el mero anlisis funcional de las caractersticas de una aplicacin ya no es suficiente y es necesario tambin considerar la distribucin y estructura de los procesos involucrados. La tarea del arquitecto de aplicaciones consistir precisamente en tomar la decisin de diseo ms adecuada para resolver el problema, ajustndose lo mejor posible a los requerimientos y tomando en cuenta todos los factores implicados. Arquitectura de las aplicaciones distribuidas. En una aplicacin distribuida en n-capas los diferentes elementos que integran la aplicacin se agrupan de forma lgica segn la funcionalidad que reciben o suministran al o desde el resto de los elementos. As, algunos elementos se limitarn a recibir peticiones de datos mientras que otros interactuarn con el

17

usuario y su funcin ser principalmente la de solicitar a otros elementos la informacin que el usuario precisa. Atendiendo al papel que los distintos elementos juegan dentro de la aplicacin, distinguimos con claridad tres grupos lgicos en los que podemos agrupar elementos segn su funcionalidad: La capa de servidor incluye aquellos elementos que se encargan de recibir las peticiones de datos o de acceso a servicios bsicos del sistema y de suministrar a otros elementos la informacin solicitada. La capa de negocios encapsula las reglas de acceso a datos y la gestin de procesos internos de la aplicacin. La capa de presentacin se encarga de la lgica necesaria para interactuar con el usuario de la aplicacin. Una vez agrupada la funcionalidad en capas lgicas es fcil relacionar unas con otras. El usuario interactuar con la capa de presentacin, solicitando datos o desencadenando acciones. Las solicitudes sern atendidas por la capa de negocios, que se encargar de su gestin o de la traduccin necesaria para que la capa de servidor realice la tarea solicitada. Si la capa de servidor debe proporcionar datos estos se devolvern a la capa de negocios, la cual los gestionar o transmitir a la capa de presentacin. La figura 2.1 ilustra este esquema.

Figura 2.1: Esquema lgico de las capas en una aplicacin distribuida. Es importante notar que el esquema que mostramos es un esquema lgico, no fsico. El modo de distribuir fsicamente las capas (en diferentes ejecutables o DLL, o en diferentes equipos) se corresponder con el esquema lgico en todo o en parte, pero no necesariamente existir una correspondencia exacta entre la distribucin lgica de los elementos y su distribucin fsica. La capa de negocios podra residir en diferentes mquinas, por ejemplo, o las entidades de negocio y la capa de servidor podran formar parte de la misma DLL. Ms adelante hablaremos de la relacin fsica entre las diversas capas lgicas y estudiaremos cmo los diferentes escenarios nos condicionarn la distribucin fsica de las capas lgicas.

18

Adicionalmente, en las aplicaciones distribuidas existen otras funcionalidades, como la seguridad o el registro de sucesos, que no son exclusivas de un grupo lgico ya que deben aparecer en todos los elementos de la aplicacin.

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas


Hoy en da las compaas no pueden ignorar el grave problema que implica desarrollar y adaptar software al ritmo que imponen los negocios. Los requisitos varan con mucha frecuencia y las aplicaciones no logran ser desarrolladas y/o adaptadas al ritmo requerido. La globalizacin y fusin de empresas, el crecimiento de Internet, entre otros factores, han acentuado an ms estos problemas llevando el software desarrollado, que normalmente haba sido desarrollado para una plataforma especfica, a un ambiente distribuido heterogneo. Esto involucra, en consecuencia, La necesidad de considerar una amplia gama de aspectos como lo son la integracin de datos heterogneos, la interaccin entre diversos sistemas, los distintos sistemas operativos, el middleware, las tecnologas web, cuestiones de escalabilidad y performance, por citar algunos de ellos. 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 cliente-servidor, aplicaciones de 3 capas hasta la actualidad aplicaciones en n-capas. La evolucin de las tecnologas cliente/servidor sumada al advenimiento de nuevas tecnologas como XML, web services , la plataforma J2EE, la comunicacin asncrona por medio de mensajes, el uso de aplication servers , son algunos de los conocimientos que permiten llevar a cabo el desarrollo de aplicaciones modernas. La evolucin de las aplicaciones distribuidas se dio de la siguiente forma: Aplicaciones monolticas. Arquitectura cliente/servidor. Arquitectura de tres capas. Arquitectura de N capas.

19

1.2.1 De interfaz de usuario


La evolucin de la interfaz de usuario no tiene mucho tiempo en desarrollo ya que anterior no haba interaccin entre el usuario y el lenguaje. Actualmente es una realidad que exista una interaccin usuario-maquina, la interfaz grafica de usuario es una interfaz que utiliza ciertas caracterstica, representaciones graficas y acciones para representar la informacin y acciones disponibles dentro de la interfaz.

1.2.2 De aplicacin Esta capa es la encargada de la revisin de los aspectos de calidad, en general se encarga de la revisin de el mantenimiento general, y lo que un servicio de calidad requiere.

Algunas tecnologas de aplicacin son: CORBA. DNA. EJB. XML.

20

1.2.3 De base de datos Al igual de las dems aplicaciones el desarrollo de las aplicaciones para base de datos, ha hecho de los servicios de almacenamiento de informacin uno de los mejores el progreso en la historia de las bases de datos. Como se ha logrado esto, pues implementando diferentes mtodos y formas de almacenamiento y dejando a tras el almacenamiento en solo un registro en los cuales la perdida e inconsistencia de la informacin era muy frecuente.

Es el otro extremo visto desde la interface de usuario Involucrado en el almacenamiento y recuperacin de datos Las tecnologas aplicables incluyen archivos planos, bases de datos relacionales u orientadas a objetos, etc. La evolucin de las bases de datos distribuidas se debe por una parte a razones organizacionales las cuales han demandado que mayores capacidades sean incorporadas a las bases de datos, tales como la integracin de informacin desde distintos sitios donde se encuentre la empresa distribuida hacia algn sitio por ejemplo, para una consulta. Por otra parte, el desarrollo de las tecnologas de comunicacin han permitido enlazar datos con aplicaciones que se encuentran en sitios distintos y remotos, por ejemplo las transacciones bancarias realizadas en mquinas-cajeros automticos (ATM) que se encuentran ubicados en centros comerciales, empresas y escuelas, no seran posibles si no tuviramos sistemas de comunicacin para enlazarnos a bases de datos localizadas en diferentes sitios financieros. Algunas tecnologas de base de datos son: OLEB
21

ADO. XML. SQL. Herramientas para modelado (UML).

Ejemplo de una tecnologa de base de datos.

1.2.4 De comunicacin de datos La construccin de aplicaciones distribuidas ha emergido como la arquitectura predominante para la construccin de aplicaciones multiplataforma en la mayor parte de las empresas. Este cambio radical en los modelos de computacin, desde los sistemas monolticos basados en mainframe y los tradicionales sistemas cliente-servidor, hacia sistemas distribuidos multiplataforma altamente modularles, representa el desarrollo rpido y avance de la investigacin en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las ltimas tendencias de las grandes empresas de tecnologa, como Sun con su estrategia Sun One, o Microsoft con DotNET (.Net). Algunas tecnologas de comunicacin de datos son: Intranet. Internet.

22

La construccin de aplicaciones distribuidas ha emergido como la arquitectura predominante para la construccin de aplicaciones multiplataforma en la mayor parte de las empresas. Este cambio radical en los modelos de computacin, desde los sistemas monolticos basados en mainframe y los tradicionales sistemas cliente-servidor, hacia sistemas distribuidos multiplataforma altamente modularles, representa el desarrollo rpido y avance de la investigacin en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las ltimas tendencias de las grandes empresas de tecnologa, como Sun con su estrategia Sun One, o Microsoft con DotNET (.Net).

1.2.5 De conexin entre capas.


Como tecnologa, las arquitecturas de capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y fiables para resolver complejos problemas inmersos en cambios constantes. Todas las aplicaciones basadas en capas permitirn trabajar con clientes ligeros, tal como navegadores de Internet, WebTV, Telfonos Inteligentes, PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchos otros dispositivos preparados para conectarse a Internet. De este modo, las arquitecturas de capas se estn posicionando rpidamente como la piedra angular de los desarrollos de aplicaciones empresariales y las compaas estn adoptando esta estrategia a una velocidad de vrtigo como

23

mecanismo de posicionamiento en la economa emergente que tiene su base en la red (lo que se ha venido a denominar "Nueva Economa"). Actualmente, la Red (Internet, intranets y extranets) es el ordenador o, como dira Sun Microsystems, el ordenador es la Red. Este paradigma est creando un cambio fundamental en los modelos de computacin que, a su vez, proporciona desafos y oportunidades como nunca antes haba se haban producido. Una tecnologa de conexin de capas es: Arquitectura DAO.

1.3 Escenarios de utilizacin de las aplicaciones distribuidas

24

1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas. a. Disponibilidad de los servidores. b. Acceso a los sistemas de manera remota. c. Posibilidad de que pueden ser vistos (pero no accesados) por muchas personas. d. Capacidad de los equipos donde se almacenan las fuentes.

25

Conclusin Como ya mencionamos la evolucin de las aplicaciones distribuidas son para cubrir necesidades o resolver necesidades de distribucin de aplicaciones como tambin las evolucin que los llevo a mejorar las aplicaciones y las arquitecturas que lo conforman.

26

Bibliografa

http://www.tutoriales.itsa.edu.mx/DesarrolloDeAplicaciones/index.php?mod=evoluc iondeaplicaciones&ban=0 http://www.tutoriales.itsa.edu.mx/DesarrolloDeAplicaciones/index.php?mod=decom unicacion&ban=0 http://www.tutoriales.itsa.edu.mx/DesarrolloDeAplicaciones/index.php?mod=deapli cacion&ban=0 http://faustol.files.wordpress.com/2007/09/construccion-de-aplicaciones-encapas.doc. http://www.tutoriales.itsa.edu.mx/DesarrolloDeAplicaciones/index.php?mod=debd& ban=0 http://neo.lcc.uma.es/evirtual/cdd/tutorial/aplicacion/cliente-servidor.html http://www.ctv.es/USERS/carles/PROYECTO/cap3/cap3.html

27

Вам также может понравиться